在 Linux 中,可在不需使用硬碟時,讓硬碟完全進入睡眠狀態,或是讓硬碟以更省電、更安靜的方式來運作。在目前的筆記型電腦中,您不用手動關閉硬碟,因為它們會在不用的時候自動進入省電操作模式。不過,如果您想最大化省電效果,可嘗試下列幾種方法。Powersaved 和 YaST 電源管理模組能控制大部份這方面的功能,詳細資訊請參閱 第 28.6 節「YaST電源管理模組」。
hdparm 應用程式能修改各種硬碟設定。-y
選項能立即將硬碟切換到待命模式。-Y
能讓它進入睡眠。hdparm -s x
則會讓硬碟閒置一段時期後關閉。如下所示取代 x
:0
會停用此機制,使得硬碟持續執行。1
到 240
的值將乘以 5 秒。241
到 251
的值則是以 30 分鐘為一個單位,依序從 30 分鐘的閒置到 11 倍的 330 分鐘的閒置。
可以使用 -B
選項來控制硬碟內部的省電選項。可從 0
到 255
中選取一個值,以最大化省電效果或最大化電力輸出。其結果視硬碟用途而定,難以評估。如果要減少硬碟噪音,請使用 -M
選項。從 128
到 254
中選取一個值,以決定要安靜或快速。
通常,要讓硬碟進入睡眠不是件容易的事。在 Linux 中,會有多個程序寫入硬碟中,因而重複喚醒硬碟。因此,有必要去瞭解 Linux 如何處理那些要寫入硬碟的資料 首先,會將所有資料在 RAM 中做緩衝處理。核心更新精靈 (kupdated) 可以監控緩衝區。當資料到達特定的時間限制,或當緩衝區已填滿至某一程度時,會將緩衝區的內容注入硬碟。緩衝區的大小則動態地由記憶體地的大小及系統負載來決定。根據預設,kupdated 會設成較短的間隔,以最大化資料的完整性。它會每 5 秒檢查一次緩衝區,並會在資料時間大於 30 秒或緩衝區的容量已達 30% 時通知 bdflush。接著,bdflush 精靈會將資料寫入硬碟。它也可以在不經由 kupdated 之下寫入硬碟,例如,在緩衝區已滿時。
![]() | 損害資料完整性 |
---|---|
變更核心更新精靈的設定有害資料的完整性。 |
除了這些程序之外,像是 ReiserFS 與 Ext3 等日誌檔案系統,不經由 bdflush 會將中繼資料寫入硬碟,也會使得硬碟無法停止運作。為了避免這類情形,正在開發適用於行動設備的核心延伸程式。請參閱 /usr/src/linux/Documentation/laptop-mode.txt
以取得詳細資訊。
另一個重要因素在於啟動程式的行為方式。例如,好的編輯器會定期為修改中的檔案,將隱藏備份檔寫入硬碟,因而喚醒硬碟。停用這類功能可能會傷害資料的完整性。
與此相關,postfix 郵件精靈會使用 POSTFIX_LAPTOP
變數。如果將此變數設為 yes
,postfix 會減少存取硬碟的頻率。不過,若增加 kupdated 的時間間隔,則此項設定將無關緊要。