Linux

試圖讓我的系統在沒有 initrd 的情況下執行

  • July 2, 2016

我一直在嘗試配置一個不需要 initrd 啟動的核心。我沒有成功。我試圖從中引導的文件系統是 ext4,並且我在我的核心中編譯了所有擴展文件系統(不是作為模組,在核心本身中)。我正在使用帶有 2.5" 1TB WD 硬碟的 2011 年初 MacBook Pro。我的命令行是root=PARTUUID=5c595262-cd6a-48f9-b199-6d72dae95b09 ro rootfstype=ext4 rootwait ,每次啟動時,我都會感到核心恐慌,因為無法掛載根分區,root=而我的命令行部分是無效。 請參閱更新我啟用了 CONFIG_DEVTMPFS 以在根文件系統之前掛載 /dev,但由於我最初發布了這個問題,我已經切換到使用 aPARTUUID而不是指定它dev路徑,所以我不再需要它了,但它仍然處於啟用狀態。我啟用了 CONFIG_EFI_STUB 選項並使用它來啟動,我的命令行被硬編碼到核心中。

核心恐慌試圖啟動我的核心(因為它不是 se當我嘗試啟動時核心恐慌(因為它沒有看到我的硬碟)

我的 .config 文件

我需要更改哪些配置選項才能讓我的系統在沒有 initrd與我的 HDD 通信的情況下正常工作?我不能使用 initrd,因為我唯一的引導方法是直接載入我的核心 EFI 樣式,因此由於核心本身無法載入 initrd(據我所知,載入 initrd 需要引導載入程序)我不能用一個。

**更新:**自從發布這個問題以來,我已經確定一切配置都很好,除了我的核心沒有看到我的 2.5" 內部 1TB SATA 驅動器(這就是為什麼我的核心最初說root參數無效,sda 沒有存在)。那麼我需要配置什麼來讓我的核心與我的內部 SATA 硬碟通信?(我應該把它作為一個單獨的問題發布嗎?)

lsmod使用稍微修改的配置執行以支持初始 ram 磁碟的輸出

lspci在相同的稍作修改的配置和初始 ram 磁碟上

我能夠通過將我的 SATA 控制器 (libata) 編譯到我的核心中來使其執行,該核心最初被編譯為一個模組(這就是為什麼它可以在初始 ram 磁碟上執行良好的原因)。

引用自:https://unix.stackexchange.com/questions/292502