VirtualBox: Làm cách nào tôi có thể thêm (gắn kết) tệp hình ảnh ISO từ dòng lệnh?


21

Trước đây trong dòng lệnh VirtualBox một lệnh với cú pháp này:

VBoxManage controlvm <VM> dvdattach <filename>

Vì vậy, việc gắn (chèn) đĩa CD / DVD dễ dàng như:

VBoxManage controlvm "MyVM Windows 7" dvdattach MyDVD.iso

Nhưng bây giờ lệnh này đã biến mất .
Tôi đã duyệt Sổ tay VirtualBox và tất cả những gì tôi tìm thấy là một số lệnh repositoryageattach , đề cập đến một số kho khác không đủ ngắn gọn (tôi ghét các tài liệu không có ví dụ), không ai trong số chúng đề cập đến các tệp như .ISO .
Tôi đã không thể tìm thấy một giải pháp trên diễn đàn của riêng mình , ít nhất là không có gì đi xa hơn những lời giải thích mơ hồ và không ngắn gọn :

Khi bạn đã có bộ điều khiển tại chỗ với repositoryagectl (hoặc thông qua GUI), hãy xem VBoxManage repositoryageattach

Thay vì bắt đầu kiểm tra các tùy chọn ngẫu nhiên, tôi muốn hỏi trước ở đây nếu ai đó đã thành công để thực hiện điều này và có thể giúp tôi một số trợ giúp.

Câu trả lời:


24

Quản lý bộ điều khiển IDE

Trong trường hợp VM không có bộ điều khiển IDE, bạn có thể sử dụng storagectllệnh để thêm một:

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

Đính kèm một tập tin hình ảnh đĩa

Đây là một cú pháp mẫu bạn có thể sử dụng để đính kèm tệp hình ảnh CD / DVD:

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

Tháo tệp hình ảnh đĩa

Để tách tệp hình ảnh, cú pháp tương tự: bạn chỉ cần thay thế đường dẫn tệp bằng "none". Các --typetham số có thể được bỏ qua:

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

đọc thêm


3
Ngoài ra, tất cả các thông tin liên quan trên một máy ảo có thể được phát hiện với VBoxManage showvminfo. Điều này bao gồm bộ điều khiển lưu trữ và tên của họ.
Daniel B

1
@DanielB, VBoxManage showvminfodanh sách IDE (1, 0): C:\Oracle\VirtualBox\VBoxGuestAdditions.isoSATA (0, 0): d:\VirtualBox VMs\Windows 7 SP1 - SandBox 01\Win7SP1.vmdk. Tôi hơi bối rối về cả hai 01. Họ có tương quan với --port--device?
Sopalajo de Arrierez

Khi liên quan đến các tệp ảnh ISO, tôi nên thêm một idehoặc một satathiết bị?
Sopalajo de Arrierez

@SopalajodeArrierez Có, những số đó là số nhận dạng cổng / thiết bị. Để tương thích tối đa, bạn nên chọn bộ điều khiển IDE cho ổ đĩa CD / DVD ảo: "Vì vậy, ngay cả khi hệ điều hành khách của bạn không hỗ trợ cho các thiết bị SCSI hoặc SATA, nó vẫn luôn có thể nhìn thấy [nó]." Ngoài ra, VirtualBox cung cấp cho bạn "bốn khe cắm được gắn vào bộ điều khiển IDE truyền thống, luôn có mặt" và "30 khe cắm được gắn vào bộ điều khiển SATA, nếu được hệ điều hành khách kích hoạt và hỗ trợ." Nguồn
and31415

Bộ điều khiển IDE có hai cổng (mục đầu tiên trong bộ), mỗi cổng có khả năng kết nối hai thiết bị (phần tử thứ hai). Tương tự như trên PC thật. GUI gắn phương tiện quang học vào (1, 0) theo mặc định.
Daniel B

10

Trước hết, hãy kiểm tra xem bạn đã cài đặt bất kỳ ổ đĩa CD / DVD nào chưa, có trống hay không (lưu ý sử dụng findlệnh để lọc kết quả):

1.- Có ổ đĩa CD / DVD trống nào không?

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

Xin chúc mừng, bạn đã tìm thấy một ổ đĩa CD / DVD trống có thể . Vì vậy, bạn có thể đính kèm ISO của mình với nó, nhưng ...

... Để đối mặt với tình huống xấu nhất, hãy hiển thị một cách khác để tìm ổ đĩa CD / DVD của bạn, nếu được cài đặt:

2.- Xác định tên VM của bạn :

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

3.- Liệt kê các bộ điều khiển lưu trữ của nó (lưu ý findlệnh để lọc quá nhiều dữ liệu đầu ra) (*):

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.- Hiển thị các thiết bị đính kèm của nó :

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

(cái này trống, vì vậy không có bộ điều khiển thiết bị, dù là đĩa cứng hay ổ đĩa 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) có một đĩa ảo (the) và SATA (1,0) trống (số thứ nhất giữa các dấu ngoặc đơn được gọi là type, số thứ hai là device), vì vậy nó phải là ổ đĩa CD / DVD .

5.- Cho phép đính kèm tệp hình ảnh ISO (ví dụ Office 2013) vào nó:

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

(không có kết quả trên màn hình có nghĩa OK).

$ - Để xóa ISO giữ bộ điều khiển ổ đĩa CD / DVD:

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

$ - Đối với trường hợp không có bộ điều khiển ổ đĩa CD / DVD "trống" được cài đặt, VirtualBox nên thêm một bộ điều khiển mới vào bộ điều khiển hiện có, giả sử chúng tôi chọn một cổng / thiết bị không bị chiếm dụng, ví dụ như cho bộ điều khiển SATA:

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

(lưu ý chúng tôi đã sử dụng cổng 5)
Và cho bộ điều khiển IDE:

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

(lưu ý chúng tôi đã sử dụng (0,0), đây là cổng đầu tiên và thiết bị đầu tiên)

$ - Nếu chúng tôi muốn xóa (hủy) (bất kỳ) thiết bị nào (ví dụ cho IDE cuối cùng):

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

(hình ảnh ISO được bỏ qua cùng lúc thực hiện lệnh này).

$ - Cuối cùng, nếu chúng ta muốn tạo một bộ điều khiển mới thay vì sử dụng (các) bộ điều khiển hiện có (ví dụ cho bộ điều khiển SATA mà chúng ta sẽ đặt tên là SATA3):

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

$ - Và có thể xóa nó sau:

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

(*) Nếu tên không đủ (có thể đã được thay đổi) để tìm ra loại bộ điều khiển nào, hãy thử:

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

Như chúng ta có thể thấy, bộ điều khiển có tên IDE(# 0) là một thiết bị PIIX4 (IDE) và bộ điều khiển có tên SATA(# 1) là IntelAhci (SATA).

GHI CHÚ: Bộ điều khiển IDE chấp nhận các tệp hình ảnh có thể có ở 4 cấu hình: (0,0), (0,1), (1,0) và (1,1). Chọn một trong đó không bị chiếm đóng. Bộ điều khiển SATA chấp nhận 30. Các tham số này có thể được cấu hình trên các thuộc tính VM. Hãy nhớ rằng, trong cả hai trường hợp, đếm bắt đầu từ 0, không 1.

CHÚ THÍCH 2: Một số thiết bị có thể được tạo trong quá trình thực thi VM (đang chạy), tùy thuộc vào hệ điều hành và thiết bị. Ví dụ: các thiết bị SATA có thể được tạo trong thời gian chạy cho máy ảo Windows 7. Dù sao, một tệp hình ảnh ISO CD / DVD luôn có thể được chèn vào thời gian chạy trong bất kỳ phương tiện trống nào. Bạn có thể kiểm tra vms đang chạy bằng cách thực hiện:

C:\Oracle\VirtualBox>vboxmanage list runningvms

Cảm ơn @ and31415 và @DanielB về những bình luận và thông tin của họ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.