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 /dev/zero -append "root=/dev/hda rootdelay=90"
丁度virtio-pciを読みこんだ後に、
Begin: Loading essential drivers... done. ... Begin: Mounting for root file system ... Begin: Waiting for root file system Gave up wating for root device. Common problems: - Boot args (cat /proc/cmdline) - Check rootdelay= (did the system wait long enough?) - Check root = (did the system wait for the right device?) - Missing modules (cat /proc/modules; ls /dev) ALERT! /dev/root does not exit. Dropping to a shell!
というメッセージが出て、busyboxが起動. どうしたらいいのだろう. こういうときはドキュメントを読んでみます. まずは initramfs のドキュメント
全ての 2.6 系 Linux カーネルは gzip 圧縮された「cpio」フォーマットのアー
カイブを含んでおり、これはカーネルが起動する際に rootfs に展開されます。
展開後、カーネルは rootfs が「init」ファイルを含んでいるかどうか確認し、
あれば PID 1 ※として実行されます。by http://www.linux.or.jp/JF/JFdocs/kernel-docs-2.6/filesystems/ramfs-rootfs-initramfs.txt.html
ということは、rootfs を見つける前段階でコケてるってことですね. 次に、qemuのオプションを見てみます.
Use ‘-kernel’ to provide the Linux kernel image and ‘-append’ to give the kernel command line arguments. The ‘-initrd’ option can be used to provide an INITRD image.
When using the direct Linux boot, a disk image for the first hard disk ‘hda’ is required because its boot sector is used to launch the Linux kernel.
めぼしい情報はみつからず. ドライバを確認してみるかなぁ.