切丝要做的只是覆盖,刷新,检查成功并重复。绝对不会发现覆盖文件是否实际上导致包含原始数据的块被覆盖。这是因为,如果不了解有关底层文件系统的非标准信息,它就不会。
因此,日记文件系统不会覆盖原先的块,因为这将阻止它们从更改被写入一半的错误中完全恢复。如果记录了数据,则每次切碎都可以将其写入磁盘上的新位置,在这种情况下,不会切碎任何内容。
RAID文件系统(取决于RAID模式)可能不会覆盖原始块的所有副本。如果存在冗余,则可以切碎一个磁盘,而不切碎其他磁盘,或者您可能发现不同的通道影响了不同的磁盘,从而部分切碎了每个磁盘。
在任何文件系统上,磁盘硬件本身可能恰好会检测到错误(或者在闪存的情况下,即使没有错误也要进行耗损均衡)并将逻辑块重新映射到另一个物理块,从而使原始块成为标记为错误(或未使用),但从未覆盖。
压缩的文件系统可能不会覆盖原始块,因为切碎覆盖的数据在每次通过时都是随机的或极度可压缩的,并且任一个都可能导致文件从根本上改变其压缩大小并因此进行重定位。NTFS将小文件存储在MFT中,当切细将文件大小四舍五入为一个块的倍数时,其第一次“覆盖”通常会导致文件重定位到新位置,然后将其毫无意义地切碎,只剩下一点点MFT插槽未触及。
Shred无法检测到这些情况中的任何一个(除非您有直接针对fs和块驱动程序的特殊实现-
我不知道是否真的存在任何此类情况)。这就是为什么在整个磁盘上使用它比在文件系统上使用更可靠的原因。
切丝切勿切碎其他文件中的“其他内容”。在上述某些情况下,它会粉碎以前未分配的块,而不是包含数据的块。它也不会切碎文件系统中的任何元数据(我想这就是“文件头”的意思)。-u选项确实尝试覆盖文件名,方法是重命名为相同长度的新名称,然后在删除文件之前一次将一个字符缩短为1个字符。如果您也指定-v,则可以看到它的作用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)