VirtualBox: ¿Cómo puedo agregar (montar) un archivo de imagen ISO desde la línea de comandos?

21

Antes había en la línea de comandos de VirtualBox un comando con esta sintaxis:

VBoxManage controlvm <VM> dvdattach <filename>

Así que adjuntar (insertar) un CD / DVD fue tan fácil como:

VBoxManage controlvm "MyVM Windows 7" dvdattach MyDVD.iso

Pero ahora este comando ha desaparecido .
He estado navegando por el Manual de VirtualBox y todo lo que he encontrado es un comando de almacenamiento adjunto , que se refiere a algún otro Storagectl que no es lo suficientemente conciso (odio los documentos sin ejemplos), ninguno de ellos hace referencia a algo como archivos .ISO .
No he podido encontrar una solución en su propio foro , al menos nada más que explicaciones ambiguas y no concisas :

Una vez que tenga el controlador en su lugar con storagectl (o mediante la GUI), eche un vistazo a VBoxManage storageattach

En lugar de comenzar a probar opciones al azar, prefiero preguntar primero aquí si alguien ha logrado hacer esto, y podría ayudarme.

Sopalajo de Arrierez
fuente

Respuestas:

24

Administrar el controlador IDE

En caso de que la VM no tenga un controlador IDE, puede usar el storagectlcomando para agregar uno:

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

Adjunte un archivo de imagen de disco

Aquí hay una sintaxis de muestra que puede usar para adjuntar un archivo de imagen de CD / DVD:

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

Separar un archivo de imagen de disco

Para separar un archivo de imagen, la sintaxis es similar: solo necesita reemplazar la ruta del archivo con "none". El --typeparámetro se puede omitir:

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

Otras lecturas

y31415
fuente
3
Además, toda la información relevante en una máquina virtual se puede descubrir con VBoxManage showvminfo. Esto incluye controladores de almacenamiento y sus nombres.
Daniel B
1
@DanielB, VBoxManage showvminfolistas IDE (1, 0): C:\Oracle\VirtualBox\VBoxGuestAdditions.isoy SATA (0, 0): d:\VirtualBox VMs\Windows 7 SP1 - SandBox 01\Win7SP1.vmdk. Estoy un poco confundido acerca de ambos 0y 1. ¿Se correlacionan con --porty --device?
Sopalajo de Arrierez
Cuando se trate de archivos de imagen ISO, debería añadir una ideo un satadispositivo?
Sopalajo de Arrierez
@SopalajodeArrierez Sí, esos números son identificadores de puerto / dispositivo. Para obtener la máxima compatibilidad, debe elegir un controlador IDE para unidades virtuales de CD / DVD: "Por lo tanto, incluso si su sistema operativo invitado no es compatible con dispositivos SCSI o SATA, siempre debería poder verlo". Aparte de eso, VirtualBox le ofrece "cuatro ranuras conectadas al controlador IDE tradicional, que siempre están presentes" y "30 ranuras conectadas al controlador SATA, si está habilitado y es compatible con el sistema operativo invitado". Fuente
y31415
Los controladores IDE tienen dos puertos (el primer elemento de la tupla), cada uno capaz de conectar dos dispositivos (el segundo elemento). Igual que en una PC real. La GUI conecta los medios ópticos a (1, 0) de forma predeterminada.
Daniel B
10

En primer lugar, verifique si tiene alguna unidad de CD / DVD instalada, ya sea vacía o no (tenga en cuenta el uso del findcomando para filtrar los resultados):

1.- ¿Hay alguna unidad de CD / DVD vacía ?

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

Felicitaciones, ha encontrado una posible unidad de CD / DVD vacía . Para que pueda adjuntar su ISO, pero ...

... para enfrentar el peor escenario, muestremos otra forma de encontrar su unidad de CD / DVD, si está instalada:

2.- Localice el nombre de su VM :

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

3.- Enumere sus controladores de almacenamiento (observe el findcomando para filtrar demasiados datos de salida) (*):

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.- Mostrar sus dispositivos conectados :

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

(este está vacío, por lo que no hay controladores de dispositivos, ya sean discos duros o unidades 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) tiene un (el) disco virtual , y SATA (1,0) está vacío (el primer número entre paréntesis se conoce como typesegundo device), por lo que debería ser la unidad de CD / DVD .

5.- Adjuntemos un archivo de imagen ISO (Office 2013, por ejemplo):

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

(sin resultados en pantalla significa OK).

$ - Para eliminar el ISO manteniendo el controlador de la unidad de CD / DVD:

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

$ - Para el caso de que no haya un controlador de unidad de CD / DVD "vacío" instalado, VirtualBox debería agregar uno nuevo a un controlador existente, asumiendo que elegimos un puerto / dispositivo no ocupado, por ejemplo para el controlador SATA:

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

(tenga en cuenta que usamos el puerto 5)
Y para el controlador IDE:

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

(tenga en cuenta que utilizamos (0,0), es decir, el primer puerto y el primer dispositivo)

$ - Si queremos eliminar (destruir) (cualquiera de) los dispositivos (ejemplo para el último IDE):

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

(la imagen ISO se desmonta al mismo tiempo que se ejecuta este comando).

$ - Finalmente, si queremos crear un nuevo controlador en lugar de usar uno (s) existente (s) (ejemplo para un controlador SATA que llamaremos SATA3):

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

$ - Y tal vez eliminarlo más tarde:

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

(*) Si el nombre no es suficiente (podría haberse cambiado) para averiguar qué tipo de controlador es, intente:

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

Como podemos ver, el controlador llamado IDE(# 0) es un dispositivo PIIX4 (IDE) y el llamado SATA(# 1) es un IntelAhci (SATA).

NOTA: Los controladores IDE aceptan posibles archivos de imagen en 4 configuraciones: (0,0), (0,1), (1,0) y (1,1). Elige el que no está ocupado. Los controladores SATA aceptan 30. Estos parámetros se pueden configurar en las propiedades de VM. Recuerde que, en ambos casos, el recuento comienza en 0, no 1.

NOTA2: Algunos dispositivos se pueden crear durante la ejecución de VM (en ejecución), según el sistema operativo y el dispositivo. Por ejemplo, los dispositivos SATA se pueden crear en tiempo de ejecución para máquinas virtuales con Windows 7. De todos modos, un archivo de imagen ISO CD / DVD siempre se puede insertar en tiempo de ejecución en cualquier medio vacío. Puede verificar la ejecución de vms haciendo:

C:\Oracle\VirtualBox>vboxmanage list runningvms

Gracias a @ and31415 y @DanielB por sus comentarios e información.

Sopalajo de Arrierez
fuente