如何从损坏的硬盘复制目录和文件?

如何从损坏的硬盘复制目录和文件?

我有一个I/O 错误每次我将文件夹和文件从分区复制到备份硬盘时。

那么我如何才能安全地将这些数据备份到我的备份硬盘上呢?

答案1

首先,如果您的驱动器出现 I/O 错误,您应该检查驱动器是否足够健康。I/O 错误可能仅局限于某个特定的坏块,但出现某个坏块通常是驱动器故障的开始。

您可以使用smartctl它来检查驱动器的S.M.A.R.T.状态,它提供了有关驱动器整体状况的许多信息,最有趣的是有关重新分配/当前待处理的扇区数的信息。您可以smartctl通过安装软件包来安装smartmontools

sudo apt-get update && sudo apt-get install smartmontools

对于SATA驱动器,您可以通过运行以下命令检查驱动器的S.M.A.R.T.状态:

sudo smartctl -a -d <device_file>

*<device_file> = 您的驱动器映射到的设备文件(以 的形式/dev/sdX;您可以通过运行 来检查lsblk);

对于IDE驱动器,您可以通过运行以下命令检查驱动器的S.M.A.R.T.状态:

sudo smartctl -a <device_file>

*<device_file> = 您的驱动器映射到的设备文件(以 的形式/dev/sdX;您可以通过运行 来检查lsblk);

要检查的最重要的指标是Reallocated sector countCurrent pending sector count。前者提供驱动器的“死”扇区的数量,而后者提供驱动器的“几乎死”扇区的数量,如果进一步读取这些扇区失败,这些扇区将被重新分配。

如果磁盘有点老旧,这些数字不太可能为 0,这是理想情况。这些数字实际上有多令人担忧取决于驱动器的年龄和大小;考虑到大多数硬盘驱动器上的每个“死”扇区都等于已经512 B丢失的存储空间,但最重要的是,已经很高的数字通常会更快地增加,这通常是接近故障的指标。

除此之外,您还可以尝试使用ddrescue。如果包含您要恢复的文件的分区是分区root,请从 Live DVD 执行此操作,因为目标文件系统必须以只读方式安装。

还要注意,读取/写入不健康的驱动器可能会进一步损坏它。 ddrescue目的是尽可能减少损害,但没有保证。

首先,如果目标分区已挂载,请将其卸载:

sudo umount /media/<username>/<partition_mount_point>

*<username> = 您的用户名;<partition_mount_point> = 分区的挂载点(您可以通过运行来检查lsblk);

将目标分区重新挂载为只读:

sudo mkdir /media/<username>/ddrescue && sudo mount -o ro /dev/<sdXY> /media/<username>/ddrescue

*<username> = 您的用户名;<sdXY> = 分区映射到的块设备(您可以通过运行来检查lsblk);

创建一个目录来复制恢复的文件(在本例中它是recovered您的 中的“ ”文件夹home):

mkdir ~/recovered

跑步ddrescue

ddrescue /media/<username>/ddrescue/<file_path> ~/recovered

*<username> = 您的用户名;<file_path> = 目标分区中的文件路径;

对每个想要恢复的文件重复这最后一步。

完成后,卸载目标分区并删除临时文件夹:

sudo umount /media/<username>/ddrescue && sudo rmdir /media/<username>/ddrescue

*<用户名> = 您的用户名;

相关内容