修复VirtualBox中的"使用uuid硬盘已存在"问题

时间:2020-03-21 11:43:51  来源:igfitidea点击:

此快速提示将有助于修复Linux中VirtualBox中的"硬盘已经存在uuid"。
今天,我试图将一个VirtualBox VM迁移到KVM中。

我运行以下命令将VirtualBox VDI镜像转换为RAW格式:

$vboxmanage clonehd --format RAW /home/sk/VirtualBox\ VMs/CentOS\ 8\ Server/CentOS\ 8\ Server.vdi CentOS_8_Server.img

我收到这个错误:

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...
Progress state: NS_ERROR_INVALID_ARG
VBoxManage: error: Failed to clone medium
VBoxManage: error: Cannot register the hard disk '/home/sk/CentOS_8_Server.img' {894f84e2-dda6-41ab-aea6-387bc60e0fe4} because a hard disk '/home/sk/CentOS_8_Server.img' with UUID {afff3db8-b460-4f68-9c02-0f5d0d766c8e} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBoxWrap, interface IVirtualBox
VBoxManage: error: Context: "RTEXITCODE handleCloneMedium(HandlerArg*)" at line 1071 of file VBoxManageDisk.cpp

我删除了旧的原始图像,并尝试再次转换虚拟磁盘,但仍然有相同的错误。

修复VirtualBox中的"使用uuid硬盘已存在"问题

查看VirtualBox论坛后,我发现了实际原因对此问题。
几天前,我使用vboxManage命令将相同的VDI虚拟磁盘转换为原始格式,我今天删除了虚拟磁盘,而不会从VirtualBox媒体管理器正确释放它。
因此,VirtualBox框仍然认为已经有一个已注册的虚拟磁盘退出,具有相同的UUID,并拒绝创建新的磁盘。
要解决此问题,我应该释放,然后删除注册媒体。

我们可以通过两种方式释放和删除介质(硬盘或者CDROM):

  • 使用VOXMEAGE命令,
  • 使用虚拟媒体管理器。

使用vboxManage命令释放媒体

要从命令行正确释放硬盘介质,请运行此vboxManage命令:

$vboxmanage closemedium disk afff3db8-b460-4f68-9c02-0f5d0d766c8e

使用实际磁盘的UUID替换此"AFFF3DB8-B460-4F68-9C02-0F5D0D766C8E"uuID。
UUID在错误消息本身中给出。

使用虚拟媒体管理器释放媒体

打开VirtualBox应用程序并转到文件 - >虚拟媒体管理器。

从"虚拟媒体管理器"窗口中,选择要删除的硬盘,然后单击菜单列中的"删除"按钮。

关闭Virtual Media Manager和VirtualBox主窗口。
现在我能够将VDI虚拟磁盘转换为原始图像而没有任何问题。