Linux 磁盤健康檢查指南:初學者入門
一、為何要檢查磁盤健康?
就像汽車需要定期保養一樣,硬盤(HDD)或固態硬盤(SSD)也會隨著時間推移而損耗。可能出現的問題包括:
- 機械故障:移動部件損壞
- 壞扇區:磁盤部分區域無法讀取
- 磨損老化:SSD有有限的寫入壽命
- 溫度問題:高溫損壞組件
磁盤故障的常見跡象:
- 性能變慢(文件加載時間變長)
- 異常噪音(HDD發出咔噠聲或摩擦聲)
- 頻繁崩潰或報錯
- 文件丟失或損壞
定期監控磁盤健康的好處:
- 在故障前備份數據,避免數據丟失
- 及時發現問題,延長磁盤壽命
- 避免突然崩潰影響工作
二、什么是SMART數據?
SMART 是“自我監測、分析和報告技術”(Self-Monitoring, Analysis and Reporting Technology)的縮寫,內置于大多數現代硬盤和SSD中,相當于磁盤的“健康體檢報告”。
SMART 監控的關鍵指標包括:
- 磁盤通電次數
- 當前溫度
- 已發現的壞扇區數量
- 寫入數據量(針對SSD)
三、必備的Linux磁盤掃描工具
- smartctl:來自smartmontools軟件包的命令行工具,用于讀取磁盤SMART數據
- badblocks:掃描磁盤物理壞扇區
- fsck:檢查并修復文件系統錯誤
- GNOME Disks:圖形化工具,用于查看磁盤信息和運行測試
四、在Linux中安裝必要的磁盤掃描工具
大多數Linux系統已預裝smartctl,若未安裝:
- Arch Linux:sudo pacman -S smartmontools
- Debian/Ubuntu/Linux Mint:
sudo apt update
sudo apt install smartmontools
- Fedora/RHEL/AlmaLinux/Rocky Linux:sudo dnf install smartmontools
圖形界面工具安裝(GNOME Disks):sudo apt install gnome-disk-utility
五、查找磁盤名稱
使用lsblk命令查看磁盤信息:
lsblk
典型輸出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 931.5G 0 part /media/ostechnix/WD_SSD
└─sda2 8:2 0 32M 0 part
nvme0n1 259:0 0 465.8G 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot/efi
├─nvme0n1p2 259:2 0 464.3G 0 part /
└─nvme0n1p3 259:3 0 976M 0 part [SWAP]
主要磁盤通常為sda、sdb等,NVMe SSD顯示為nvme0n1。
六、執行基礎磁盤健康檢查
使用smartctl進行快速健康檢查:
sudo smartctl -H /dev/sdb
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.15.0-136-generic] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
將sdb替換為實際磁盤名稱。若輸出顯示“PASSED”,表示磁盤狀態良好;若顯示“FAILED”,則存在問題。
七、獲取詳細的磁盤健康信息
使用-a參數獲取完整信息:
sudo smartctl -a /dev/sdb
示例輸出片段:
=== START OF INFORMATION SECTION ===
Model Family: WD Blue / Red / Green SSDs
Device Model: WDC WDS100T2G0A-00JH30
User Capacity: 1,000,204,886,016 bytes [1.00 TB]
Sector Size: 512 bytes logical/physical
Rotation Rate: Solid State Device
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
八、解讀SMART數據
1. 整體健康狀態
- PASSED:磁盤未檢測到關鍵問題,運行正常
- FAILED:需立即關注,可能存在故障風險
2. 關鍵SMART屬性解析
ID | 屬性名稱 | 含義 | 示例值分析 |
5 | Reallocated_Sector_Ct | 重新分配的扇區數 | 0 表示無壞扇區需要重映射 |
9 | Power_On_Hours | 通電時間 | 6425小時 (約267天),屬中等使用時長 |
12 | Power_Cycle_Count | 通電次數 | 1220次 ,消費級硬盤正常范圍 |
170 | Grown_Bad_Blocks | 新增壞塊數 | 0 表示NAND閃存穩定 |
194 | Temperature_Celsius | 溫度 | 45°C (正常范圍,SSD最高耐受約70°C) |
241 | Host_Writes_GiB | 主機寫入量 | 3794 GiB (1TB SSD的低寫入量) |
3. 自我測試日志
執行短測試:sudo smartctl -t short /dev/sda查看結果:sudo smartctl -l selftest /dev/sda
九、需警惕的警告信號
1. 紅色警報(立即處理)
- 整體健康狀態顯示“FAILED”
- 重新分配扇區數>0
- 待處理扇區數>0
- 不可糾正扇區數>0
2. 黃色預警(建議關注)
- 磁盤使用年限過長(HDD超5年,廉價SSD超3年)
- 通電時間過長(HDD超40,000小時)
- SSD磨損均衡計數過高
十、掃描壞扇區與文件系統檢查
1. 使用badblocks掃描壞扇區
非破壞性只讀測試(安全,不修改數據):
sudo badblocks -v /dev/sdX
破壞性寫入測試(會擦除數據,謹慎使用):
sudo badblocks -wsv /dev/sdX
2. 使用fsck檢查文件系統完整性
sudo umount /dev/sdX1 # 先卸載分區
sudo fsck /dev/sdX1
十一、圖形化工具:GNOME Disks
- 打開“磁盤”應用
- 從列表中選擇目標磁盤
- 點擊菜單(?)→“SMART數據與自我測試”
- 查看健康狀態并啟動測試
十二、設置自動監控
使用smartd守護進程定期監控:
- 編輯配置文件:sudo nano /etc/smartd.conf
- 添加監控規則(示例配置):
DEVICESCAN -a -o on -S on -s (S/../.././02|L/../../6/03)
(每日2:00執行短測試,每周六3:00執行長測試)
- 啟動服務:
sudo systemctl enable smartd
sudo systemctl start smartd
十三、何時需要警惕及應對措施
1. 緊急情況(立即行動)
- 健康檢查顯示“FAILED”
- 發現重新分配或待處理扇區
- 磁盤發出異常噪音
- 系統運行極度緩慢
2. 應對步驟
- 立即備份重要數據(推薦工具:BorgBackup、Rsync等)
- 執行SMART長測試:sudo smartctl -t long /dev/sda
- 考慮更換磁盤
- 切勿忽視警告信號
十四、SSD特別注意事項
- 無機械部件,損耗源于寫入而非使用年限
- 溫度影響相對較小
- 關注磨損均衡(Wear Leveling)和擦寫次數(P/E Cycles)
- 多數SSD提供“磨損指示器”(從100到0遞減)
十五、常見問題排查
SMART功能不可用:
- 磁盤可能過舊
- 嘗試更換接口(USB轉SATA適配器通常不支持SMART)
權限拒絕:
- 命令前添加sudo
- 確認用戶屬于disk組:sudo usermod -aG disk yourusername
設備不存在:
- 使用lsblk重新確認磁盤名稱
- 磁盤可能已完全損壞
十六、總結
定期監控磁盤健康是預防數據丟失的關鍵。通過smartctl、badblocks和fsck等工具,可主動發現并解決潛在問題。GNOME Disks為圖形界面用戶提供了便捷選擇。請記住:SMART監控并非萬無一失,但能在多數故障發生前發出預警,結合定期備份,是保護數據的最佳策略。