USB 驱动器上的备份目录不可读

USB 驱动器上的备份目录不可读

我正在编辑前段时间写的一个脚本,用于自动备份我的Raspberry Pi SD卡的内容,在编辑过程中,我漏掉了一个“/”,所以这是整个shell脚本:

#!/bin/bash
date
echo BACKING UP RASPBERRY PI
sudo dd if=/dev/mmcblk0p2  of=/media/USBDRIVE/RPi-Backups/RPi-Backup-$(date +"%m_%d_%Y").img bs=10M
echo COMPRESSING RASPBERRY PI BACKUP
sudo gzip -9 -c /media/USBDRIVE/RPi-Backups/RPi-Backup-$(date +"%m_%d_%Y").img > /media/USBDRIVE/RPi-Backups/RPi-Backup-$(date +"%m_%d_%Y").img.gz

一旦我这样做了,我意识到我犯了一个错误并停止了脚本。我检查了保存备份的目录,它们都消失了。奇怪的是,驱动器中占用的空间与我运行脚本之前一样多,大约是 500 GB USB 驱动器的一半。

据我所知,备份已经消失,这破坏了备份的全部意义。

有没有办法恢复这些文件?

如果没有,是否有办法在不擦除和重新格式化驱动器的情况下恢复空间?

2015 年 1 月更新:此后,我在一个全新的驱动器上发生了这种情况,不同的品牌和型号,在这两种情况下,超过 200 GB 的空间都消失了,而空间仍然在使用中。由两个不同制造商生产的两个不同驱动器连续发生两次似乎不太可能。我的备份脚本中是否有某些内容导致这些失败?如果文件真的消失了,为什么目录还在那里?为什么磁盘和操作系统仍然认为相同数量的空间仍在使用中,而不是像文件被擦除一样计算它(因为它们显然已经消失了)?

答案1

ls: reading directory /media/USBDRIVE/RPi-Backups: Input/output error

这是你的问题。始终阅读错误消息!文件并没有消失:它们没有成功,并且ddorgzip进程也会因 I/O 错误而退出。

有时,此错误可能有点普遍,但在这里,您正在处理简单的文件系统超过硬件的情况。 I/O 错误意味着硬件有缺陷。系统日志中可能还有其他消息。通常,问题出在硬盘上。有时电缆会坏——尝试另一条电缆(它很少能解决任何问题,但它很便宜)。这也可能是控制器问题,甚至是驱动程序问题,但这些问题往往很快就会出现,而不是在您使用驱动器第 50 次时出现。

相关内容