當你開啟系統電源時,你會等待製造商的徽標出現,螢幕上可能會顯示一些訊息(以非安全模式啟動),然後是 Grub 螢幕、作業系統載入螢幕以及最後的登入屏。
你檢查過這花費了多長時間麼?也許沒有。除非你真的需要知道,否則你不會在意開機時間。
但是如果你很想知道你的 Linux 系統需要很長時間才能啟動完成呢?使用秒錶是一種方法,但在 Linux 中,你有一種更好、更輕鬆地了解系統啟動時間的方法。
無論你是否喜歡,systemd 執行在大多數流行的 Linux 發行版中。systemd 有許多管理 Linux 系統的工具。其中一個就是 systemd-analyze
。
systemd-analyze
命令為你提供最近一次啟動時執行的服務數量以及消耗時間的詳細資訊。
如果在終端中執行以下命令:
systemd-analyze
你將獲得總啟動時間以及韌體、引導載入程式、核心和使用者空間所消耗的時間:
Startup finished in 7.275s (firmware) + 13.136s (loader) + 2.803s (kernel) + 12.488s (userspace) = 35.704sgraphical.target reached after 12.408s in userspace
正如你在上面的輸出中所看到的,我的系統花了大約 35 秒才進入可以輸入密碼的頁面。我正在使用戴爾 XPS Ubuntu。它使用 SSD 儲存,儘管如此,它還需要很長時間才能啟動。
不是那麼令人印象深刻,是嗎?為什麼不共用你們系統的啟動時間?我們來比較吧。
你可以使用以下命令將啟動時間進一步細分為每個單元:
systemd-analyze blame
這將生成大量輸出,所有服務按所用時間的降序列出。
7.347s plymouth-quit-wait.service6.198s NetworkManager-wait-online.service3.602s plymouth-start.service3.271s plymouth-read-write.service2.120s apparmor.service1.503s [email protected]1.213s motd-news.service 908ms snapd.service 861ms keyboard-setup.service 739ms fwupd.service 702ms bolt.service 672ms dev-nvme0n1p3.device 608ms [email protected]:intel_backlight.service 539ms snap-core-7270.mount 504ms snap-midori-451.mount 463ms snap-screencloud-1.mount 446ms snapd.seeded.service 440ms snap-gtk\x2dcommon\x2dthemes-1313.mount 420ms snap-core18-1066.mount 416ms snap-scrcpy-133.mount 412ms snap-gnome\x2dcharacters-296.mount
如果檢視此輸出,你可以看到網路管理器和 plymouth 都消耗了大量的啟動時間。
Plymouth 負責你在 Ubuntu 和其他發行版中在登入頁面出現之前的引導頁面。網路管理器負責網際網路連線,可以關閉它來加快啟動時間。不要擔心,在你登入後,你可以正常使用 wifi。
sudo systemctl disable NetworkManager-wait-online.service
如果要還原更改,可以使用以下命令:
sudo systemctl enable NetworkManager-wait-online.service
請不要在不知道用途的情況下自行禁用各種服務。這可能會產生危險的後果。
現在你知道了如何檢查 Linux 系統的啟動時間,為什麼不在評論欄分享你的系統的啟動時間?