在Docker容器中,我正在从头开始创建一个完整的PC Linux映像(使用debootstrap和许多其他工具)。
在过程结束时,我使用qemu-img convert -f raw -O vdi infile.raw outfile.vdi来生成适用于VirtualBox的映像文件。
这在本质上可以工作——盘在VirtualBox中启动。
然而,当创建一个新映像并替换outfile.vdi时(当然要先关闭虚拟机),那么VirtualBox会抱怨磁盘映像不正确,因为UUID与存储在VirtualBox媒体注册表中的UUID不匹配。
我被迫使用VirtualBox GUI中的VM设置再次删除和添加文件,以便我可以重新启动VM。
我猜测在vdi文件中直接存储了一些(随机)UUID,但我找不到一种方法使用qemu-img手动指定固定的UUID。
如何解决这个问题?也许另一种VirtualBox兼容的磁盘格式会更好?
如果有影响:所有这些都发生在Windows主机下。
在过程结束时,我使用qemu-img convert -f raw -O vdi infile.raw outfile.vdi来生成适用于VirtualBox的映像文件。
这在本质上可以工作——盘在VirtualBox中启动。
然而,当创建一个新映像并替换outfile.vdi时(当然要先关闭虚拟机),那么VirtualBox会抱怨磁盘映像不正确,因为UUID与存储在VirtualBox媒体注册表中的UUID不匹配。
我被迫使用VirtualBox GUI中的VM设置再次删除和添加文件,以便我可以重新启动VM。
我猜测在vdi文件中直接存储了一些(随机)UUID,但我找不到一种方法使用qemu-img手动指定固定的UUID。
如何解决这个问题?也许另一种VirtualBox兼容的磁盘格式会更好?
如果有影响:所有这些都发生在Windows主机下。
VBoxManage internalcommands sethduuid "/path/to.vdi" "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX"
。它可以正常工作。 - Toothbrush