尝试让我的系统在没有 initrd 的情况下运行

尝试让我的系统在没有 initrd 的情况下运行

我一直在尝试配置一个不需要 initrd 启动的内核。我还没有成功。我尝试启动的文件系统是 ext4,并且我在内核中编译了所有扩展文件系统(不是作为模块,而是在内核本身中)。我使用的是 2011 年初的 MacBook Pro,配有 2.5" 1TB WD 硬盘。我的命令行是root=PARTUUID=5c595262-cd6a-48f9-b199-6d72dae95b09 ro rootfstype=ext4 rootwait ,每次启动时,我都会出现内核恐慌,无法挂载根分区,并且root=我的命令行部分是无效的。 查看更新我启用了 CONFIG_DEVTMPFS ,可以在根文件系统之前挂载 /dev ,但自从我最初发布这个问题以来,我已经切换到使用 aPARTUUID而不是指定它的dev路径,所以我不再需要它,但它仍然启用。我启用了 CONFIG_EFI_STUB 选项并使用它来启动,并且我的命令行被硬编码到内核中。

内核恐慌试图启动我的内核(因为它不是当我尝试启动时内核出现恐慌(因为它没有看到我的硬盘)

我的 .config 文件

我需要更改哪些配置选项才能让系统在没有 initrd与 HDD 通信的情况下正常工作?我无法使用 initrd,因为我唯一的引导方法是直接加载内核 EFI 样式,因此内核本身无法加载 initrd(据我所知,需要引导加载程序来加载 initrd)我一个都用不了

更新:自从发布这个问题以来,我已经确定一切都配置良好,除了我的内核没有看到我的 2.5" 内部 1TB SATA 驱动器(这就是为什么我的内核最初说参数root无效,sda 不存在)那么我需要配置什么才能让我的内核与我的内部 SATA HDD 通信?(我应该将其作为一个单独的问题发布吗?)

lsmod使用稍微修改的配置运行的输出以支持初始 ram 磁盘

lspci在相同的稍微修改的配置和初始 RAM 磁盘上

答案1

我可以通过将我的 SATA 控制器 (libata) 编译到我的内核中来让它运行,该内核最初被编译为模块(这就是为什么它可以在初始 ram 磁盘上运行良好)。

相关内容