我想将磁盘映像从云映像(以前的 UEC 映像)转换为可启动的 VirtualBox(用于 Vagrant)。我可以在 kvm 中运行映像(使用https://help.ubuntu.com/community/UEC/Images作为启动器),但我如何才能将 .img 磁盘文件转换为可启动的 VirtualBox 磁盘?我宁愿不使用软盘作为启动器。
答案1
解决方案确实是让镜像本身可启动。经过几天的互联网搜索,我发现解决方案是使用包扩展Linux,它是系统Linux— 一种使 FAT 磁盘可启动的解决方案。extlinux 可以在 e2fs 及其衍生产品上运行,并且可以在任何旧的 ext2 系统上完美运行。
mkdir /mnt/image
mount -o loop cloud-image.img /mnt/image
mkdir /mnt/image/extlinux/
extlinux --install /mnt/image/extlinux/
echo "DEFAULT /vmlinuz" > /mnt/image/extlinux/extlinux.conf
echo "APPEND root=/dev/sda init=/usr/lib/cloud-init/uncloud-init" \
"ubuntu-pass=ubuntu ds=nocloud" >> /mnt/image/extlinux/extlinux.conf
umount /mnt/image
这将使映像可启动,并且禁用内置云初始化技术等等。
注意:我还没有弄清楚如何指定允许它使用“root=LABEL=cloudimage-rootfs”的 APPEND。
然后,生成的映像可以使用 qemu、kvm 或 vmware 启动,无需额外的软盘、内核或任何东西。据我所知,apt-get 升级内核将要使该内核在下次启动时处于活动状态。
编辑:我忘了说了,你需要在原始磁盘映像上执行这个环回安装,然后使用以下命令将生成的文件转换为 VDIvboxmanage convertfromraw cloud-image.img cloud-image.vdi
答案2
答案3
现在有一个 Ova 格式的映像,导入 VirtualBox 后即可使用,请参阅下面我的长期搜索。我仍然没有弄清楚如何在 Virt-manager 中启动映像,并且很想这样做,但 extlinux 没有帮助。它没有使用直接启动来查看内核文件位置。