Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 硬盤壞道檢測與修復全指南:badblocks、fsck、磁盤原理、分區屏蔽策略

編輯:Linux 教學

硬盤壞道是導致數據丟失、系統崩潰、性能驟降的隱形殺手。本文從**磁盤物理原理**出發,系統講解壞道前兆識別、badblocks 只讀/讀寫檢測、fsck 邏輯壞道修復、物理壞道分區屏蔽策略、testdisk 分區表搶救、數據備份鐵律,助你建立完整的磁盤健康防禦體系。

一、磁盤物理原理與壞道成因

  • 磁頭懸浮於高速旋轉盤片表面(飛行高度 ~ 納米級),讀寫依賴氣動承載效應。
  • 震動、斷電、電壓不穩、灰塵、老化均可能導致磁頭觸碰盤面 → **物理劃傷(物理壞道)**。
  • 文件系統元數據錯誤、非正常關機導致邏輯不一致 → **邏輯壞道**(可修復)。
  • 0 磁道損壞屬於嚴重物理損壞,涉及 MBR/分區表/引導扇區。

二、壞道前兆識別(出現任一立即備份)

  • 讀取文件/運行程序反復讀盤報錯、極慢、提示文件損壞
  • iowait 無故升高持續不降
  • 硬盤聲音異常:正常嘩嘩聲 → 咔咔聲/尖銳摩擦聲
  • 啟動報 I/O error、進入急救模式
  • mkfs 格式化卡住、報錯失敗
  • 每次開機自動執行 fsck 掃描
  • fdisk 分區操作進度條反復跳動

三、檢測工具與方法

1. badblocks 僅讀掃描(安全、耗時)

sudo badblocks -s -v /dev/sdX
# -s 顯示進度 -v 詳輸出
# 可中斷,續掃:badblocks -s -v /dev/sdX <最後壞塊> <起始塊>

輸出 Pass completed, 0 bad blocks found 表示無壞道。

2. badblocks 讀寫掃描(破壞性、更徹底)

sudo badblocks -w -s -v /dev/sdX
# -w 寫入模式(四次模式 0xaa/0x55/0xff/0x00),**會銷毀數據**,僅限新盤/已備份盤

3. 指定塊大小與測試次數(加速定位可疑區)

# 默認 4K 塊,16 次測試
badblocks -b 4096 -c 16 /dev/sdX -o badblocks.list

# 針對可疑區單次快速掃描
badblocks -b 4096 -c 1 /dev/sdX -o badblocks_suspect.list 63000 51000
# 從 51000 塊掃到 63000 塊

多次不同參數掃描,取並集生成 badblocks_final.list。

4. 格式化時同步檢測並標記

mkfs.ext4 -c /dev/sdX1   # 僅讀檢測並標記壞塊
mkfs.ext4 -c -c /dev/sdX1 # 讀寫檢測(極慢)

四、修復與屏蔽策略

1. 邏輯壞道修復

fsck -a /dev/sdX1   # 自動修復
fsck -y /dev/sdX1   # 全部 yes

2. 物理壞道屏蔽(分區隔離法)

  1. 備份所有重要數據(核心鐵律)
  2. 刪除所有分區
  3. 根據壞塊範圍估算壞道區間(如 20-30GB)
  4. 創建三個分區:0-15GB | 15-35GB(含壞道) | 35-100GB
  5. **中間分區不掛載、不格式化、不使用**,作為屏蔽帶
  6. 預留裕量(壞道有擴散性),屏蔽帶寬度建議 > 壞道範圍 2 倍

3. 0 磁道損壞搶救(高風險)

使用 dd 跳過 0 磁道、利用 1 磁道重建 MBR、重新分區。成功率低,僅作數據搶救最後手段。

4. 分區表損壞修復

sudo apt-get install -y testdisk
sudo testdisk
# 交互式:選擇磁盤 → 分區表類型 → Analyse → Quick Search → Write

TestDisk 能恢復誤刪分區、重建 MBR/GPT,成功率極高。

五、數據備份鐵律

  1. 3-2-1 原則:3 份副本、2 種介質、1 份異地。
  2. 重要數據**每日增量、每周全量**。
  3. RAID ≠ 備份(控制器故障、誤刪、勒索病毒均會同步破壞)。
  4. 壞道出現即意味著磁盤進入「倒計時」,**首要任務是備份,其次才是修復**。

六、總結建議

  • 定期 smartctl -a /dev/sdX 監控 SMART 指標(Reallocated_Sector_Ct、Seek_Error_Rate)。
  • 服務器關鍵數據盤**必須 RAID 1/5/6/10 + 熱備盤 + 離線備份**。
  • 壞道一旦出現,**物理壞道不可逆、必然擴散**,規劃更換才是根治。
  • 本文命令均在**離線/維護窗口、已備份**前提下演示,切勿在線上業務盤直接操作。
Copyright © Windows教程網 All Rights Reserved