為什麼在 grub 中使用「設定檔」來優化啟動時間對我不起作用?如何恢復效果?

為什麼在 grub 中使用「設定檔」來優化啟動時間對我不起作用?如何恢復效果?

在此輸入影像描述我想加快啟動時間,我遵循了提示到:

  1. 編輯“/etc/default/grub”並將該行更改GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"GRUB_CMDLINE_LINUX_DEFAULT="quiet splash profile";
  2. 運轉sudo update-grub2並啟動機器;
  3. 再次編輯 grub 設定檔並profile從中刪除GRUB_CMDLINE_LINUX_DEFAULT;
  4. 再次更新 grub 並重新啟動。

但結果是根據dmesg輸出增加了 10 秒的啟動時間!

什麼地方出錯?為什麼這個技巧對我不起作用?如何恢復此設定?這個設定檔在 Xubuntu 中保存在哪裡?我可以毫無問題地刪除這個新的設定檔嗎?

答案1

一開始的一句話:儘管您對 Ubuntu 13.10 感到滿意,但我仍然強烈建議升級到 14.04 LTS。 Saucy 的生命週期已經結束一年多了,這意味著從那時起您沒有收到任何更新 - 從安全角度來看,這不太好。此外,從技術上講,EOL 版本在這裡是題外話。


核心啟動參數profile是啟動時預讀分析的觸發器。如果設定了readahead守護程序,它將監視引導過程,尋找引導期間載入的檔案並寫入適當的清單檔案。該檔案將在下次啟動時使用,並且應該透過減少硬碟尋道來縮短啟動時間。

多年來,有一些這樣的預讀機制出現和消失。這是我對它們的看法,我希望這或多或少是準確的。

原始readahead(已棄用)

Ubuntu 檔案中找到的最後一個版本可以追溯到 2005 年。我不知道它是什麼時候被超級種子化的,但肯定是在 10.04 之前的某個時間。

  • 設定檔儲存在/etc/readahead/boot.
  • boot透過使用內核參數移動和引導來觸發分析profile,儘管這個錯誤報告表明它是一個無文件且僅限開發人員的選項。

readahead來自軟呢帽

最初來自 Fedora,並且仍然用於不使用systemd.

  • Ubuntu 軟體套件是readahead-fedora.可透過儲存庫取得。
  • 取代原來的readahead
  • 設定檔儲存在/etc/readahead.d/custom.{early,later}
  • 由下列任一事件觸發的分析
    • touch /readahead_collect或者
    • 在啟動時設定核心參數profile
  • 至少每月自動分析一次
  • Ubuntu 上的超級種子由ureadahead

原始readaheadreadahead-fedora創建了啟動時所需的文件列表。此列表將在啟動時按照最小化硬碟尋道的順序讀取。

ureadahead

我認為這是 Ubuntu 10.04 以來的預設值。

  • 預裝
  • 實際上創建了一個頁面文件,該文件在啟動時加載到記憶體中。
  • 儲存在/var/lib/ureadahead/pack.若要在下次啟動時強制進行分析,請刪除此檔案。
  • 安裝dpkg觸發器,每當安裝與init.

烏班圖 >= 15.04

systemd是vivid以來預設的init系統。它帶來了自己的預讀機制。ureadahead不適用於systemd.但 Evensystemd-readahead現在已不再維​​護和棄用,因為顯然現在每個人都擁有 SSD...ureadahead在使用upstart.


如預期的那樣,您的系統已ureadahead安裝,但不含參數profile。為什麼在設定設定檔後您會遇到較長的啟動時間,這是令人無法理解的。如果您也應用了所遵循的操作方法中的第二個技巧 ( CONCURRENCY=...),則這可能是罪魁禍首。upstart應該自己解決這個問題。

如前所述,要強制ureadahead重新分析,請刪除該pack文件

sudo rm /var/lib/ureadahead/pack

.pack以及該目錄中可能的任何其他內容。請務必在啟動後快速登錄,因為ureadahead即使啟動完成後也會記錄一些資訊。這樣它也有望包含 unity shell 或您正在使用的任何東西。

如果您想真正了解什麼需要多長時間才能開始,請查看引導圖。它產生啟動過程的圖形表示。

相關內容