Ubuntu 修复文件系统坏道的安全流程
一、先判断坏道类型与健康状态
dmesg | grep -i "I/O error\|blk_update_request",如出现大量 sector 读写错误,多半是介质问题。sudo apt-get install smartmontoolssudo smartctl -H /dev/sdXsudo smartctl -a /dev/sdX二、只读检测坏块(先找出问题,不改动数据)
sudo umount /dev/sdX1sudo badblocks -s -v /dev/sdX1sudo badblocks -b 4096 -s -v /dev/sdX1sudo badblocks -s -v -o bb.log /dev/sdX1三、修复动作与适用场景
sudo e2fsck -y /dev/sdX1sudo fsck -y /dev/sdX1sudo e2fsck -l bb.log /dev/sdX1sudo badblocks -s -v -w /dev/sdX1 END START(注意:END 在前,START 在后)四、常用命令速查表
| 目标 | 命令示例 |
|---|---|
| 查看健康 | sudo smartctl -H /dev/sdX |
| 查看详细信息 | sudo smartctl -a /dev/sdX |
| 只读扫描 | sudo badblocks -s -v /dev/sdX1 |
| 写入式检测 | sudo badblocks -s -v -w /dev/sdX1 END START |
| 注入坏块表 | sudo e2fsck -l bb.log /dev/sdX1 |
| 修复文件系统 | sudo e2fsck -y /dev/sdX1 或 sudo fsck -y /dev/sdX1 |
以上命令中的 /dev/sdX 为整盘设备,/dev/sdX1 为分区;执行写入类操作前务必确认已备份。
五、重要注意事项
fuser -m -v -i -k <挂载点> 结束占用进程后再卸载。