把 VirtualBox 虚拟磁盘从一个分区移到另一个分区后,重新注册时常常遇到 UUID 冲突报错。本文讲清根因,并给出三步解决法:用 VBoxManage 注销旧路径、再注册新路径即可恢复。
问题现象
在 VirtualBox 中把 vmdk 磁盘从一个分区移动到另一个分区后,重新注册新路径时出现报错:
- 无法打开虚拟磁盘文件
Cannot register the hard disk ... because a hard disk ... with UUID ... already exists- 返回代码:
E_INVALIDARG (0x80070057)
界面上还可能看到:
- 磁盘出现在 Not Attached 下
- 磁盘名前面有黄色感叹号
- VirtualBox 7 中文界面只有
管理 / 控制 / 帮助菜单,不容易找到「虚拟介质管理器」
根因
不是新磁盘文件坏了,而是 VirtualBox 里仍然保留着旧路径磁盘的注册记录。
例如:
- 旧路径:
D:VMsMint21-MateDataDisk.vmdk - 新路径:
E:VMMint21-MateDataDisk.vmdk
这两个文件本质上是同一块磁盘,UUID 相同。VirtualBox 不允许同一个 UUID 同时注册两次,所以会报错。
解决方法
1. 完全关闭虚拟机
不要使用「保存状态」,要确保虚拟机已经彻底关机。
2. 查看 VirtualBox 已登记的硬盘
在 PowerShell 或命令行中执行:
& "C:Program FilesOracleVirtualBoxVBoxManage.exe" list hdds
找到仍然指向旧路径的那条记录。
3. 仅注销旧路径,不删除文件
& "C:Program FilesOracleVirtualBoxVBoxManage.exe" closemedium disk "D:VMsMint21-MateDataDisk.vmdk"
注意:
- 不要加
--delete - 这一步只是从 VirtualBox 中移除注册记录
- 不会删除磁盘文件本身
如果系统盘也报同样错误,就对系统盘旧路径再执行一次同样操作。
4. 重新注册新路径磁盘
回到 VirtualBox:
- 打开虚拟机
设置 → 存储 - 如果控制器下还有旧硬盘条目,先移除附件
- 点击「添加硬盘」
- 在「虚拟硬盘选择」窗口点击「注册」
- 选择新分区中的 vmdk
- 点击「选择」
补充说明
黄色感叹号是什么意思
一般表示 VirtualBox 记录的原始路径已经失效,文件被移动了,或者当前路径找不到。
为什么界面里删不掉
有些版本或中文界面里不容易直接找到「虚拟介质管理器」,而且就算看到了,重复 UUID 的问题本质上仍然是「旧注册记录没清掉」。这时直接用 VBoxManage closemedium 最稳。
如果 closemedium 还提示占用
继续检查这几项:
- 虚拟机是否真的已经关机
- 是否还有「保存状态」
设置 → 存储中是否还挂着旧硬盘- 是否有快照引用该磁盘
总结
- 用
VBoxManage list hdds找到旧路径登记 - 用
VBoxManage closemedium disk "旧路径"清掉旧注册 - 在 VirtualBox 里注册新路径的 vmdk
三步搞定 UUID 冲突。
