Command-Line
為什麼 hdparm -y 不會在管理文件的情況下降低 HDD 的轉速?(使用彈出選項)
使用 SATA 轉 USB 適配器讀取超過 10 年的 HDD。
使用
sudo hdparm -y /dev/sdj
時,硬碟不會關閉。但是當使用文件管理器中的彈出選項時,硬碟停止旋轉。
附帶事實:Microsoft Windows 中的彈出選項也會關閉 HDD。為什麼 hdparm 不讓 HDD 降速,而文件管理器卻降速?
該
hdparm
命令只做一件事,即發出一個特定的 ATA 命令,告訴驅動器轉換到待機狀態。這並不能阻止任何東西立即用新命令喚醒驅動器,但是根據驅動器本身,它甚至可能不會嘗試減速(智能的等待傳入命令的時間很短,並且只會減速如果沒有)。請注意,hdparm
手冊頁不保證這會降低驅動器的速度,它只是說它“通常”會這樣做。相比之下,文件管理器中的“彈出”選項通常做的遠不止這些。至少,它執行以下操作(儘管不一定按此確切順序):
- 它確保驅動器上沒有打開的文件。
- 它強制刷新從驅動器安裝的所有文件系統的所有文件系統緩衝區。
- 它從驅動器中解除安裝所有已安裝的文件系統。
- 它會刷新設備的所有塊層記憶體,並可能拆除在設備頂部執行的任何中間塊層(例如,如果正在使用 FDE,它將被乾淨地關閉)。
- 如果設備啟用了寫記憶體,它會刷新設備的寫記憶體。
- 如果可以通過程式方式將設備置於低功耗或最低功耗狀態,則它會這樣做。
- 如果設備具有可以通過軟體彈出的物理可移動介質(例如,CD 驅動器),它會發出相應的彈出命令。否則,它可能會將設備的塊級驅動程序與設備本身分離,從而有效地關閉與設備的通信。
前五個步驟在功能上確保使用者空間中的任何內容都不會向設備發出任何命令,將其從第六步觸發的低功耗狀態中喚醒,最後一步確保設備從系統中正確刪除,並被視為下一次連接時新連接的設備。