客製化核心產生不可啟動的 initramfs - CentOS 7

客製化核心產生不可啟動的 initramfs - CentOS 7

make我一直在構建自己的核心 (4.19.37),並且在構建 ( ) 或安裝 ( make install_modules+ make install)期間沒有任何問題。一切似乎都很順利,直到我執行grub2-mkconfig -o /boot/grub2/grub.cfg。執行此命令時,grub 會vmlinuz-*在其中找到我現有的和新的核心/boot/以及它們相應的initramfs-*.img.但是,此時系統會無限期掛起(> 幾個小時)。 Ctrl+C似乎無法阻止它,我必須重新啟動。我已經研究了這個問題,我發現可能存在的問題是探測可啟動作業系統的刪除磁碟,我透過刪除它們並添加到GRUB_DISABLE_OS_PROBER=true每個/etc/default/grub磁碟來消除了這個問題這篇SE貼文。兩者都沒有幫助。

重新啟動後,我最終進入grub>命令列,大概是因為grub2-mkconfig從未完成並損壞了 grub 設定檔。在這裡,我可以毫無問題地載入新舊核心以及 initramfs,但是當我執行 boot 時,我遇到了核心恐慌:

end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)

結束核心恐慌 - 不同步:VFS:無法在未知區塊(1,0)上安裝根檔案系統

當然,我的假設是initramfs-4.19.37.img我的建造過程中出現了一些問題。作為一個實驗,我測試了是否可以加載新內核,但使用舊的 initramfs (4.19.10),事實上它確實啟動到emergency mode.然而,我不能用新的 initramfs 做相反的舊核心。所以我的新 initramfs 映像有些可疑。

變得更聰明,我的最後一個實驗是使用mount.它們都成功安裝,沒有錯誤,並且似乎具有相同的文件結構。我還比較了內核構建的新舊文件.config,差異很小。

其他一些註解/觀察:

  • 在上圖中,您可以看到List of all partions:沒有產生任何結果,所以我想知道檔案系統類型是否有問題?我的硬碟是xfs什麼檔案系統的initramfs?首席資訊長?
  • grub>命令列中,ls /生成我期望在/boot.它包含我的所有vmlinuz-*文件initramfs-*.img
  • 我的檔案系統是xfs
  • 我嘗試過各種其他核心版本,結果相同
  • 我已經成功建置和安裝了兩次,一次是現有核心(4.19.10),這是一個升級,第二次是使用具有low-latency搶佔模型的相同核心。我一生都無法弄清楚當時我做了什麼不同的事。

所以最後的問題是 -initramfs這些建構的形式有什麼問題?我還能做什麼來驗證它的完整性?.config在為檔案系統建立核心時,我應該進行任何更改嗎xfs


免責聲明:所以這實際上是一個延續這個問題,但我稍微簡化了問題。一些背景資訊可能是相關的。

相關內容