Я хотел бы превратить образ диска из облачного образа (бывший образ UEC) в загрузочный VirtualBox (для Vagrant). Я могу запустить образ в kvm (используя https://help.ubuntu.com/community/UEC/Images как стартер), но как я могу превратить файл .img в загрузочный диск VirtualBox ? Я бы предпочел не использовать дискету в качестве загрузочного.
Решение действительно состоит в том, чтобы сделать само изображение загрузочным. После нескольких дней поиска в сети я обнаружил, что решение заключается в использовании пакета extlinux , который является производным от syslinux - решения для создания загрузочных дисков 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
Это сделает изображение загрузочным, а отключит встроенные методы инициализации облака и т. Д.
Примечания: я не разработал, как указать APPEND, который позволяет ему использовать «root = LABEL = cloudimage-rootfs».
Полученный образ можно затем загрузить с помощью qemu, kvm или vmware, без дополнительных дискет, ядер или чего-либо еще. И насколько я понимаю, обновление apt-get ядра сделает активным это ядро при следующей загрузке.
edit : я забыл упомянуть очевидное, что вам нужно выполнить это обратное монтирование на необработанном образе диска, а затем преобразовать полученный файл в VDI, используя vboxmanage convertfromraw cloud-image.img cloud-image.vdi
Возможно, это полезно? http://en.wikibooks.org/wiki/QEMU/Images#Exchanging_images_with_VirtualBox