当我注意到 cp 几个文件失败后,我想在我的树莓派上对我的 5TB 外部硬盘运行 fsck 检查。
这是输出:
$ sudo e2fsck -c -v /dev/sda
e2fsck 1.44.5 (15-Dec-2018)
Checking for bad blocks (read-only test): 0.46% done, 5:04 elapsed. (0/0/0 errors)
几个小时以来,没有任何进展。经过的时间也停滞了。这实际上是我第二次尝试。在我尝试之前sudo e2fsck -p -c -v /dev/sda
。这个没有任何输出,这就是为什么我让它运行了整整一周才终止。
我的驱动器已卸载、无分区,并且已用 mkfs.ext4 重新格式化。ps 的输出:
$ ps -a
PID TTY TIME CMD
1075 tty1 00:00:00 bash
8404 pts/1 00:00:00 sudo
8405 pts/1 00:00:04 e2fsck
8446 pts/1 00:00:00 sh
8447 pts/1 00:00:05 badblocks
23605 pts/2 00:00:00 ps
我第一次尝试时就注意到,无法向坏块发送 SIGINT、SIGTERM 或 SIGKILL。
答案1
磁盘固件将尝试自行恢复任何读取错误,如果成功,则会将该扇区映射到备用扇区,因此不会向操作系统报告任何错误。
仅当固件无法恢复扇区的内容时,它才会报告错误。
所以,如果有坏扇区,是无法挽救的,除非由拥有特殊设备的专家来操作。
您的磁盘可能出现故障,因此可能需要新磁盘。若要在复制磁盘时忽略错误,请使用
救援。新磁盘不会有阻塞的坏扇区e2fsck
,因此文件系统可以修复(预计会有部分数据丢失)。