Opensuse

來自 initrd 的 Shell 提示符

  • April 6, 2016

我遇到了無法啟動的 Linux 系統的問題。引導載入程序愉快地載入核心和 initrd,但隨後 initrd 腳本抱怨並抱怨它找不到根設備。

如何強制initrd 腳本給我一個 shell 提示,以便我可以真正調查發生了什麼?

我嘗試解壓 initrd 並使/initshell 腳本啟動bash -i。但這根本不起作用。我看到 Bash 提示出現,但鍵盤不起作用。(Bash 抱怨“無法設置進度組”和“不適合設備的 ioctl”。)

以防萬一:OpenSUSE 13.1,它使用舊mkinitrd系統。(顯然較新的版本使用 Dracut。)據我所知,/init這是一個執行所有內容的小腳本/boot(一系列編號的 Bash 腳本)。

  • 有一個名為 的腳本/boot/91-shell.sh,其中包含一條註釋,表明傳遞shell=1核心命令行會給我一個 shell 提示;它不是。
  • 還有一條評論/boot-02-start.sh聲稱傳遞linuxrc=trace會給我調試輸出。可以,但沒用;我所看到的只是滾動過去的腳本末尾的無休止的設備輪詢循環,消除了所有先前的輸出。

我真的,真的需要進去*,親眼看看到底發生了什麼,才能知道問題出在哪裡。(公平地說,我試圖*讓系統以一種稍微奇怪的方式啟動,所以這裡的問題並不意外。)

這是 Apple 特有的問題。如果我在必須玩的 MacBook Air 上啟動幾乎任何 Linux 系統,鍵盤就會拒絕工作。在任何基於 PC 的系統上,這都能完美執行。所以與 Linux 沒有啟動正確的 init 二進製文件無關;這是某種硬體驅動程序問題。

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