在Docker容器中,我从头开始创建一个完整的PC Linux图像(使用debootstrap
和许多其他工具)。
在流程结束时,我正在使用qemu-img convert -f raw -O vdi infile.raw outfile.vdi
生成适合VirtualBox的图像文件。
这实际上起作用 - 虚拟框内的磁盘启动。
但是,在创建新图像和替换 outfile.vdi
时(当然关闭VM),VirtualBox会抱怨磁盘映像不是好的,因为UUID与VirtualBox媒体注册表中存储的UUID不匹配。
我被迫使用VirtualBox GUI在VM设置中删除并再次添加文件,以便我可以再次启动VM。
我猜有一些(随机)UUID
直接存储在.vdi
文件中,但我找不到用qemu-img
手动指定固定UUID的方法。
我该如何解决这个问题?也许另一种兼容VirtualBox的磁盘格式会更好用吗?
如果重要:这一切都发生在Windows主机
下答案 0 :(得分:0)
在我的情况下,答案在这里:How to change UUID in virtual box有帮助。我是这样做的:
VBoxManage internalcommands sethduuid my-drive.vdi
.vbox
文件(在我的情况下,在两个地方)。可能是不太好的方式,因为我重新启动VirtualBox,没有尝试“实时”,但希望这个答案对某人有用。
当然,可以让脚本自动完成。
另外,this表示uuid可以作为VBoxManage internalcommands sethduuid <UUID> <Yourdrive>
的参数给出,但我没有尝试,因为我的任务不常见。在那里给出的脚本中完全完成它的方法。