Posted in

VirtualBox 磁盘移位后 UUID 冲突解决方法

把 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:

  1. 打开虚拟机 设置 → 存储
  2. 如果控制器下还有旧硬盘条目,先移除附件
  3. 点击「添加硬盘」
  4. 在「虚拟硬盘选择」窗口点击「注册」
  5. 选择新分区中的 vmdk
  6. 点击「选择」

补充说明

黄色感叹号是什么意思

一般表示 VirtualBox 记录的原始路径已经失效,文件被移动了,或者当前路径找不到。

为什么界面里删不掉

有些版本或中文界面里不容易直接找到「虚拟介质管理器」,而且就算看到了,重复 UUID 的问题本质上仍然是「旧注册记录没清掉」。这时直接用 VBoxManage closemedium 最稳。

如果 closemedium 还提示占用

继续检查这几项:

  • 虚拟机是否真的已经关机
  • 是否还有「保存状态」
  • 设置 → 存储 中是否还挂着旧硬盘
  • 是否有快照引用该磁盘

总结

  1. VBoxManage list hdds 找到旧路径登记
  2. VBoxManage closemedium disk "旧路径" 清掉旧注册
  3. 在 VirtualBox 里注册新路径的 vmdk

三步搞定 UUID 冲突。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注