Mon mémo pour la virtualisation

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. 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

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)

Votre commentaire
Le site Web est optionel
Le message peut être rédigé au format Markdown