VirtualBox: Como posso adicionar (montar) um arquivo de imagem ISO na linha de comando?

21

Antes, na linha de comando do VirtualBox, havia um comando com esta sintaxe:

VBoxManage controlvm <VM> dvdattach <filename>

Portanto, anexar (inserir) um CD / DVD foi tão fácil quanto:

VBoxManage controlvm "MyVM Windows 7" dvdattach MyDVD.iso

Mas agora esse comando desapareceu .
Eu estive navegando no Manual do VirtualBox e tudo o que encontrei é algum comando storageattach , que se refere a outros storagectl que não são concisos o suficiente (eu odeio documentos sem exemplos), nenhum deles se referindo a algo como arquivos .ISO .
Não consegui encontrar uma solução em seu próprio fórum , pelo menos nada além das explicações ambíguas e não concisas :

Depois de instalar o controlador com storagectl (ou através da GUI), dê uma olhada no VBoxManage storageattach

Em vez de começar a testar opções aleatoriamente, prefiro perguntar aqui primeiro se alguém conseguiu fazer isso e poderia me dar alguma ajuda.

Sopalajo de Arrierez
fonte

Respostas:

24

Gerenciar o controlador IDE

Caso a VM não tenha um controlador IDE, você pode usar o storagectlcomando para adicionar um:

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

Anexar um arquivo de imagem de disco

Aqui está um exemplo de sintaxe que você pode usar para anexar um arquivo de imagem de CD / DVD:

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

Desanexar um arquivo de imagem de disco

Para desanexar um arquivo de imagem, a sintaxe é semelhante: você só precisa substituir o caminho do arquivo "none". O --typeparâmetro pode ser omitido:

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

Leitura adicional

and31415
fonte
3
Além disso, todas as informações relevantes em uma máquina virtual podem ser descobertas com VBoxManage showvminfo. Isso inclui controladores de armazenamento e seus nomes.
Daniel B
11
@DanielB, VBoxManage showvminfolistas IDE (1, 0): C:\Oracle\VirtualBox\VBoxGuestAdditions.isoe SATA (0, 0): d:\VirtualBox VMs\Windows 7 SP1 - SandBox 01\Win7SP1.vmdk. Estou um pouco confuso sobre ambos 0e 1. Eles se correlacionam com --porte --device?
Sopalajo de Arrierez
Quando se trata de arquivos de imagem ISO, devo adicionar um ideou um satadispositivo?
Sopalajo de Arrierez
@SopalajodeArrierez Sim, esses números são identificadores de porta / dispositivo. Para obter compatibilidade máxima, você deve escolher um controlador IDE para unidades virtuais de CD / DVD: "Portanto, mesmo que seu sistema operacional convidado não tenha suporte para dispositivos SCSI ou SATA, ele poderá sempre vê-lo". Além disso, o VirtualBox fornece "quatro slots anexados ao controlador IDE tradicional, que estão sempre presentes" e "30 slots anexados ao controlador SATA, se habilitados e suportados pelo sistema operacional convidado". Fonte
and31415
Os controladores IDE possuem duas portas (o primeiro item da tupla), cada uma capaz de conectar dois dispositivos (o segundo elemento). O mesmo que em um PC real. A GUI conecta a mídia ótica a (1, 0) por padrão.
Daniel B
10

Antes de tudo, verifique se você tem alguma unidade de CD / DVD instalada, vazia ou não (observe o uso do findcomando para filtrar os resultados):

1.- Existe alguma unidade de CD / DVD vazia ?

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

Parabéns, você encontrou uma possível unidade de CD / DVD vazia . Então você pode anexar seu ISO a ele, mas ...

... para enfrentar o pior cenário, vamos mostrar outra maneira de encontrar sua unidade de CD / DVD, se instalada:

2.- Localize o nome da sua VM :

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

3.- Liste seus controladores de armazenamento (observe o findcomando para filtrar muitos dados de saída) (*):

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.- Mostre seus dispositivos conectados :

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

(este está vazio, portanto não há controladores de dispositivo, sejam discos rígidos ou 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

O SATA (0,0) possui um (o) disco virtual e o SATA (1,0) está vazio (o primeiro número entre parênteses é conhecido como o typesegundo é device), portanto deve ser a unidade de CD / DVD .

5.- Vamos anexar um arquivo de imagem ISO (Office 2013, por exemplo) a ele:

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

(nenhum resultado na tela significa OK).

$ - Para remover o ISO mantendo o controlador da unidade de CD / DVD:

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

$ - Caso não exista um controlador de unidade de CD / DVD "vazio" instalado, o VirtualBox deve adicionar um novo a um controlador existente, assumindo que escolhemos uma porta / dispositivo não ocupado, por exemplo, para o 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"

(observe que usamos a porta 5)
E para o 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"

(observe que usamos (0,0), ou seja, a primeira porta e o primeiro dispositivo)

$ - Se queremos remover (destruir) (qualquer um) os dispositivos (exemplo para o último IDE):

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

(a imagem ISO é montada ao mesmo tempo em que é executado este comando).

$ - Finalmente, se queremos criar um novo controlador em vez de usar o (s) existente (s) (exemplo para um controlador SATA que chamaremos de SATA3):

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

$ - E talvez removê- lo mais tarde:

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

(*) Se o nome não for suficiente (poderia ter sido alterado) para descobrir que tipo de controlador é esse, tente:

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, o controlador chamado IDE(# 0) é um dispositivo PIIX4 (IDE) e o chamado SATA(# 1) é um IntelAhci (SATA).

NOTA: Os controladores IDE aceitam possíveis arquivos de imagem em 4 configurações: (0,0), (0,1), (1,0) e (1,1). Escolha o que não está ocupado. Os controladores SATA aceitam 30. Esses parâmetros podem ser configurados nas propriedades da VM. Lembre-se de que, nos dois casos, a contagem começa às 0, não 1.

NOTA2: Alguns dispositivos podem ser criados durante a execução da VM (em execução), dependendo do sistema operacional e do dispositivo. Por exemplo, dispositivos SATA podem ser criados em tempo de execução para VMs do Windows 7. De qualquer forma, um arquivo de imagem de CD / DVD ISO sempre pode ser inserido no tempo de execução em qualquer meio vazio. Você pode verificar a execução de vms fazendo:

C:\Oracle\VirtualBox>vboxmanage list runningvms

Obrigado a @ and31415 e @DanielB por seus comentários e informações.

Sopalajo de Arrierez
fonte