硬盤主動防護系統
硬盤主動防護系統(HDAPS)可以在硬盤受到突然衝擊時(比如你的筆記本掉落或撞擊到桌子上時)保護硬盤,其工作原理是在發生意外衝擊時停放磁頭,這樣磁頭就不會撞擊到盤片上,也許這會避免一個災難性的硬盤損傷。參閱wikipedia:Active hard-drive protection。
震動檢測[編輯 | 編輯原始碼]
硬件需要支持震動檢測。一般來説,實現此功能的是筆記本主板上的一個加速度計。除了硬件,還需要有驅動程序將硬件檢測到的內容吿訴作業系統。這個部分描述實現此功能的驅動程序。
tp_smapi[編輯 | 編輯原始碼]
tp_smapi 是一套適用於ThinkPad的驅動程序集。如果你有一台支持此功能的ThinkPad,就算你沒打算使用HDAPS也強烈推薦使用tp_smapi。除了很多有用的功能外,tp_smapi還會把加速計輸出為操縱杆設備/dev/input/js#
。
安裝tp_smapi包.重啟後會啟動大部分的驅動,設備信息位於/sys/devices/platform/smapi
.
內核有自己的 HDAPS 驅動,tp_smapi包 軟件包會將hdaps.ko
安裝到 /lib/modules/$(uname -r)/updates,替換掉內置模塊。這樣只需在 MODULES
中加入hdaps
模塊就好了。
模塊參數invert[編輯 | 編輯原始碼]
某些ThinkPads需要添加invert模塊參數來正確處理X和Y旋轉軸. 如果需要的話,在/etc/modprobe.d/modprobe.conf
中添加:
options hdaps invert=1
例如 ThinkPad T410,可以添加invert=1
.invert可以取如下值:
- invert=1 反轉X和Y軸;
- invert=2 反轉X軸 (如果已經倒置兩軸則此參數值無效)
- invert=4 交換X和Y (在反轉之前)
參數值可以相加. 例如, invert=5 交換兩軸後反轉兩軸. 最大的參數值是7.如果你不清楚該怎麼辦的話,可以使用hdaps-gl或者其它圖形界面工具 (見下). 另外, 你可以從這張表裡的"HDAPS axis orientation"項中得出你需要的參數值.
除了修改後重新載入 hdaps
模塊之外, 還可以通過直接寫 /sys/devices/platform/hdaps/invert
來修改 invert
值。
保護[編輯 | 編輯原始碼]
現在,你的硬件已經能將受到衝擊的信息報吿給作業系統,我們需要讓作業系統在收到此信息後保護硬盤.這個部分描述的是在收到信息後保護硬盤的軟件.
hdapsd[編輯 | 編輯原始碼]
hdapsd可以接收HDAPS傳感器的信息並判斷是否受到衝擊,如果是的話通知內核停放磁頭.
設置hdaps時你應該檢查硬盤的SMART信息中的"Load cycle count". 如果檢測太過於敏感的話,磁頭將會不停地進行停放操作,load cycle count將會上升很快.
安裝hdapsd包後,通過 hdapsd@device.service
來啟動 hdapsd 守護進程,但是不需要設置為開機啟動。
軟件包會安裝 udev 規則, udev 會對每個機械磁盤啟用 hdapsd 實例。
更多信息請參考 hdapsd github 頁面。
你可以在hdaps的unit file裡調整參數(詳見systemd的文章). 比如以下面的文件覆蓋默認的service文件將調整hdaps的靈敏度與記錄:
/etc/systemd/system/hdapsd.service.d/sensitivity.conf
[Service] ExecStart= ExecStart=/usr/bin/hdapsd --sensitivity=40 -blp
然後重載配置.
圖形界面工具[編輯 | 編輯原始碼]
這裏有一些顯示hdapsd狀態的軟件,通過它們你很容易知道發生了些什麼.你可以選擇不安裝它們.
xfce4-hdaps — Xfce4面板小程序.
HDAPSicon — (之前的thinkhdaps)是一個獨立的GTK小程序.運行時會在通知區顯示圖標.
hdaps-gl — 一個簡單的OpenGL程序 ,它以3D動畫的形式顯示您的ThinkPad的狀態,和聯想的Windows下的軟件很像.