坏道分为逻辑坏道(软件层面错误,如扇区校验信息与数据不符,可通过软件修复)和物理坏道(磁盘表面物理损伤,如磁介质脱落,不可修复,只能隔离或更换硬盘)。
badblocks工具badblocks是Ubuntu自带的坏道扫描工具,可检测逻辑坏道或物理坏道的扇区位置。
/dev/sda1分区,替换为你的实际分区):sudo badblocks -s -v -o /root/bb.log /dev/sda1
-s:显示扫描进度;-v:显示详细信息;-o /root/bb.log:将坏道扇区号保存到bb.log文件(后续修复需用到)。/,需进入单用户模式或Live CD环境,避免无法卸载)。e2fsck工具(适用于ext2/ext3/ext4文件系统)e2fsck可读取badblocks生成的坏道列表,将这些扇区标记为“不可用”,避免数据写入。
badblocks结果):sudo e2fsck -l /root/bb.log /dev/sda1
-l:指定坏道列表文件;bb.log,可直接运行sudo fsck -y /dev/sda1(-y自动修复错误,但需谨慎使用,避免误操作)。若badblocks检测到大量坏道(如连续多个扇区)或扫描时出现“Input/output error”且无法修复,说明存在物理坏道。
物理坏道会逐渐扩散,需立即备份分区中的重要数据(可使用rsync、dd或外部存储设备)。
/dev/sdb1):sudo rsync -av /mnt/sda1/ /mnt/sdb1/backup/
使用fdisk或parted工具缩小分区,将坏道区域排除在外。
badblocks.log中的扇区号,计算对应的柱面范围,如起始柱面=坏道扇区号/每柱面扇区数,可通过sudo fdisk -l /dev/sda查看每柱面扇区数);fdisk删除原分区,重新创建分区(起始柱面跳过坏道区域,结束柱面提前截止);sudo mkfs.ext4 /dev/sda1)。sudo badblocks -s -v /dev/sda(全盘扫描)或sudo smartctl -a /dev/sda(查看SMART健康状态,需安装smartmontools)定期检查磁盘;/)出现坏道,需进入Live CD或单用户模式操作(重启时按住Shift键进入GRUB菜单,选择“Recovery Mode”)。