
私はLinux自体を起動しようとしています。主に学習経験のため。小さなハードドライブがあります。ext4パーティションは1つしかありません次のようになります。
/bin/bash
/dev/console
/boot/vmlinuz
/boot/grub/grub.cfg
/boot/grub/i386-pc/*.mod
bash
バージョン3.0は静的にリンクされており、vmlinuz
バージョン3.16.2、grub
バージョン2.00rc1です。grub.cfg
次のようになります。
insmod linux
insmod search
insmod ext2
insmod part_msdos
set timeout=5
menuentry 'Linux' {
set the_root_uuid=a0225737-71c9-4d60-81e2-275dc078c3c1
search --fs-uuid $the_root_uuid --set=root
linux /boot/vmlinuz root=$root ro init=/bin/bash
}
開始すると、次のようになります。
kernel panic: VFS could not open device root (hd0,msdos1), or unknown block(0,0) error -6
私は何を見逃していますか?
答え1
カーネルには、ルートファイルシステム(ahci sataモジュールやext4モジュールなど)にアクセスするために必要なドライバは含まれていません。
適切なモジュールをロードするinitrd / initramfsを提供するか(モジュールではなく)必要なドライバを静的に含むカーネルをコンパイルする必要があります。
とにかく、rootfsにはモジュールをロードするためのツールが含まれていないので、非モジュラーカーネルを構築することをお勧めします。