KVMを用いて、カーネルイメージから直接起動したい...!(解決編) + パッチ投げた
先日の記事で、KVMからの直ブートに失敗していましたが、無事に動作しました!
/usr/local/kvm/88/bin/qemu-system-x86 -kernel /boot/vmliuz-2.6.28-15-generic -initrd /boot/initrd.img-2.6.28-15-generic -hda ~/disks/ubuntu.img -append "root=/dev/sda"
でブートします. 前回犯していた過ちは、ルートデバイスを "/dev/hda" と示していたことです.
busybox中で、
$ ls /dev/hda
としても、としても、何も出てこなかったのでおかしいなぁとは思っていましたがw
id:viverとid:kidminにアドバイス頂き、再度 ls し直してみると...
$ ls /dev/ | grep da sda sda1 sda2 sda3
と出てきました!そりゃうごきませんわ...w
というわけで、起動デバイスファイルがsdaにも関わらずhdaを指定するのは非直感的であると思ったため、以下のようなパッチを作成しました.
diff --git a/qemu-options.hx b/qemu-options.hx index c1ec976..91cd931 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -68,6 +68,13 @@ Use @var{file} as floppy disk 0/1 image (@pxref{disk_images}). You can use the host floppy by using @file{/dev/fd0} as filename (@pxref{host_drives}). ETEXI +DEF("sda", HAS_ARG, QEMU_OPTION_sda, + "-sda/-sdb file use 'file' as IDE hard disk 0/1 image\n") +DEF("sdb", HAS_ARG, QEMU_OPTION_sdb, "") +DEF("sdc", HAS_ARG, QEMU_OPTION_sdc, + "-sdc/-sdd file use 'file' as IDE hard disk 2/3 image\n") +DEF("sdd", HAS_ARG, QEMU_OPTION_sdd, "") + DEF("hda", HAS_ARG, QEMU_OPTION_hda, "-hda/-hdb file use 'file' as IDE hard disk 0/1 image\n") DEF("hdb", HAS_ARG, QEMU_OPTION_hdb, "") diff --git a/vl.c b/vl.c index 3485ce6..62d1d91 100644 --- a/vl.c +++ b/vl.c @@ -5085,6 +5085,7 @@ int main(int argc, char **argv, char **envp) initrd_filename = optarg; break; case QEMU_OPTION_hda: + case QEMU_OPTION_sda: if (cyls == 0) hda_opts = drive_add(optarg, HD_ALIAS, 0); else @@ -5096,6 +5097,9 @@ int main(int argc, char **argv, char **envp) translation == BIOS_ATA_TRANSLATION_NONE ? ",trans=none" : ""); break; + case QEMU_OPTION_sdb: + case QEMU_OPTION_sdc: + case QEMU_OPTION_sdd: case QEMU_OPTION_hdb: case QEMU_OPTION_hdc: case QEMU_OPTION_hdd:
なお、パッチの適応先は 2009/09/07 時点での最新レポジトリです. このパッチを適応することで、
/usr/local/kvm/88/bin/qemu-system-x86 -sda ~/disks/ubuntu.img
といった風に、-sdaをオプションでディスクイメージを指定することができます. その他, sdb,sdc,sdd に対応しています. なお、このパッチをKVMのMLに投げてみました. スルーされるかもしれませんが、どうなるか楽しみですw