
私は注意を払ってきました。最初から最小限のLinuxシステムを構築小さなインストールスペース(10MB以下)でLinuxを構築します。
最後のポイントまでエラーがないと確信しています。実際にコマンドを使用して画像をテストしています。qemu-system-i386 -L . -hda minux.img
#
実際にチュートリアルで示すようなプロンプトで起動するのではなく、Grub Rescueプロンプトを見ました。起動しようとしてkernel /boot/kernel_name
thenを使用しましたが、boot
最終的に次のように失敗しました。
私のものはgrub.conf
次のとおりです。チュートリアルと同じです。
default 0
timeout 30
title Minux
root (hd0,0)
kernel /boot/vmlinux-2.6.21-1 root=/dev/hda1 rw
これまで私が見つけた唯一の違いは、で始まるfdisk
セクターが2048であるということです。これはfdiskを使用して設定できる最小のセクタであるため、オフセットが大きくなります。もう1つの違いは、x86_64-pc grubを使用していて、いくつかのbusyboxライブラリの名前が異なるように指定されていることです。しかし、これが起動を妨げてはいけません。
私のLinuxが動作するようにこのプログラムをどのように修正する必要がありますか?それとも、Linuxディストリビューションを10MB未満にするより良い方法はありますか?
答え1
小さなシステムを作ることについての2番目の質問に答えてみましょう。私たちはx86に基づいて構築しているので、私たちの意図は組み込みチップに焼かれるのではなく、フラッシュドライブからシステムを起動することです。
ディスクイメージを削除してcpio initramfsを試してください。それでは、このように始めましょう。
qemu-system-i386 -kernel vmlinuz -initrd root.cpio.gz
私はより柔軟性があり、ディスクの場所を台無しにする必要がないので、これが好きです。
私もお勧めしますgrub4dosブートローダー。名前に「dos」があるにもかかわらず、Linux上でLinuxカーネルをインストールして起動できます。インストールは簡単です。 mbrを作成し、213kファイルすべてのパーティション。 grub4dosは多くのファイルシステムを認識します。
また、あなたの設定にはgrubが正しく設定されていないようです。救うコンソールにはkernel /boot/kernel_name
「root =」と入力しても表示されますboot
。
マイコンピュータでは、qemuゲストカーネルはディスクイメージを「/dev/hda」ではなく「/dev/sda」として認識します。