我有一个外部 USB 硬盘驱动器(WD Elements,1TB),它已经部分装满(~370GB 可用):
$ mount | grep store17
/dev/sde1 on /store17 type ext4 (rw,nosuid,nodev,noexec,relatime,data=ordered,user,x-systemd.device-timeout=10)
我需要将新文件复制到驱动器中,但是对于 18MB 的文件(文件大小似乎很重要),会发生以下情况:
$ cd /store17
$ cp ~/my_18MB_file .
$ ls
[...]
my_18MB_file
[...]
$ # WAITING A FEW SECONDS...
$ ls
ls: reading directory '.': Input/output error
然后我能做的就是 umount/remount 设备,但是当然,remount 设备后,新文件并没有被复制。
需要注意:
写入过程适用于小数据,例如
touch /store17/myemptyfile
,或复制 2kB 文件。如果要复制的文件为 800MB 大,则复制时会发生 I/O 错误:
cp: error writing './gum_src.tar.gz': Input/output error
我做了一个简短的健康测试
smartmontools
,通过了。
问题:我可以在命令行上运行什么来更好地了解发生了什么?尽管读取过程看起来非常好,我可以认为这个硬盘驱动器已经死了吗?
您可以使用 dd 读取整个分区(或使用第二个命令读取整个磁盘)
它很可能会因 I/O 错误而停止。
您应该备份该磁盘上的所有文件。
之后,重写整个磁盘可能会导致缺陷扇区被重新分配,但您会相信该磁盘存储重要数据吗?