切碎文档说切碎“不保证是有效的”(请参阅​​底部)。因此,如果我在Ext3文件系统或Raid上切碎文档,会发生什么情况?我会切碎文件的一部分吗?它有时会切碎整个东西,有时却不会吗?可以切碎其他东西吗?它仅切碎文件头吗?

最佳答案

切丝要做的只是覆盖,刷新,检查成功并重复。绝对不会发现覆盖文件是否实际上导致包含原始数据的块被覆盖。这是因为,如果不了解有关底层文件系统的非标准信息,它就不会。

因此,日记文件系统不会覆盖原先的块,因为这将阻止它们从更改被写入一半的错误中干净地恢复。如果记录了数据,则每次切碎都可以将其写入磁盘上的新位置,在这种情况下,不会切碎任何内容。

RAID文件系统(取决于RAID模式)可能不会覆盖原始块的所有副本。如果存在冗余,则可以切碎一个磁盘,而不要切碎其他磁盘,或者您可能发现不同的 channel 影响了不同的磁盘,从而部分切碎了每个磁盘。

在任何文件系统上,磁盘硬件本身可能恰好会检测到错误(或者在闪存的情况下,即使没有错误也要进行耗损均衡),然后将逻辑块重新映射到其他物理块,从而使原始块成为标记为有缺陷(或未使用),但从未覆盖。

压缩的文件系统可能不会覆盖原始块,因为切碎覆盖的数据在每次通过时都是随机的或极度可压缩的,并且任一个都可能导致文件从根本上改变其压缩大小并因此进行重定位。 NTFS将小文件存储在MFT中,当切细将文件大小四舍五入为一个块的倍数时,其第一次“覆盖”通常会导致文件重定位到新位置,然后无意义地将其切碎,只剩下一点点MFT插槽未触碰。

Shred无法检测到任何这些情况(除非您有直接实现fs和块驱动程序的特殊实现-我不知道是否真的存在这样的东西)。这就是为什么在整个磁盘上使用它比在文件系统上更可靠的原因。

切丝切勿切碎其他文件中的“其他内容”。在上述某些情况下,它会粉碎以前未分配的块,而不是包含您的数据的块。它也不会切碎文件系统中的任何元数据(我想这就是“文件头”的意思)。 -u选项确实尝试覆盖文件名,方法是重命名为相同长度的新名称,然后在删除文件之前,一次将一个字符缩短为1个字符。如果也指定-v,则可以看到它的作用。

10-04 12:29