如果没有 RAID-0,我通常使用以下命令检查坏扇区:
fsck -yvckfC -E fragcheck /dev/sdX
当硬盘使用 RAID-0 时如何检查坏扇区?我应该对每个驱动器运行它吗?/dev/sdb
还是/dev/sdc
使用来自的信息/proc/mdstat
?
# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1]
md1 : active raid0 sda2[0] sdb2[1]
7808789888 blocks 64k chunks
md0 : active raid1 sdb1[1] sda1[0]
524224 blocks [2/2] [UU]
unused devices: <none>
答案1
必须在磁盘设备本身中完成坏块检查,因为您正在使用 mdadm RAID,所以您应该停止阵列并对 /dev/sda2 和 /dev/sdb2 运行检查。
但在执行此操作之前,如果您重视您的数据,我建议您进行备份,因为存在丢失整个 RAID-0 阵列的可能性。
答案2
在这种情况下,我会简单地使用 find、xargs 和 cat 来读取整个磁盘内容,如果任何内容失败,您就会丢失数据并需要恢复它。但这样一来,您就会立即知道哪个文件丢失了数据或哪个目录丢失了。如果您只是使用 badblocks,它会告诉您一个扇区,但不会告诉您如何从故障中恢复。
find . -type f | xargs -IX cat X