如何使用vboxmanage命令行工具分离vmdk文件

11

我使用vboxmanage命令行工具创建了沙盒,生成了vmdk文件。

我将它从.vmdk转换为.vdi格式,因为我想要压缩它,然后我附加了这个新创建的.vdi文件。

现在我想要分离vmdk文件,因为我不再需要它。 请问应该使用哪个命令?

我的硬盘驱动器列表如下:

$ vboxmanage list hdds
UUID:           f3b90783-abe7-4549-91aa-39aa6161f103
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/ankit/VirtualBox VMs/asr-vm/asr-sandbox-3.5.0-lb1404x64-disk1.vmdk
Storage format: VMDK
Capacity:       65536 MBytes

UUID:           1b9a4eff-f1bd-4c4e-ae48-8f11b8003244
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/ankit/VirtualBox VMs/asr-vm/asr-sandbox-3.5.0-lb1404x64-disk1.vdi
Storage format: VDI
Capacity:       65536 MBytes
2个回答

15

解决方法是将mediumemptydrivenone连接起来。这意味着对于特定的portdevice,您正在连接一个emptydrivenone

vboxmanage storageattach "asr-vm" --storagectl "SATA" --port 1 --medium none
或者
vboxmanage storageattach "asr-vm" --storagectl "SATA" --port 1 --medium emptydrive

根据文档,medium none是更好的选项。


8
+1,不过 vboxmanage storageattach [vm-name] --storagectl SATA --port 1 --medium none 是更好的选择。 - Mehrdad Hedayati
1
当我尝试使用emptydrive或none时,出现错误:VBoxManage: error: Could not find a controller named 'SATA'。 - Alexandru Eftimie
1
不是很确定,但我认为它应该与您的虚拟机的存储控制器类型匹配。尝试这样做,使用vboxmanage showvminfo VM_NAME命令检查“存储控制器名称”的值,并尝试将SATA替换为该名称。 - UserASR

1
对于任何想知道为什么noneemptydrive更适合--medium标志的人,VboxManage文档有这样的说法:

--medium

指定要连接的内容。支持以下值:

  • none:应从给定槽中删除任何现有设备。
  • emptydrive:仅对于虚拟DVD或软盘驱动器,这使设备插槽的行为类似于未插入任何媒体的可移动驱动器。
因此,考虑到我们想要拆卸(或“删除”它),none似乎是正确的选项。
来源:https://www.virtualbox.org/manual/ch08.html#vboxmanage-storageattach 注:这是回复Mehrdad Hedayati的评论的答案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接