VirtualBox: Comment puis-je ajouter (monter) un fichier image ISO à partir de la ligne de commande?

21

Il y avait auparavant dans la ligne de commande VirtualBox une commande avec cette syntaxe:

VBoxManage controlvm <VM> dvdattach <filename>

Donc, attacher (insérer) un CD / DVD était aussi simple que:

VBoxManage controlvm "MyVM Windows 7" dvdattach MyDVD.iso

Mais maintenant, cette commande a disparu .
J'ai parcouru le manuel de VirtualBox et tout ce que j'ai trouvé est une commande storageattach , qui fait référence à un autre storagectl qui n'est pas assez concis (je déteste les documents sans exemples), aucun d'eux ne faisant référence à quelque chose comme des fichiers .ISO .
Je n'ai pas pu trouver de solution sur son propre forum , du moins rien ne va plus loin que des explications ambiguës et non concises :

Une fois que vous avez le contrôleur en place avec storagectl (ou via l'interface graphique), jetez un œil à VBoxManage storageattach

Au lieu de commencer à tester des options au hasard, je préfère demander d'abord ici si quelqu'un a réussi à le faire et pourrait m'aider.

Sopalajo de Arrierez
la source

Réponses:

24

Gérer le contrôleur IDE

Dans le cas où la machine virtuelle n'a pas de contrôleur IDE, vous pouvez utiliser la storagectlcommande pour en ajouter un:

VBoxManage.exe storagectl "<uuid|vmname>" --name IDE --add ide

Joindre un fichier d'image disque

Voici un exemple de syntaxe que vous pouvez utiliser pour joindre un fichier image CD / DVD:

VBoxManage.exe storageattach "<uuid|vmname>" --storagectl IDE --port 0 --device 0 --type dvddrive --medium "X:\Folder\containing\the.iso"

Détacher un fichier d'image disque

Pour détacher un fichier image, la syntaxe est similaire: il suffit de remplacer le chemin du fichier par "none". Le --typeparamètre peut être omis:

VBoxManage.exe storageattach "<uuid|vmname>" --storagectl IDE --port 0 --device 0 --medium "none"

Lectures complémentaires

et31415
la source
3
En outre, toutes les informations pertinentes sur une machine virtuelle peuvent être découvertes avec VBoxManage showvminfo. Cela inclut les contrôleurs de stockage et leurs noms.
Daniel B
1
@DanielB, VBoxManage showvminfolistes IDE (1, 0): C:\Oracle\VirtualBox\VBoxGuestAdditions.isoet SATA (0, 0): d:\VirtualBox VMs\Windows 7 SP1 - SandBox 01\Win7SP1.vmdk. Je suis un peu confus sur les deux 0et 1. Correspondent-ils avec --portet --device?
Sopalajo de Arrierez
En ce qui concerne les fichiers image ISO, dois-je ajouter un ideou un satapériphérique?
Sopalajo de Arrierez
@SopalajodeArrierez Oui, ces numéros sont des identifiants de port / périphérique. Pour une compatibilité maximale, vous devez choisir un contrôleur IDE pour les lecteurs de CD / DVD virtuels: "Ainsi, même si votre système d'exploitation invité ne prend pas en charge les périphériques SCSI ou SATA, il devrait toujours pouvoir le voir." En dehors de cela, VirtualBox vous offre "quatre emplacements attachés au contrôleur IDE traditionnel, qui sont toujours présents" et "30 emplacements attachés au contrôleur SATA, s'ils sont activés et pris en charge par le système d'exploitation invité". Source
et31415
Les contrôleurs IDE ont deux ports (le premier élément du tuple), chacun capable de connecter deux périphériques (le deuxième élément). Identique à un vrai PC. L'interface graphique attache les supports optiques à (1, 0) par défaut.
Daniel B
10

Tout d'abord, vérifiez si vous avez un lecteur de CD / DVD installé, vide ou non (notez l'utilisation de la findcommande pour filtrer les résultats):

1.- Y a-t-il un lecteur de CD / DVD vide ?

C:\Oracle\VirtualBox>vboxmanage showvminfo "Windows 7 SP1 - SandBox 01" | find "empty" /i
SATA (1, 0): Empty

Félicitations, vous avez trouvé un possible lecteur de CD / DVD vide . Vous pouvez donc y attacher votre ISO, mais ...

... pour faire face au pire des scénarios, montrons une autre façon de trouver votre lecteur de CD / DVD, s'il est installé:

2.- Localisez le nom de votre VM :

C:\Oracle\VirtualBox>VBoxManage.exe list vms
"Windows 7 SP1 - SandBox 01" {e016fcf2-9b6e-4b8e-b89b-49a3c8ba0898}

3.- Listez ses contrôleurs de stockage (notez la findcommande pour filtrer trop de données de sortie) (*):

C:\Oracle\VirtualBox>vboxmanage showvminfo "Windows 7 SP1 - SandBox 01" | find "storage controller name" /i
Storage Controller Name (0):            IDE
Storage Controller Name (1):            SATA

4.- Montrez ses appareils connectés :

C:\Oracle\VirtualBox>vboxmanage showvminfo "Windows 7 SP1 - SandBox 01" | find "IDE"
Storage Controller Name (0):            IDE

(celui-ci est vide, il n'y a donc pas de contrôleurs de périphériques, que ce soit des disques durs ou des lecteurs de CD / DVD)

C:\Oracle\VirtualBox>vboxmanage showvminfo "Windows 7 SP1 - SandBox 01" | find "SATA"
Storage Controller Name (1):            SATA
SATA (0, 0): d:\VirtualBox VMs\Windows 7 SP1 - SandBox 01\SnapShots/{71b8bf72-dca1-4816-89ff-feba271ec262}.vmdk (UUID: 71b8bf72-dca1-4816-89ff-feba271ec262)
SATA (1, 0): Empty

SATA (0,0) a un (le) disque virtuel , et SATA (1,0) est vide (le premier nombre entre parenthèses est appelé type, le second est device), il doit donc s'agir du lecteur de CD / DVD .

5.- Permet d'y attacher un fichier image ISO (Office 2013, par exemple):

C:\Oracle\VirtualBox>vboxmanage storageattach "Windows 7 SP1 - SandBox 01" --storagectl "SATA" --port 1 --device 0 --type dvddrive --medium "Office2013-VL-SP1.iso"

(aucun résultat à l'écran signifie OK).

$ - Pour supprimer l'ISO en gardant le contrôleur du lecteur de CD / DVD:

C:\Oracle\VirtualBox>vboxmanage storageattach "Windows 7 SP1 - SandBox 01" --storagectl "SATA" --port 1 --device 0 --type dvddrive --medium "emptydrive"

$ - Dans le cas où aucun contrôleur de lecteur de CD / DVD "vide" n'est installé, VirtualBox devrait en ajouter un nouveau à un contrôleur existant, en supposant que nous choisissions un port / périphérique non occupé, par exemple pour le contrôleur SATA:

C:\Oracle\VirtualBox>vboxmanage storageattach "Windows 7 SP1 - SandBox 01" --storagectl "SATA" --port 5 --device 0 --type dvddrive --medium "Office2013-VL-SP1.iso"

(notez que nous avons utilisé le port 5)
Et pour le contrôleur IDE:

C:\Oracle\VirtualBox>vboxmanage storageattach "Windows 7 SP1 - SandBox 01" --storagectl "IDE" --port 0 --device 0 --type dvddrive --medium "Office2013-VL-SP1.iso"

(notez que nous avons utilisé (0,0), c'est le premier port et le premier périphérique)

$ - Si nous voulons supprimer (détruire) (n'importe lequel) des périphériques (exemple pour le dernier IDE):

C:\Oracle\VirtualBox>vboxmanage storageattach "Windows 7 SP1 - SandBox 01" --storagectl "IDE" --port 0 --device 0 --type dvddrive --medium "emptydrive"

(l'image ISO est démontée en même temps que l'exécution de cette commande).

$ - Enfin, si nous voulons créer un nouveau contrôleur au lieu d'utiliser le (s) existant (s) (exemple pour un contrôleur SATA que nous nommerons SATA3):

C:\Oracle\VirtualBox>vboxmanage storagectl "Windows 7 SP1 - SandBox 01" --name SATA3 --add sata

$ - Et peut-être le retirer plus tard:

C:\Oracle\VirtualBox>vboxmanage storagectl "Windows 7 SP1 - SandBox 01" --name SATA3 --remove

(*) Si le nom n'est pas suffisant (aurait pu être changé) pour déterminer de quel type de contrôleur il s'agit, essayez:

C:\Oracle\VirtualBox>vboxmanage showvminfo "Windows 7 SP1 - SandBox 01" | find "storage controller" /i
Storage Controller Name (0):            IDE
Storage Controller Type (0):            PIIX4
Storage Controller Instance Number (0): 0
Storage Controller Max Port Count (0):  2
Storage Controller Port Count (0):      2
Storage Controller Bootable (0):        on
Storage Controller Name (1):            SATA
Storage Controller Type (1):            IntelAhci
Storage Controller Instance Number (1): 0
Storage Controller Max Port Count (1):  30
Storage Controller Port Count (1):      2

Comme nous pouvons le voir, le contrôleur nommé IDE(# 0) est un périphérique PIIX4 (IDE) et celui nommé SATA(# 1) est un IntelAhci (SATA).

REMARQUE: les contrôleurs IDE acceptent les fichiers image possibles dans 4 configurations: (0,0), (0,1), (1,0) et (1,1). Choisissez celui qui n'est pas occupé. Les contrôleurs SATA acceptent 30. Ces paramètres peuvent être configurés sur les propriétés de la machine virtuelle. N'oubliez pas que, dans les deux cas, le décompte commence à 0, non 1.

REMARQUE 2: certains périphériques peuvent être créés pendant l'exécution de la machine virtuelle (en cours d'exécution), selon le système d'exploitation et le périphérique. Par exemple, les périphériques SATA peuvent être créés lors de l'exécution pour les machines virtuelles Windows 7. Quoi qu'il en soit, un fichier image CD / DVD ISO peut toujours être inséré lors de l'exécution sur n'importe quel support vide. Vous pouvez vérifier l'exécution de vms en faisant:

C:\Oracle\VirtualBox>vboxmanage list runningvms

Merci à @ and31415 et @DanielB pour leurs commentaires et informations.

Sopalajo de Arrierez
la source