web-dev-qa-db-ja.com

VirtualBoxでクラウドイメージをセットアップする方法

ディスクイメージをクラウドイメージ(以前のUECイメージ)からブート可能なVirtualBox(Vagrant用)に変換したいと思います。 kvmでイメージを実行できます( https://help.ubuntu.com/community/UEC/Images をスターターとして使用します)が、.imgディスクファイルを起動可能なVirtualBoxにするにはどうすればよいですかディスク?フロッピーをブートとして使用したくない。

5
Magne Rasmussen

解決策は、実際にイメージ自体を起動可能にすることです。インターウェブを数日間検索した後、解決策はパッケージ 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

これにより、イメージがブート可能になり、 組み込みのクラウド初期化手法を無効にする などになります。

注:「root = LABEL = cloudimage-rootfs」の使用を許可するAPPENDを指定する方法についてはまだ検討していません。

結果のイメージは、追加のフロッピー、カーネルなどを使用せずに、qemu、kvm、またはvmwareを使用して起動できます。そして、私が理解していることから、カーネルのapt-getアップグレードは、次のブート時にそのカーネルをアクティブにします

edit:生のディスクイメージでこのループバックマウントを実行し、vboxmanage convertfromraw cloud-image.img cloud-image.vdiを使用して結果のファイルをVDIに変換する必要があることを明らかに忘れていました。

1
mogsie
1
kim0