Systemd
如何在 systemd-analyze 中分析韌體時間?
在我的電腦上執行
systemd-analyze
給了我Startup finished in 15.862s (firmware) + 3.356s (loader) + 1.391s (kernel) + 5.199s (userspace) = 25.810s
. 韌體的時間比我預期的要長,因為它在我的另一台電腦上要短得多,而且我的系統 BIOS 界面中已經啟用了快速啟動。我將如何診斷韌體的哪一部分使它花費了這麼多時間?我正在尋找類似
systemd-analyze blame
(用於使用者空間)或訪問帶時間戳的韌體日誌的能力。
我希望僅在嚴重的伺服器級硬體上具有單個韌體事件級別的時間戳引導日誌。但在這些方面,自測往往涉及更多,可能需要幾分鐘。對於消費級硬體,以我的經驗,這種級別的韌體診斷幾乎是聞所未聞的。
關於診斷花費時間的一些建議,按照所需的工作量/資源的增加順序:
- 在啟動過程的韌體階段執行時查看顯示屏。如果系統只顯示製造商的標誌,按
Esc
可以將其切換到資訊更豐富的顯示。或者您可能需要在 BIOS 設置中禁用啟動徽標。您可能會在螢幕上看到一些消息,指的是韌體啟動過程的不同部分。例如,網卡、硬體 RAID 控制器和類似設備可能會顯示它們自己的引導消息,並可能在它們自己的初始化中花費大量時間。在大多數情況下,此初始化只是為了啟用從該設備啟動的可能性。如果您知道不需要從網路或額外的磁碟/RAID 控制器啟動,請尋找禁用它們的方法。可能有 BIOS 設置,或者這些組件可能有自己的迷你 BIOS 設置螢幕,並在啟動時顯示用於訪問它們的組合鍵。或者您可能需要一個特定的配置實用程序來“- 如果您有一個高檔台式機,它的主機板可能有一個用於 POST 程式碼的兩位數 LED 顯示屏。如果沒有,POST 程式碼可以由小型診斷卡(舊系統)或 USB 診斷設備(具有“USB 調試埠”功能的現代系統)顯示。您還需要獲取適用於您的系統的 POST 程式碼列表:查看系統/主機板手冊或系統/主機板/BIOS 供應商的支持網頁。然後就是在啟動過程中監控顯示的程式碼,並檢查顯示時間最長的程式碼的實際含義:是否有任何相關的 BIOS 設置可能會縮短或完全跳過該特定階段?
- 如果您可以獲得系統 BIOS 的 OEM 定制實用程序,您也許可以更改一些普通人無法使用的設置。這需要了解您在做什麼,並且非常適合 BIOS 改裝領域。
- 如果您的硬體與coreboot兼容,您可能會用 Coreboot 韌體完全替換您的普通 BIOS,它可以更可定制並且通常啟動速度更快。這是一個很大且並非總是容易逆轉的步驟,如果你弄錯了,它會冒著使硬體變磚的風險:在決定這樣做之前進行仔細的研究。