在 USB 硬盘上复制文件时发生 I/O 错误

在 USB 硬盘上复制文件时发生 I/O 错误

我有一个外部 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

那么我能做的就是卸载/重新安装设备,但是当然,重新安装设备后,新文件还没有被复制。

需要注意的是:

  • touch /store17/myemptyfile写入过程对于小数据(如2kB 文件或复制)运行良好。

  • 如果要复制的文件有800MB大,复制时会发生I/O错误:

    cp: error writing './gum_src.tar.gz': Input/output error
    
  • 我用 做了一个简短的健康测试smartmontools,结果通过了。

问题:我可以在命令行上运行什么来更好地了解发生的情况?尽管读取过程看起来完全正常,但我是否可以认为该硬盘已损坏?

答案1

您可以使用 dd 读取整个分区(或使用第二个命令读取整个磁盘)

dd if=/dev/sde1 of=/dev/null bs=1M
dd if=/dev/sde of=/dev/null bs=1M

它很可能会因 I/O 错误而停止在某个地方。

您应该备份该磁盘上的所有文件。

之后,重写整个磁盘可能会导致缺陷扇区被重新分配,但是您会信任该磁盘来保存重要数据吗?

相关内容