我使用带有 ext4 文件系统的外部硬盘进行备份。我使用的备份软件 (faubackup) 将文件层次结构 1:1 复制到硬盘上以时间戳命名的文件夹中,并以将内容未更改的文件的新副本硬链接到上一次备份的相应子文件夹中的相同文件的方式进行增量备份。由于我最近的备份驱动器坏了,我现在想确保写入的所有文件都可以在没有 I/O 错误的情况下真正读取,这样我就知道我可以依赖我的备份。
一种方法是读取整个分区,例如将dd
其写入/dev/null
。但是,磁盘大小为 3TB,这样做大约需要 7 个小时(通过 USB 3.0)。
另一种方法是使用e2fsck
选项-c
,但这也需要很长时间。
我认为应该可以通过不检查整个磁盘而只检查文件(仅占整个磁盘大小的一小部分)来加快该过程。例如,可以通过将所有文件写入 tar 存档来实现,该存档不写入磁盘,而是发送到/dev/null
。这里的问题是硬链接:如果我有 10 个增量备份,那么存储量也只是磁盘的一小部分,但它似乎比这大 10 倍左右。
我的问题:有没有办法只读取磁盘上的文件,并且每组文件中只有一个文件硬链接到同一个存储空间?或者有没有办法e2fsck -c
或类似方法只检查文件系统的使用部分(分配的块)?