VirtualBox: Jak mogę dodać (zamontować) plik obrazu ISO z wiersza poleceń?

21

W wierszu poleceń VirtualBox było wcześniej polecenie o następującej składni:

VBoxManage controlvm <VM> dvdattach <filename>

Tak więc podłączenie (włożenie) płyty CD / DVD było tak proste jak:

VBoxManage controlvm "MyVM Windows 7" dvdattach MyDVD.iso

Ale teraz to polecenie zniknęło .
Przeglądam Podręcznik VirtualBox i wszystko, co znalazłem, to polecenie storageattach , które odnosi się do innego magazynu, który nie jest wystarczająco zwięzły (nienawidzę dokumentów bez przykładów), żaden z nich nie odnosi się do czegoś takiego jak pliki .ISO .
Nie udało mi się znaleźć rozwiązania na własnym forum , a przynajmniej nic nie pójdzie dalej niż dwuznaczne i nieprecyzyjne wyjaśnienia :

Gdy masz już kontroler ze storagectl (lub poprzez GUI), spójrz na VBoxManage storageattach

Zamiast losowo testować opcje, wolę najpierw zapytać tutaj, czy komuś się to udało i może mi pomóc.

Sopalajo de Arrierez
źródło

Odpowiedzi:

24

Zarządzaj kontrolerem IDE

W przypadku, gdy maszyna wirtualna nie ma kontrolera IDE, możesz użyć storagectlpolecenia, aby dodać jeden:

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

Załącz plik obrazu dysku

Oto przykładowa składnia, której można użyć do dołączenia pliku obrazu CD / DVD:

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

Odłącz plik obrazu dysku

Aby odłączyć plik obrazu, jego składnia jest podobna: wystarczy zastąpić ścieżkę pliku "none". --typeParametr może zostać pominięty:

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

Dalsza lektura

i31415
źródło
3
Ponadto można znaleźć wszystkie istotne informacje na maszynie wirtualnej VBoxManage showvminfo. Obejmuje to kontrolery pamięci i ich nazwy.
Daniel B
1
@DanielB, VBoxManage showvminfolisty IDE (1, 0): C:\Oracle\VirtualBox\VBoxGuestAdditions.isoi SATA (0, 0): d:\VirtualBox VMs\Windows 7 SP1 - SandBox 01\Win7SP1.vmdk. Jestem trochę zdezorientowany co do obu 0i 1. Czy korelują z --porti --device?
Sopalajo de Arrierez
Czy w przypadku plików obrazów ISO należy dodać urządzenie idelub sataurządzenie?
Sopalajo de Arrierez
@SopalajodeArrierez Tak, te numery są identyfikatorami portów / urządzeń. Aby uzyskać maksymalną kompatybilność, powinieneś wybrać kontroler IDE dla wirtualnych napędów CD / DVD: „Więc nawet jeśli system operacyjny gościa nie obsługuje urządzeń SCSI ani SATA, zawsze powinien być w stanie zobaczyć [it]”. Poza tym VirtualBox zapewnia „cztery gniazda dołączone do tradycyjnego kontrolera IDE, które są zawsze obecne” i „30 gniazd dołączonych do kontrolera SATA, jeśli są włączone i obsługiwane przez system operacyjny gościa”. Źródło
and31415
Kontrolery IDE mają dwa porty (pierwszy element w krotce), z których każdy może łączyć dwa urządzenia (drugi element). Taki sam jak na prawdziwym komputerze. GUI domyślnie podłącza nośnik optyczny do (1, 0).
Daniel B
10

Przede wszystkim sprawdź, czy masz zainstalowany napęd CD / DVD, czy jest pusty, czy nie (zwróć uwagę na użycie findpolecenia do filtrowania wyników):

1.- Czy jest jakiś pusty napęd CD / DVD ?

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

Gratulacje, znalazłeś możliwy pusty napęd CD / DVD . Możesz więc dołączyć do niego swoje ISO, ale ...

... aby stawić czoła najgorszemu scenariuszowi, pokażmy inny sposób na znalezienie napędu CD / DVD, jeśli jest zainstalowany:

2. - Znajdź nazwę swojej maszyny wirtualnej :

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

3. - Wyświetl listę kontrolerów pamięci (zwróć uwagę na findpolecenie filtrowania zbyt dużej ilości danych wyjściowych) (*):

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. - Pokaż podłączone urządzenia :

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

(ten jest pusty, więc nie ma kontrolerów urządzeń, czy to dysków twardych czy napędów 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) ma ( wirtualny ) dysk wirtualny , a SATA (1,0) jest pusty (pierwsza liczba między nawiasami jest znana jako typedruga, to znaczy device, że powinien to być napęd CD / DVD .

5. - Pozwala dołączyć plik obrazu ISO (na przykład Office 2013):

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

(brak wyników na ekranie OK).

$ - Aby usunąć ISO utrzymujące kontroler napędu CD / DVD:

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

$ - W przypadku, gdy nie ma zainstalowanego „pustego” kontrolera napędu CD / DVD, VirtualBox powinien dodać nowy do istniejącego kontrolera, zakładając, że wybraliśmy nie zajęty port / urządzenie, na przykład dla kontrolera SATA:

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

(uwaga: użyliśmy portu 5).
W przypadku kontrolera IDE:

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

(uwaga, której użyliśmy (0,0), to jest pierwszy port i pierwsze urządzenie)

$ - Jeśli chcemy usunąć (zniszczyć) (dowolne) urządzenie (przykład dla ostatniego IDE):

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

(obraz ISO zostaje zamontowany w tym samym czasie, co polecenie).

$ - Wreszcie, jeśli chcemy stworzyć nowy kontroler zamiast używać istniejącego (-ych) (przykład dla kontrolera SATA, który nazwiemy SATA3):

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

$ - A może usunięcie go później:

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

(*) Jeśli nazwa nie jest wystarczająca (mogła zostać zmieniona), aby dowiedzieć się, jaki to rodzaj kontrolera , spróbuj:

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

Jak widzimy, kontroler o nazwie IDE(# 0) to urządzenie PIIX4 (IDE), a ten o nazwie SATA(# 1) to IntelAhci (SATA).

UWAGA: Kontrolery IDE akceptują możliwe pliki obrazów w 4 konfiguracjach: (0,0), (0,1), (1,0) i (1,1). Wybierz ten, który nie jest zajęty. Kontrolery SATA akceptują 30. Te parametry można skonfigurować we właściwościach maszyny wirtualnej. Pamiętaj, że w obu przypadkach liczenie zaczyna się od 0, a nie 1.

UWAGA 2: Niektóre urządzenia można utworzyć podczas wykonywania maszyny Wirtualnej (działa), w zależności od systemu operacyjnego i urządzenia. Na przykład urządzenia SATA można tworzyć w środowisku wykonawczym dla maszyn wirtualnych z systemem Windows 7. W każdym razie plik obrazu ISO CD / DVD można zawsze wstawić w czasie wykonywania na dowolnym pustym nośniku. Możesz sprawdzić działające vms, wykonując:

C:\Oracle\VirtualBox>vboxmanage list runningvms

Dzięki @ and31415 i @DanielB za komentarze i informacje.

Sopalajo de Arrierez
źródło