質問
動作中のchroot環境(inittab、fstab、init.d / rcS設定)、カーネル、およびgrub2がインストールされています。システムを動作させるには何が必要ですか?
背景/詳細
教育目的で、私は起動してシェルを実行できる小さなLinux環境を構築し始めました。
Virtualboxを使用して、仮想マシンを2つのハードドライブ(各ハードドライブには1つのパーティションのみ)に接続します。 1つ目はDebianをインストールし、2つ目はBusyboxを使って小さなchroot環境を構築しました。この記事。私はまた、記事に示されているように、、inittab
およびfstab
他のほとんどのファイルシステムに関連する項目を設定しましたinit.d/rcS
。ただし、2番目のページでは起動可能なフロッピーを作成していないため、2番目のページに関連した操作を実行していgenfromfs
ませんsyslinux
。
chrootされたシステムを起動する方法を見つけるために、次のものが見つかりました。この投稿、私は逃げたgrub-install --root-directory=/mnt /dev/sdb
。最後に完了したというエラーはありません。
その後、今回は、2番目のハードドライブを唯一のハードドライブとして使用して、新しい仮想マシンを作成して起動しました。それは私にgrubプロンプトを与えたので、私はもっとグーグルしました、その後、入力しました。
set root=(hd0,msdos1)
linux /vmlinuz
boot
私は持っていますinitrd/initramfsを理解するのはオプションです。だから今は無視することにしました。私はbzImageをmake defconfig
使ってLinuxカーネルをビルドし、ビルドmake
後にx86ディレクトリにコピーしました。
しかし、すぐに画面が止まる現象が発生しました。
[ 0.74.. ] md: autorun ...
[ 0.74.. ] md: ... autorun DONE.
[ 0.74.. ] Root-NFS: no NFS server address
[ 0.74.. ] VFS: Unable to mount root fs via NFS, trying floppy.
[ 0.74.. ] VFS: Cannot open root device "(null)" or unknown-block(2,0)
[ 0.74.. ] Please append a correct "root=" boot option; here are the avaialbe partitions:
[ 0.74.. ] 0800 ... sda driver: sd
[ 0.74.. ] 0801 ... sda1 ...
[ 0.74.. ] 0b00 .. sr0 driver: sr ..
[ 0.74.. ] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
[ 0.74.. ] Pid: 1, comm: swapper/0 Not tainted 3.2.6 #1
[ 0.75.. ] Call Trae:
[ 0.75.. ] [<c16..>] panic+0x57/0x157
[ 0.75.. ] [<c18..>] mount_block_root+0x125/0x1a7
[ 0.75.. ] [<c10..>] ? sys_mknod+0x27/0x30
.. a few more lines of call trace ...
手動で入力する必要があるため、いくつかの数字と最後の数行がありません。必要に応じてお知らせください。投稿いたします。
ベストアンサー1
root=
grubでこのパラメータを指定する必要があります。カーネルが誤ったルートデバイスを探しているため、「不明なブロック」エラーが発生します。ハードドライブが正しく検出されていることがわかるので、 grub では次の行を使用する必要があります。
linux /vmlinux root=/dev/sda1