|
|
<!-- title: Mon mémo pour la virtualisation -->
|
|
|
<!-- category: Virtualisation -->
|
|
|
<!-- tag: planet -->
|
|
|
|
|
|
Cet article est un mémo de toutes les commandes qui me sont régulièrement
|
|
|
utiles quand je manipule des machines virtuelles VirtualBox, VMware et KVM.<!-- more -->
|
|
|
L'utilitaire **qemu-img** du paquet qemu-utils (sous Debian) a bien évolué et
|
|
|
c'est l'outil de prédilection pour les conversions ; on peut se passer de
|
|
|
l'utilitaire *VBoxManage* (qui fait partie de VirtualBox).
|
|
|
|
|
|
### Convertir une machine virtuelle VirtualBox en KVM
|
|
|
|
|
|
La première approche c'est de créer une VM VirtualBox avec le type de disque
|
|
|
natif VDI et de convertir le disque au format QCOW2 avec *qemu-img* :
|
|
|
|
|
|
qemu-img convert -f vdi -O qcow2 vm-disk.vdi vm-disk.qcow2
|
|
|
|
|
|
Mais si la finalité c'est de mettre au point la VM sous VirtualBox avant de
|
|
|
l'installer sous KVM (dans un Proxmox par exemple), on peut plutôt créer une VM
|
|
|
VirtualBox directement avec le type de disque QEMU (QCOW) dans VirtualBox.
|
|
|
|
|
|
![VirtualBox](/images/2016/virtualbox-creation.png "VirtualBox")
|
|
|
|
|
|
Ensuite, il reste à convertir le disque du format QCOW vers QCOW2 :
|
|
|
|
|
|
qemu-img convert -O qcow2 vm-disk.qcow vm-disk.qcow2
|
|
|
|
|
|
### Convertir un disque VMware en VirtualBox
|
|
|
|
|
|
Le format natif des disques VMware est VMDK. L'utilitaire *VBoxManage* permet
|
|
|
de convertir un fichier VMDK en VDI.
|
|
|
|
|
|
VBoxManage clonehd --format VDI vm-disk.vmdk vm-disk.vdi
|
|
|
|
|
|
Mais *qemu-img* reste la voie royale pour faire le même boulôt :
|
|
|
|
|
|
qemu-img convert -f vmdk -O vdi vm-disk.vmdk vm-disk.vdi
|
|
|
|
|
|
### Convertir une machine virtuelle VMware en KVM
|
|
|
|
|
|
D'abord exporter la machine au format OVF puis convertir le disque avec l'ami *qemu-img* :
|
|
|
|
|
|
qemu-img convert -f vmdk -O qcow2 vm-disk.vmdk vm-disk.qcow2
|
|
|
|
|
|
Ensuite, on peut créer une VM avec des caractéristiques semblables dans KVM et
|
|
|
attacher le disque.
|
|
|
|
|
|
### Retaper les interfaces réseau
|
|
|
|
|
|
Lorsque la machine virtuelle a été créée depuis une machine physique par le
|
|
|
tryptique : clonezilla / restauration virtualbox / conversion KVM, il se peut
|
|
|
que la configuration logique des interfaces réseaux (*/etc/network/interfaces*
|
|
|
sous Debian ou */etc/sysconfig/network-scripts/ifcfg-???* sous RedHat / CentOS)
|
|
|
ne correspondent plus aux interfaces physiques. Dans ce cas il faut adapter la
|
|
|
configuration UDEV qui s'occupe de réaliser cette correspondance sur la plupart
|
|
|
des distributions en éditant le fichier
|
|
|
*/etc/udev/rules.d/70-persistent-net.rules* :
|
|
|
|
|
|
# This file was automatically generated by the /lib/udev/write_net_rules
|
|
|
# program, run by the persistent-net-generator.rules rules file.
|
|
|
#
|
|
|
# You can modify it, as long as you keep each rule on a single
|
|
|
# line, and change only the value of the NAME= key.
|
|
|
|
|
|
# PCI device 0x8086:0x100e (e1000)
|
|
|
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="32:94:32:76:50:6d", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
|
|
|
|
|
|
# PCI device 0x8086:0x100e (e1000)
|
|
|
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="6a:79:37:a3:24:32", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
|
|
|
|
|
|
# PCI device 0x8086:0x100e (e1000)
|
|
|
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="fa:a8:8e:cc:fd:69", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
|
|
|
|
|
|
# PCI device 0x8086:0x100e (e1000)
|
|
|
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="ce:1c:8c:c2:fd:f7", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"
|
|
|
|
|
|
# Compacter un disque
|
|
|
|
|
|
Il ne s'agit pas de modifier la taille du disque virtualisé mais de réduire son encombrement sur le disque hôte par du compactage.
|
|
|
|
|
|
Depuis le système GNU/Linux virtualisé, on nullifie (horrible ce mot) l'espace libre :
|
|
|
|
|
|
dd if=/dev/zero of=/bigemptyfile bs=4096k
|
|
|
rm -rf /bigemptyfile
|
|
|
|
|
|
On stoppe la VM et on utilise *vboxmanage* pour compacter le disque :
|
|
|
|
|
|
vboxmanage modifyhd disk.vdi --compact
|
|
|
|
|
|
Et pour Ms Windows ? je ne sais pas et ça ne m'intéresse pas (*troll inside*)
|