Debian

從 debian initramfs 獲取調試輸出

  • April 21, 2016

我正在嘗試通過串列控制台和託管公司的恢復控制台(基本上是 ubuntu liveCD)在軟體 raid0 和 LVM 根文件系統上為 debian lenny 配置伺服器。

在配置 raid0、建立 LVM、執行 debootstrap、安裝 grub 等之後,我重新啟動,伺服器在啟動時掛起,然後到達 init。根據核心日誌消息,raid 陣列已上線,可能還有 LVM(抱歉,目前沒有確切的日誌消息,但明天會有)。

initramfs 腳本本身絕對沒有錯誤輸出——只有核心日誌消息。我怎樣才能讓 initramfs 產生一些有用的調試輸出,這樣我至少可以確定它死在哪裡?

看來問題是在核心命令行上兩次指定了控制台:

.... console=ttyS0,57600 console=tty0

儘管核心消息發送到兩個控制台,但使用者空間消息大概只發送到後者。

核心消息被複製到核心命令行 (/proc/cmdline) 上指定的所有設備。但是,對於需要輸入的場景(例如,命令外殼),輸出僅發送到最後一個 console= 設備(當然,這是從那裡獲取輸入的)。

至於 initramfs 的東西,debug= 可以在核心命令行上設置(例如,通過 GrUB 等引導載入程序完成)以顯示在任何級別執行的命令:top、premount、init 等。我已經查看了 init 的 initramfs 版本,請注意:該值減去您在引導時看到的“init-”部分。我希望只使用“調試”來查看所有級別,但是唉,它不是那樣工作的。

順便說一句…並不是說它會有所不同,但對我來說這是 Ubuntu 10.04

這一切都與設備(/dev/console)的處理方式有關。當它打開時,它指的是最後提到的核心命令行 console= 。因此,雖然核心可能會向所有“提及”輸出消息,但使用者態通常只能訪問最後一個。

引用自:https://serverfault.com/questions/47875