Convertir un disque dur vmdk en vdi

VBoxManage clonehd --format VDI fichier.vmdk fichier.vdi

Modifier la taille d’un disque virtualbox

Pour passer un disque à 40Go :

VBoxManage modifyhd fichier.vdi --resize 40000

Modifier le System UUID

VBoxManage setextradata "test VM" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemUuid" "8fb169be-9288-4fa0-b176-35362568998f"

Modifier l’adresse Mac d’une VM

VBoxManage modifyvm "test VM" --macaddress1 0800271B00E8

Modifier le nom du processeur

Pour avoir par exemple :
« Intel(R) Core(TM) i7-3740QM CPU @ 2.70GHz »
Il suffit de rajouter les champs correspondants :

VBoxManage setextradata "test VM" VBoxInternal/CPUM/HostCPUID/80000002/eax 0x20202020
VBoxManage setextradata "test VM" VBoxInternal/CPUM/HostCPUID/80000002/ebx 0x6e492020
VBoxManage setextradata "test VM" VBoxInternal/CPUM/HostCPUID/80000002/ecx 0x286c6574
VBoxManage setextradata "test VM" VBoxInternal/CPUM/HostCPUID/80000002/edx 0x43202952
VBoxManage setextradata "test VM" VBoxInternal/CPUM/HostCPUID/80000003/eax 0x2865726f
VBoxManage setextradata "test VM" VBoxInternal/CPUM/HostCPUID/80000003/ebx 0x20294d54
VBoxManage setextradata "test VM" VBoxInternal/CPUM/HostCPUID/80000003/ecx 0x332d3769
VBoxManage setextradata "test VM" VBoxInternal/CPUM/HostCPUID/80000003/edx 0x51303437
VBoxManage setextradata "test VM" VBoxInternal/CPUM/HostCPUID/80000004/eax 0x5043204d
VBoxManage setextradata "test VM" VBoxInternal/CPUM/HostCPUID/80000004/ebx 0x20402055
VBoxManage setextradata "test VM" VBoxInternal/CPUM/HostCPUID/80000004/ecx 0x30372e32
VBoxManage setextradata "test VM" VBoxInternal/CPUM/HostCPUID/80000004/edx 0x007a4847

Il est possible de récupérer ces lignes avec cpuid sous linux de la façon suivante :

cpuid -r |grep "80000002\|80000003\|80000004"|head -n 3|awk '{print $1 "/eax" $3 "\n" $1 "/ebx" $4 "\n" $1 "/ecx" $5 "\n" $1 "/edx" $6};'|sed 's/eax=/ /'|sed 's/ebx=/ /'|sed 's/ecx=/ /'|sed 's/edx=/ /'|sed '/^0x/!d'|sed 's/^0x/VBoxManage setextradata \"test VM\" VBoxInternal\/CPUM\/HostCPUID\//'

ou avec une ancienne version :

cpuid |grep "80000002\|80000003\|80000004"|awk '{print "0x" $1 "/eax 0x" $2 "\n0x" $1 "/ebx 0x" $3 "\n0x" $1 "/ecx 0x" $4 "\n0x" $1 "/edx 0x" $5};'|sed 's/^0x/VBoxManage setextradata \"test VM\" VBoxInternal\/CPUM\/HostCPUID\//'

Ajouter un vrai disque dur

VBoxManage internalcommands createrawvmdk -filename sdc.vmdk -rawdisk /dev/sdc

Détecter les VMs en cours d’utilisation

VBoxManage list runningvms
"ubuntu domogik" {4a4990b1-bc4d-41fc-8734-a8323d77f676}
"debian" {e3d11314-8e1f-4ce6-8aae-53b3bea439be}

Sauvegarder l’état d’une VM

VBoxManage controlvm "ubuntu domogik" savestate
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

Compresser le disque d’une VM

Il faut tout d’abord écrire des 0 sur tout l’espace libre :
– sous Windows, utiliser SDelete avec la commande sdelete64 c: -z
– sous Linux, utiliser zerofree avec la commande zerofree -v /dev/sda1
Puis arrêter la VM et lancer la commande
VBoxManage.exe modifymedium disk « fichier.vdi » –compact

Ajouter les extensions en ligne de commande

Voici un exemple pour lister les extensions présente, supprimer l’extension Oracle et installer la dernière version

VBoxManage list extpacks
sudo VBoxManage extpack uninstall "Oracle VM VirtualBox Extension Pack"
sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.2.18.vbox-extpack