1

私は実際に、Qemu と busybox を使用して Linux カーネルをエミュレートしようとしています。これまでのところ、このカーネル イメージを作成しました: http://depositfiles.com/files/l9x9veg09 そして、次の引数を使用して Qemu を起動しました: qemu-system-x86_64 -m 256 -s -hda rootfs.img -kernel linux-2.6.34.12/arch /x86/boot/bzImage -append "root=/dev/sda \ init=/bin/sh" しかし、カーネルが起動すると、「カーネル パニック」というメッセージが表示されます。初期化が見つかりません。init= オプションをカーネルに渡してみてください...引数に「init=/bin/sh」を追加すると問題は解決しますが、解決しませんでした。私はこの分野の初心者です。誰かがこれで私を助けることができますか? ありがとうございました

4

2 に答える 2

2

Busybox を使用する場合、init=/bin/sh の代わりに -initrd initramfs を qemu に渡します。これを試して

qemu-system-x86_64 -m 256 -s -hda rootfs.img -kernel linux-2.6.34.12/arch/x86/boot/bzImage -initrd initramfs -append "root=/dev/sda"
于 2012-07-20T03:46:44.557 に答える
0

最終的に、静的にリンクされたビルド前のバージョンのbusyboxを使用して機能させました(Webサイトにあります)。古いものは動的にリンクされていて、静的な実行可能ファイルとしてコンパイルするのは本当に苦労しました (glibc は静的リンクをサポートしていないようです)。

于 2012-07-20T10:08:33.487 に答える