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)
當然,我的假設是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
?
免責聲明:所以這實際上是一個延續這個問題,但我稍微簡化了問題。一些背景資訊可能是相關的。