我有一个非常旧的 Linux 版本(版本 2.4.0)。请不要问我为什么我有这么旧的版本,因为它是针对非常专业的旧硬件的。无论如何,问题是,在成功编译后尝试运行系统时,我收到此消息。
内核恐慌:我没有root,我想尖叫
问题似乎是我需要一个“根文件系统”,很可能是由初始 RAM 磁盘 (initrd) 生成技术生成的。我怎样才能解决这个问题?
答案1
如果您的内核包含启动所需的所有驱动程序和文件系统支持,则不需要 initrd。但是您需要使用root=
内核参数(例如 )告诉内核您的根文件系统在哪里root=/dev/sda1
。
答案2
您不必“创建”rootfs。如果内核在没有 initrd 的情况下启动,则必须使用访问根设备所需的驱动程序来编译 ist。使用哪个设备(默认情况下)是硬编码在内核中的。您可以使用内核命令行覆盖它,例如root=/dev/sda2
。
如果您使用 initrd,则 initrd 自动成为 rootfs,并且 initrd 进程稍后会 chroot 到真正的 rootfs(使用内核参数,可能还有一些默认值)。