qemuはLinuxカーネルを実行できません

qemuはLinuxカーネルを実行できません

私は見たこれ私は質問とほぼ同じことをしましたが、設定でinitrdを有効にして一時ルートファイルシステムを使用し、他の修正はありませんでしたが、まだ次のエラーが発生します。

qemu -kernel linux-3.16.1/arch/x86/boot/bzImage

ここに画像の説明を入力してください。

このエラーの原因や回避策に関する提案はありますか?

答え1

起動失敗の理由は上記の問題と同じです -他の操作を行わずにカーネルを起動するだけでは、あまり効果がありません。。ディスクを提供する必要があります。またはinitrdイメージ。しかし、単にinitrdを有効にしても、魔法のようにinitrdイメージが提供されるわけではありません。次のように準備し、qemuに提供する必要があります。

qemu-system-i386 -kernel <your kernel> -initrd <your initrd image>

ディスクも提供しなければならない可能性が高い。

qemu用のディスクを作成して使用する方法は12種類ありますので、ここでは非常に簡単な方法だけを説明します。ここ詳細はこちら)。

まず、次のようなファイルを作成します。

qemu-img create -f raw mydisk.img 1G

これにより、1GiBディスクが作成されます。

次のように使用できます。

qemu <other options> -hda mydisk.img

initrdがディスクに何か(例えば利用可能なシステム)を要求する場合は、まずそれをlocalhostにマウントして埋める必要があります。たとえば、次のようになります。

losetup /dev/loop0 mydisk.img

/dev/loop0他のブロックデバイスと同様に処理できます。つまり、fdiskそのデバイスで実行できます。パーティションとファイルシステムを作成したら、それをマウントして必要なものを配置できます。

もう1つの方法は、マウントISOイメージを使用してCD-ROMとして添付することです。

qemu <other options> -hda mydisk.img -hdb myiso.img -boot d

これにより、必要に応じてディスクを変更できる仮想CD-ROMのシステムが起動します。

関連情報