Virtual Box更改虚拟硬盘导致无法启动 [错误代码:E_INCALIDARG(0x80070057)]
当不小心删掉虚拟机但是却没有删掉虚拟硬盘文件的时候,再次导入原来的虚拟机到原来的文件夹将会比较麻烦。
首先新创建的虚拟机不能在已有虚拟硬盘的目录创建,如图:
因此只能在一个空的文件夹中新建,于是我们点击虚拟硬盘下的 使用已有的虚拟硬盘文件,这个虚拟硬盘当然是在其他文件夹下。
创建好了之后,如果你不想将原来的虚拟硬盘文件放到你当前虚拟机的文件夹下的话,那就没什么事了。下面要说的是某些强迫症(比如我)希望将原来的虚拟硬盘放到目前创建的虚拟机的文件夹下。
我们首先将原来的虚拟硬复制一份到目前虚拟机目录下,然后在设置中找到:
我们考到右边的明细中该虚拟硬盘的位置(这个是我已经改完的),一开始应该是不在这个文件夹下的。
这时候如果我们点击那个红色的叉号将该硬盘删除,然后再新建的话,会出现这样的错误:
UUID已经存在
值得注意的是,改文件名是没有用的,我一开始以为改个文件名再注册一个虚拟硬盘就可以了,但是看错误提示,UUID已经存在,说明虚拟机不是根据文件名来判别虚拟硬盘的,尽管两个虚拟硬盘文件名不一样,但是实际上是同一个文件。
这时候我们需要修改他的通用唯一识别码 UUID(Universally Unique Identifier)
我们找到 vboxmanage.exe 这个文件的根目录,一般都在 Virtual Box 的一级目录下,然后用管理员打开命令行,输入:
vboxmanage.exe internalcommands sethduuid 你当前虚拟机目录下的虚拟硬盘完整路径
这样就更改完成了 UUID,然后再在虚拟机中注册刚刚的虚拟硬盘,就可以正常使用了,还是原来熟悉的系统。