VirtualBox:如何从命令行添加(挂载)ISO映像文件?


21

VirtualBox 命令行中以前有一个使用以下语法的命令:

VBoxManage controlvm <VM> dvdattach <filename>

因此,附加(插入)CD / DVD就像这样简单:

VBoxManage controlvm "MyVM Windows 7" dvdattach MyDVD.iso

但是现在这个命令已经消失了
我一直在浏览《VirtualBox手册》,发现的只是一些storageattach命令,它指的是其他一些不够简洁的storagectl(我讨厌没有示例的文档),它们都没有引用.ISO文件之类的东西。
我一直无法在自己的论坛上找到解决方案,至少没有什么比模棱两可和简明扼要的解释更远了:

将控制器与storagectl配合使用后(或通过GUI),请查看VBoxManage storageattach

与其开始随机测试选项,不如先在这里先问一下是否有人成功做到了这一点,并且可以给我一些帮助。

Answers:


24

管理IDE控制器

如果虚拟机没有IDE控制器,则可以使用以下storagectl命令添加一个:

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

附加磁盘映像文件

这是可用于附加CD / DVD映像文件的示例语法:

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

分离磁盘映像文件

要分离图像文件,其语法类似:您只需要用替换文件路径"none"。该--type参数可以省略:

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

进一步阅读


3
同样,可以使用找到虚拟机上的所有相关信息VBoxManage showvminfo。这包括存储控制器及其名称。
丹尼尔·B

1
@DanielB,VBoxManage showvminfo列表IDE (1, 0): C:\Oracle\VirtualBox\VBoxGuestAdditions.isoSATA (0, 0): d:\VirtualBox VMs\Windows 7 SP1 - SandBox 01\Win7SP1.vmdk。我对0和都有些困惑1。它们与--port和相关--device吗?
Sopalajo de Arrierez 2014年

关于ISO映像文件,我应该添加ide还是sata设备?
Sopalajo de Arrierez 2014年

@SopalajodeArrierez是的,这些数字是端口/设备标识符。为了获得最大的兼容性,您应该为虚拟CD / DVD驱动器选择一个IDE控制器:“因此,即使您的来宾操作系统不支持SCSI或SATA设备,它也应该始终能够看到它。” 除此之外,VirtualBox还为您提供了“四个附加到传统IDE控制器的插槽,这些插槽一直存在”和“ 30个附加到SATA控制器的插槽(如果来宾操作系统启用并支持)”。来源
and31415

IDE控制器具有两个端口(元组中的第一个项目),每个端口都可以连接两个设备(第二个元素)。与在真实PC上相同。GUI默认将光学介质附加到(1,0)。
Daniel B

10

首先,检查是否已安装任何CD / DVD驱动器,是否为空(请注意使用find命令过滤结果):

1.-是否有空CD / DVD驱动器?

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

恭喜,您找到了可能空的CD / DVD驱动器。因此,您可以将ISO附加到它,但是...

...为了面对最坏的情况,让我们展示另一种查找CD / DVD驱动器的方法(如果已安装):

2.-找到您的VM名称

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

3.-列出其存储控制器(请注意find用于过滤过多输出数据的命令)(*):

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.-显示其连接的设备

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

(此为空,因此没有设备控制器,无论是硬盘还是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)有一个虚拟磁盘,而SATA(1,0)为(括号中的第一个数字为type,第二个为device),因此它应该是CD / DVD驱动器

5.-让我们附加一个ISO映像文件(例如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"

(屏幕上没有结果表示OK)。

$-要删除保留CD / DVD驱动器控制器的ISO

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

$-对于没有安装“空” CD / DVD驱动器控制器的情况,假设我们选择了一个未占用的端口/设备(例如SATA控制器),VirtualBox应该向现有的控制器添加一个新的控制器:

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

(请注意,我们使用端口5)
对于IDE控制器:

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

(请注意,我们使用的(0,0)是第一个端口和第一个设备)

$-如果要删除(销毁)任何设备(最后一个IDE的示例):

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

(在执行此命令的同时,会挂载ISO映像)。

$-最后,如果我们要创建一个新的控制器而不是使用现有的控制器(以SATA控制器为例,我们将其命名为SATA3):

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

$-也许以后再删除

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

(*)如果名称不足(可能已更改),无法确定它是哪种控制器,请尝试:

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

如我们所见,名为IDE(#0)的控制器是PIIX4设备(IDE),而名为SATA(#1)的控制器是IntelAhci(SATA)。

注意:IDE控制器可以接受以下四种配置的图像文件:(0,0),(0,1),(1,0)和(1,1)。选择一个未被占用的。SATA控制器接受30。可以在VM属性上配置这些参数。请记住,在两种情况下,计数都从而0不是开始1

注意2:某些设备可以在VM执行(运行)期间创建,具体取决于操作系统和设备。例如,可以在运行时为Windows 7 VM创建SATA设备。无论如何,ISO CD / DVD映像文件始终可以在运行时插入任何空介质中。您可以通过以下方法检查正在运行的虚拟机:

C:\Oracle\VirtualBox>vboxmanage list runningvms

感谢@ and31415和@DanielB的评论和信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.