2.18. Echec d'importation des modèles car l'UUID de disque virtuel ne peut pas être mis à jour (ID de bogue 16175655)

Il s'agit d'un problème de droits d'accès au fichier et de propriété, pouvant se produire dans les installations où l'utilisateur VirtualBox n'est pas un utilisateur root. Pendant l'importation d'un modèle, l'UUID d'un disque virtuel doit être modifié si une image de disque ayant le même UUID existe déjà, par exemple parce que le même modèle a été importé auparavant, ou parce que l'UUID est affecté au disque d'une autre machine virtuelle non contrôlée par Oracle VDI. L'utilisateur non root VirtualBox ne dispose pas des droits d'accès nécessaires pour affecter un nouvel UUID au fichier d'image de disque virtuel.

La solution de contournement consiste à modifier manuellement l'UUID du fichier d'image de disque virtuel dans le modèle source avant de l'importer. Pour ce faire, créez la commande /usr/bin/VBoxManage (plates-formes Oracle Linux) ou la commande /opt/VirtualBox/VBoxManage (plates-formes Oracle Solaris).

La syntaxe de la commande est :

VBoxManage storageattach "<VM_name>" --storagectl "<controller_name>" \
--port "<controller_port_no>" --device "<device_no>" --type "hdd" \
--medium "<path_to_disk_image>" --setduuid "<new_disk_image_uuid>"

Consultez d'abord les paramètres nécessaires dans la configuration de votre machine virtuelle. Vous devez disposer du nom du contrôleur de stockage, ainsi que du numéro de périphérique et de port du support relié, ou encore du disque virtuel. Le type de support est hdd. Le chemin d'accès complet au disque virtuel est également affiché dans la section de configuration des contrôleurs de stockage.

L'exemple suivant illustre comment l'UUID d'un disque virtuel relié à une machine virtuelle nommée windows-7-template est modifié.

VBoxManage showvminfo "windows-7-template" --machinereadable

[...]
storagecontrollername0="IDE Controller"
storagecontrollertype0="PIIX4"
storagecontrollerinstance0="0"
storagecontrollermaxportcount0="2"
storagecontrollerportcount0="2"
storagecontrollerbootable0="on"
storagecontrollername1="SATA Controller" 
storagecontrollertype1="IntelAhci"
storagecontrollerinstance1="0"
storagecontrollermaxportcount1="30"
storagecontrollerportcount1="1"
storagecontrollerbootable1="on"
"IDE Controller-0-0"="none"
"IDE Controller-0-1"="none"
"IDE Controller-1-0"="/usr/share/virtualbox/VBoxGuestAdditions.iso"
"IDE Controller-ImageUUID-1-0"="44d80449-ff62-4d9f-b96f-37bd8f5b50b8"
"IDE Controller-tempeject"="off"
"IDE Controller-IsEjected"="off"
"IDE Controller-1-1"="none"
"SATA Controller-0-0"="/home/vboxuser/VirtualBox VMs/windows-7-template/windows-7-template.vdi"
"SATA Controller-ImageUUID-0-0"="71936354-7f1f-41ac-ba44-92aabd28b72c"
[...]

VBoxManage storageattach "windows-7-template" --storagectl "SATA Controller" \
--port "0" --device "0" --type "hdd" \
--medium "/home/vboxuser/VirtualBox VMs/windows-7-template/windows-7-template.vdi" \
--setduuid "71936354-7f1f-41ac-ba44-92aabd28b740"