VirtualBox 虚拟机镜像文件 UUID 已存在问题

使用虚拟机的一个好处就是可以带着虚拟机镜像文件到处走,需要的时候新建一个虚拟机加载相应的镜像文件就可以了。不过在 VirtualBox 上貌似有个问题,已使用过的镜像文件拷贝到其他硬盘不能直接用,需要给镜像文件生成新的 UUID,原因是这个 UUID 已经在本机的 VirtualBox 里注册过了。今天从 USB 盘上加载一个 Windows 虚拟机就碰到这个问题,说这个 Windows 的 VDI 磁盘镜像文件的 UUID 已经存在了:

Cannot register the hard disk ‘windows.vdi’ because a hard disk ‘windows.vdi’ with UUID already exists.

virtualbox cannot register the hard drive

VirtualBox 界面选项里面没有提供解决办法,记得以前用 VMware 的时候遇到类似情况会给个提示然后可以继续强制使用已注册过的磁盘,还好,VirtualBox 提供了有用的命令行工具。

使用 VBoxManage internalcommands sethduuid 命令重新给 VDI 磁盘镜像文件生成新 UUID,后面的 /Volumes/16gb/winxp.vdi 是 VDI 文件的路径:

$ cd /Applications/VirtualBox.app/Contents/MacOS

$ VBoxManage internalcommands sethduuid /Volumes/16gb/winxp.vdi
UUID changed to: 434b7690-d86f-400a-9d82-a374946f0961

然后新建一个虚拟机加载这个镜像文件就可以了。

发表评论