在使用 备份一些数据(200 GB 主目录)时rsync
,我遇到了特定文件的 I/0 错误,之后同步继续“正常”使用其备份。问题源文件显示文件大小为 72 字节。
我取消了 同步,并再次运行相同的命令。这次,同一个文件显示正在传输数据。很多数据...还有更多数据,还有更多...我检查了目标文件的大小,最大为 13 GB!所以我用 Ctrl-c 取消同步。
60.0 PB
在 Nautilus 中再次检查源文件大小时,它在 500 GB 驱动器上 显示大小(Peta 字节!)。
现在,这一切的要点是:删除该文件是否会导致其他文件中的数据丢失,因为文件系统可以认为它比实际大小大得多......文件系统是ext4
..
我可以跳过它同步例外,但我特别感兴趣的是如果删除它会发生什么。
更新:目标和源都是ext4
关于它是稀疏文件的建议:如果它是稀疏文件,为什么它会从一分钟到下一分钟显示不同的大小?该文件当时肯定(?)没有被使用。它是一个~/.macromedia/Flash_Player/#SharedObjects/someting-or-other.sol
文件,其中有许多更多这样的.sol该目录中的文件..而且它确实在第一次通过时显示了 I/0 错误。
此外,根据man rsync
,建议的-S
选项是处理稀疏文件有效率的, 不是适当地,所以这对我来说,即使我没有使用-S
它,在任何一种情况下都应该准确地复制稀疏文件:它没有,即使它是一个稀疏文件,60.0 Peta 字节似乎肯定是(?)是文件系统中某处的错误......这是我主要关心的问题:如果文件系统中存在故障,删除该文件是否会对其他文件产生影响?
更具体地说:它写入了 13 GB 的数据,并且正在攀升!当我取消它时,删除时是否会同时删除 13 GB - 60 PB 的数据?
答案1
看起来源文件系统已损坏,通常是由于内核错误或 RAM 损坏(损坏的磁盘更有可能导致无法读取的文件而不是损坏的数据)。至此,所有的赌注都落空了。但是,如果损坏非常局部,则只有一个文件的 inode 损坏,其他文件未损坏,因此您可以安全地删除该文件。请注意,无法检验此假设。
我的建议是:
- 进行 RAM 测试,或将磁盘插入另一台机器。
- 确保您已备份所有数据。
- 如果可能的话,使用 SMART 检查磁盘的运行状况。
- 跑步
fsck
。 - 如果磁盘仍然完好,请继续使用它。
答案2
它是稀疏文件。您应该考虑使用-S
,以便尽可能正确地处理文件。