在我的 1 TB 驱动器上调用unrar
RAR 存档后NTFS
,我留下了一个文件,据报道其大小为86T
.
删除这样的文件安全吗?安全删除此文件的最佳方法是什么?
当然,当删除时,文件应该取消链接并且属于其他文件的任何实际数据应该不受影响,但我真的想确定这个......
编辑 1:
du -h
在包含存档+解压文件的目录中输出:
26M .
编辑 2:进展和发现
chkdsk F: /scan
确实在提取的文件中发现了损坏。chkdsk F: /f
做了Deleting corrupt attribute record (0x80, "")
(很可能属于这个文件,因为记录段号匹配)(属性 0x80)- 之后文件大小为 0
- 可以删除 0 大小的文件
chkdsk F: /scan
没发现问题
这不一定错误地大于您的整个驱动器。包括 NTFS 和 ext4 在内的许多文件系统都支持稀疏文件,其中完全由“零”字节 (
00 00 00 00 ...
) 组成的区域没有分配给它们的任何磁盘范围——这样的文件很容易具有比文件系统大的“表观”大小,而实际数据分配(又名 Windows“磁盘上的大小”)较小。du
您可以通过比较和检查文件是否稀疏du --apparent
,或者通过使用选项列出文件ls -s/--size
,或者使用 xfs_io 列出各个范围:如果有疑问,将文件系统连接到 Windows 系统(VM 可能会这样做)并运行
chkdsk X: /scan
orchkdsk X: /f
并让它验证没有文件重叠 - 或者,在删除文件后,使用它来验证“可用空间位图”没有不同意现有文件。通常,程序无法创建比文件系统所能容纳的实际更大的文件:即使文件归档器也没有那种直接访问权限。如果你最终得到一个不稀疏的错误大文件,这只能是操作系统文件系统驱动程序的错误,在这种情况下,从那时起你对该文件系统所做的任何事情都可以保证是安全的(因为删除毕竟是由同一个“坏”司机完成的)。使用 Windows 的 CHKDSK 来验证文件系统。
对于 Linux 上的 NTFS,考虑在内置驱动程序
ntfs3
和早期ntfs-3g
驱动程序之间切换以验证它们的行为是否相同。也尝试在 Linux 本机文件系统(例如 ext4)上提取您的归档文件,看看它是否也会创建一个大文件。如果磁盘出现问题,我建议首先确保您对磁盘上的数据进行了备份。
由于磁盘是 NTFS,因此最好在 Windows 上按如下方式处理。
第二步,运行命令提示符并输入以下命令:
如果发现任何错误,下一步将使用以下命令修复问题:
作为最后一步,如果一切正确完成,您可以删除此文件。