最少启动 Linux

最少启动 Linux

我正在尝试只启动 linux 本身。主要是为了学习体验。我有一个小硬盘只有一个 ext4 分区看起来像这样:

/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 无论如何都不包含加载模块的工具,因此我建议您构建一个非模块化内核。

相关内容