Ubuntu
新編譯的核心無法啟動(香草核心 3.12.14)
我下載、配置和安裝了從 kernel.org 下載的核心。第一次啟動這個新核心時,這個錯誤螢幕顯示它可能指向一個失去或錯誤提及的根設備。但是我沒有明確提到它,安裝腳本做到了。因此,如果這是錯誤,有人可以告訴如何解決嗎?
或者如果原因可能是其他原因,請告訴它可能是什麼?
注意:我在所有這些過程中都使用 VirtualBox。不希望我的筆記型電腦在此實驗中無法啟動。
筆記:
- Grub 條目很好,因為在該系統上執行的另一個核心也是如此,並且其他核心工作正常。
- DEVTMPS 只是創建一個警告,我認為程序員只關心錯誤,而不是警告,所以希望這也不是主要原因。
- TSC報錯,我調查了一下,可能是時鐘模式,和root設備沒什麼關係。
- UUID 再次不是問題,因為其他工作核心 grub 條目使用相同的 ID 並正確啟動。
找到了!!!這是我的硬碟控制器的驅動程序,在編譯前配置核心時沒有添加SATA AHCI。現在我添加,重新編譯和中提琴!新安裝的核心啟動。:)
您缺少訪問根文件系統所需的驅動程序之一。initramfs 中的程式碼正在尋找要掛載的塊設備並失敗,因此問題在於訪問該設備。您不會收到更明確的消息,因為 initramfs 中的程式碼只能看到它可以訪問的內容,問題是它無法訪問所需的根設備。
您可以
make localmodconfig
在核心源目錄中執行以配置核心,包括目前正在使用的所有驅動程序。更好的是,使用您的發行版的核心(不這樣做的唯一常見原因是如果您的硬體太新而無法支持),或者至少使用您的發行版的核心配置。由於您使用的是 Ubuntu,因此請注意,如果需要,您可以找到更新的預編譯核心。如果您真的想配置自己的核心,這裡有一個清單,說明您需要包括哪些內容才能啟動。請注意,我只列出了常見的要求,這不是一個詳盡的列表。
SCSI
,BLK_DEV_SD
(→scsi_mod
,sd_mod
) 適用於大多數硬碟和類似設備(具有 SCSI 或類似 SCSI 的命令集,包括 ATA);- 適合您的硬碟控制器的 、 、 或其他(例如,用於英特爾 PC 晶片組
ATA_xxx
上PATA_xxx
的AHCISATA_xxx
控制器);SCSI_xxx``ata_generic``libata``ahci
MD
,BLK_DEV_MD
以及正確的 RAID 模式(→md_mod
和例如raid1
)(如果適用);MD
,BLK_DEV_DM
(→md_mod
,dm_mod
) 用於 LVM;MD
,BLK_DEV_DM
,DM_CRYPT
以及 dm-crypt 所需的加密算法(→md_mod
,dm_mod
,dm_crypt
和例如aes_generic
,sha256_generic
以及cbc
更多);EXT4_FS
(→ext4
) 或其他文件系統。這些可以內置到核心中或編譯為模組。如果您編譯為模組,請不要忘記將模組包含在 initramfs 中。如果您使用Ubuntu 的核心建構基礎架構,那麼在您安裝核心包時,一切都會自動完成。