Hard-Disk

複製 USB 硬碟驅動器上的文件時出現 I/O 錯誤

  • August 18, 2018

我有一個外部 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 讀取整個分區(或使用第二個命令讀取整個磁碟)

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

它很可能會因 I/O 錯誤而停止。

您應該備份該磁碟上的所有文件。

之後,重寫整個磁碟可能會導致缺陷扇區被重新分配,但您會相信該磁碟儲存重要數據嗎?

引用自:https://unix.stackexchange.com/questions/463418