1. Linux下面
預防與檢測:使用smartmontools工具,用來控制SMART
檢測:
1)用badblocks工具檢測壞塊
#sudo badblock -s -v -c 64 /dev/sda 1000 10 (1000是結束塊,10是起始塊)
2)邏輯壞道(文件系統破壞)的話,使用fsck或者格式化
#fsck -a /dev/sdb (/dev/sda3)
3) 物理壞道(磁盤扇區不可逆轉的損壞)
方法一(塊級別修復,可以處理掛載中的系統,假定壞區不擴散):
1) 備份
#dd if=/dev/sda bs=4096 skip=badBlockId of=/tmp/id.dat count=1
2) 重寫測試
#badblocks -w -f /dev/sda3 badBlockId badBlockId
3)寫回 (如果塊已壞,會自動替換到磁盤保留區,對磁盤外系統透明)
#dd if=/tmp/badBlockId.dat of=dev/sda seek=id bs=4096 count=1
4)可用smartctl進行再次測試(可選)
注:使用dd備份整個磁盤的話,必須加上conv=noerror,sync參數。前者表示遇到讀錯誤繼續,後者表示用0填充錯誤的數據。否則,會造成數據錯位,從而破壞整個映像。建議使用dd_rescue。
方法二:
a) 備份硬盤數據
b) 刪除硬盤分區
c) 根據壞塊位置及大小,估算壞區空間(壞道會擴散,所以應該隔離多些空間)。
d) 重新分區,隔離壞區。
2. Windows下面