VirtualBox 虚拟机中安装操作系统之后通常的做法是备份一份当时的磁盘镜像以方便以后使用,可免去重新安装操作系统的繁琐。但是每个 VirtualBox 磁盘都有一个唯一的 UUID 系列号,而两个相同的 UUID 不能同时出现在一个 VirtualBox 管理器中。
当再次创建虚拟机并使用原来备份的磁盘镜像(使用已有的虚拟硬盘文件)作为虚拟机硬盘介质的时候,多半就会碰到错误:
打开虚拟硬盘文件 …… 失败.
… a hard disk ‘…’ with UUID … already exists.
此时就需要修改要使用的这个虚拟硬盘文件的 UUID。
"C:\Program Files\Oracle\VirtualBox\VBoxManage" internalcommands sethduuid "F:\WinXP - OriginalBackup - Copy.vdi"
运行结果为,
UUID changed to: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
然后就可以将这个虚拟硬盘文件顺利导入 VirtualBox 了。此方法对其他的虚拟磁盘格式也适用,如 VMDK、vhd 等。
Linux 中更改 VirtualBox 虚拟机磁盘的 UUID 的方法跟 Windows 中一样,如,
VBoxManage internalcommands sethduuid /path/to/hd.vdi
这个已经在 openSUSE 中实践过。
当然,如果有必要还可以直接指定一个 UUID 而不是让它自动生成,例如,
VBoxManage internalcommands sethduuid /path/to/hd.vdi {e02f521c-cb06-48bd-a718-6bbb8fcb1408}
还有更多类似的内部指令可以通过下面的命令行查阅,
VBoxManage internalcommands --help
VirtualBox 真是非常好用。手头备几个各种系统的初始化安装后的虚拟磁盘文件就可以很方便的在几分钟内开启一个新的干净的测试系统,当然是配合上面的指令来修改虚拟磁盘的 UUID 之后了,不然会有冲突。©
本文发表于水景一页。永久链接:<https://cnzhx.net/blog/change-uuid-of-disk-image-for-virtualbox/>。转载请保留此信息及相应链接。
[给力]