不久前,我将 Linux 文件夹备份到我手边的 Windows 磁盘驱动器上。最近,当我扫描这些文件时,我意识到我无意中复制了许多不需要的隐藏文件和文件夹。我想安全地删除这些文件,但我意识到这在日志文件系统 (NTFS) 上是不确定的。所以我认为下一个最好的办法是覆盖文件,同时保持它们完整,然后覆盖可用空间。
我 cd 进入包含 Linux 备份的文件夹并进行测试:find . -regex '.+/\..*'
它找到了我想要删除的所有文件。然后我就跑了find . -regex '.+/\..*' -execdir shred -x -n 1 '{}' ';'
,离开了我的电脑。几个小时后我回来时,我尝试更改目录,但出现 I/O 错误。我尝试重新安装,但遇到了更多错误。驱动器上的分区现已丢失。
我运行 ntfsck 并得到以下响应...
Boot sector: Bad jump.
Boot sector: Bad NTFS magic.
Boot sector: Bytes per sector is not a multiple of 512.
sectors_per_cluster (161) is not a power of 2.
Failed to read file record at offset 5277682939987718400 (0x493e18abeb1b7100).
Loading $MFT runlist failed. Trying $MFTMirr.
Failed to read file record at offset 1872635234051646016 (0x19fcefd2df876240).
Loading $MFTMirr runlist failed too. Aborting.
NTFS signature is missing.
我是否无意中擦除了整个驱动器?如果是这样,我做错了什么?
答案1
find 命令很好,shred 命令的选项也很好。我怀疑发生的事情是 shred 正在做 NTFS 和 Linux NTFS 模块不喜欢的事情。 Shred 尝试多次写入和重新写入,并执行其他“不寻常”的操作以确保数据被覆盖,也许 Linux NTFS 驱动程序不是为此构建的?
事实上,当您尝试挂载文件系统时出现错误,表明文件系统级别出现了问题。您放入 shred 中的选项应该只删除文件,而不是直接写入设备,所以我不明白除了损坏的驱动程序之外,您还能如何损坏文件系统。
我建议在Windows下安装NTFS分区,看看它是否可以修复所造成的损坏。
答案2
工作目录并不重要。该正则表达式匹配所有隐藏文件和目录全系统。
+。一个或多个字符
/\。其次是 /。
.* 后跟零个或多个字符。
在这里尝试一下并放入一些路径,你就会看到发生了什么http://regexpal.com/
我希望你有备份,因为你的系统已经死了。您需要重新安装。
编辑:修复了那里的错误,是否是碎片上的 -x 标志导致块大小不稳定并且 NFTS 对此有一个嘶嘶声?