我创建了一个虚拟磁盘文件VM_1_Ubuntu.vdi。然后我把它移到另一个文件夹中。我尝试更新VM设置(右键单击虚拟机 - >设置 - >存储 - >控制器SATA选项卡,VM_1_Ubuntu.vdi路径)。我想设置一条新路。
它说无法注册已经存在的硬盘
我找到了解决方案
文件 - >虚拟媒体管理器 - >删除现有图像(注意,我只从注册表中删除它们)。
我按照这些步骤。
之后,我可以更新VM设置中的路径。
可以使用以下命令更改VDI文件上的UUID:
VBoxManage internalcommands sethduuid <file.vdi>
看来这个命令为文件分配了一个新的“随机”UUID。但是,没有太多的文件。
在某些情况下,首先需要发布,然后通过虚拟媒体管理器删除并重新添加
如果使用虚拟介质管理器(在我的情况下)无法删除或更改硬盘文件的路径,则:
1 - 在任何文本编辑器中打开文件'.vbox'和'.vbox-prev'(如果存在)并替换HardDisk uuid的第一个字符(请注意在步骤6中恢复此更改)
示例:nano /home/virtualbox/WindowsServer/WindowsServer.vbox
更改:
<HardDisks>
<HardDisk uuid="{3ebaa9b6-8318-4b81-b853-8f30dd278bdc}" location="/home/virtualbox/WindowsServer/WindowsServer.vdi" format="VDI" type="Normal"/>
至:
<HardDisks>
<HardDisk uuid="{2ebaa9b6-8318-4b81-b853-8f30dd278bdc}" location="/home/virtualbox/WindowsServer/WindowsServer.vdi" format="VDI" type="Normal"/>
2 - 重启机器
4 - 停止虚拟机(如果已启动)
5 - 在终端上:
su vbox
cd /home/virtualbox/WindowsServer/
VBoxManage modifyhd WindowsServer.vdi --resize SIZE
exit
exit
以兆字节为单位更改SIZE,例如80000(80GB)
6 - 在任何文本编辑器中再次打开文件'.vbox'和'.vbox-prev'(如果存在)文件,并用原始值替换HardDisk uuid的第一个字符
示例:nano /home/virtualbox/WindowsServer/WindowsServer.vbox
更改:
<HardDisks>
<HardDisk uuid="{2ebaa9b6-8318-4b81-b853-8f30dd278bdc}" location="/home/virtualbox/WindowsServer/WindowsServer.vdi" format="VDI" type="Normal"/>
至:
<HardDisks>
<HardDisk uuid="{3ebaa9b6-8318-4b81-b853-8f30dd278bdc}" location="/home/virtualbox/WindowsServer/WindowsServer.vdi" format="VDI" type="Normal"/>
7 - 重启机器
我非常感谢这里的建议。 Impaler's和Oleg的评论帮助我将我的解决方案拼凑在一起。
使用VBoxManage CLI。有一个带有--setlocation
选项的modifymedium命令。
我建议打开VBox GUI(在VM VirtualBox Manager 6.0上) - 选择“虚拟媒体管理器”(我使用了“文件”菜单) - 选择磁盘的“信息”按钮,为您提供此错误 - 复制UUID 注意:在下一步之前,我从“存储”设置中删除了控制器。 - 打开命令提示符并导航到.vdi文件的位置 键入VBoxMange以查看选项列表是个好主意,但这是运行的命令:
VBoxManage modifymedium
[在此插入媒体类型] [UUID] --setlocation
[.vdi文件的完整路径]
最后,将控制器重新连接到任何VM - 最好是您要修复的VM。