我想在 Ubuntu 下建立一個自訂核心。我配置並建立了新核心。新核心沒有 initrd 並且來自 vanilla 來源。我僅使用它所需的驅動程式來建立這個新的整體核心。
當我嘗試啟動新核心時,我陷入了這個mknod
步驟。它嘗試mknod
新設備,例如/dev/sda1
/dev/vca4
.它失敗是因為根分割區以只讀方式掛載。
我認為問題是我丟失了一些關於我的硬體的東西。如果我使用預設的 Ubuntu 核心啟動,則不會遇到任何問題。誰能幫助我理解為什麼會發生這種事?
答案1
啟動時,根檔案系統幾乎總是以唯讀方式安裝,以便您可以fsck
在其上運行。完成後,通常會使用以下命令重新掛載根檔案系統以進行讀寫:
mount / -o remount,rw
不過,由於您使用的是 Ubuntu,編譯核心應該比這簡單得多。如果您還沒有使用它,我建議您使用它kernel-package
來編譯核心。只需取得軟體包和核心原始碼,解壓縮,然後說出類似的內容
make-kpkg -j3 --initrd binary
然後,這將建立.deb
您可以按照通常方式安裝的軟體包(dpkg -i SOME-FILE.deb
)
答案2
您應該有一個devtmpfs
或tmpfs
安裝在/dev
並由其管理udev
;因此,無論 . 的狀態如何,該目錄都是可寫入的/
。在 Ubuntu 上,這通常由 initramfs 設定;你用你的核心構建並加載了一個嗎?