在不破坏文件系统的情况下将硬盘驱动器的内容归零

Nic*_*ryc 9 linux external-hard-drive zero-write

我从一台老人使用的旧电脑复制了很多照片到外部硬盘驱动器上,这台电脑很可能被恶意软件感染了。我把照片放在另一个硬盘上。现在我的外部硬盘驱动器完全空了,但我很偏执,我想确保驱动器上没有任何恶意软件或恶意代码。

所以我想用零填充它但不破坏文件系统或分区表。在某种程度上,我想拿回我的磁盘,就像我刚买的一样。

是否有可能做到这一点,是否有 Linux 命令可以做到这一点?

我的硬盘使用 msdos(mbr) 分区表格式化为 NTFS。

Eug*_*eck 36

简单回答:

mount /dev/your/disk /some/free/mountpoint
dd if=/dev/zero of=/some/free/mountpoint/zero bs=512
sync # See edit below
rm /some/free/mountpoint/zero
umount /some/free/mountpoint
Run Code Online (Sandbox Code Playgroud)

这将完全满足您的要求:用零覆盖文件系统中文件可用的所有空间。

更复杂的答案:

  • 如果不破坏 MBR,您就无法确定,您没有 MBR 病毒
  • 空文件系统没有价值

所以我建议你只用核对设备(即设备归零,包括 MBR 和文件系统),然后重新创建分区表和 mkfs.ntfs -f -L LABEL -I

编辑

正如@Nyos 在评论中指出的那样,如果 NTFS 驱动程序没有安装同步(我不知道默认值),最好syncrm. 当前版本(从 Ubuntu 18.04 完全修补到 2020-05-02)没有分配延迟块,因此sync不是绝对必要的,因为所有分配的块都将被写出umount,但我们也不知道未来,我也不知道阅读完整的源代码。

同样注意:如果 NTFS 驱动程序曾经获得稀疏文件支持,我们可能需要使用/dev/urandom而不是/dev/zero来避免(几乎)无限写入。

  • Eugen 关于 MBR 病毒的可能性是正确的。 (11认同)
  • @PeterCordes 正如我所说:**所有空间,可用于文件系统中的文件**。这不包括元数据,因为覆盖元数据等于破坏文件系统。 (3认同)

Dam*_*mon 5

虽然这根本不能回答你的问题......不过:

首先,将磁盘归零是一个非常非常糟糕的主意。对于“传统”磁盘来说是这样,对于固态磁盘更是如此。将磁盘清零很简单(只需创建一个文件并填充它,Eugen Rieck 给出了确切的方法),但这需要很长时间并且会磨损磁盘。在任何类型的硬盘上,写入周期都不是无限的。
另外,请注意,您甚至无法保证覆盖确实按预期工作。对于您的目的,差异不会很明显,但对于其他目的(想想机密数据的安全擦除),这种方法完全不可靠。那是因为您完全无法知道由于磨损均衡和重新分配而覆盖某些内容时会发生什么。驱动器在没有任何人(包括操作系统!)知道甚至没有办法的情况下做很多事情,更不用说改变了。例如,如果一个扇区因控制器对重试次数或 CRC 不满意而被重新分配,那么您可以做任何您想做的事情,您将无法再访问该扇区。再也不。尽管如此,数据,或者它的剩余部分(你无法知道)留在那里,

其次,在完全偏执模式下运行时,保留文件系统(和 MBR)是一个非常非常糟糕的主意,尤其是当磁盘“空”时。除了文件系统的 UUID 之外,仅仅创建一个新的文件系统不会丢失任何东西(这在某些情况下可能有点麻烦,但这也很容易修复)。但是,您确实可以确定在您不期望的地方(例如 MBR)中没有任何东西。

第三,将一个“空”文件系统归零并重用它是一个坏主意,而这个“空”文件系统实际上根本不是空的。如果您可以从头开始创建一个新的 FS(没有陈旧的更改日志条目、不可见的项目、被遗忘的流、属性、碎片化的 MFT...),那么在性能方面是很糟糕的。从头开始重新创建所有内容不仅更安全,而且速度也更快,并且可能会带来更好的整体性能。

tl;博士

大多数设备都有专用的安全擦除或“恢复出厂设置”选项(相同),由随附的管理工具或通过标准 ATA 命令的其他工具支持。驱动器将使用最有效、破坏性最小的方法(有些驱动器确实会在缺乏真正支持该功能的情况下覆盖整个磁盘,但大多数只会转储加密或位加扰密钥,无论磁盘大小如何,它几乎立即起作用)。

hdparm几乎在每个 Linux 发行版上都可以使用,并且有一个--security-erase用于该目的的选项。

这将为您提供一个“就像刚买的”磁盘,但已经使用了一段时间。它将以最快的(在技术上可行的范围内)和最少的磁盘谋杀方式进行。之后,对它进行分区并创建一个文件系统,完成。

  • “将磁盘归零会使它们磨损到足以关心”听起来不太可能。作为正常使用的一部分,许多用户写入并一次又一次地重写硬盘驱动器的巨大部分。直觉告诉我,完全清零可能不到整个生命周期磁盘使用量的 1%,甚至像 dban 这样可能多次完全写入整个磁盘的磁盘核选项也不是什么大问题。我不得不在以前的工作中使用 dban,它会整天运行,除了不断地重写磁盘之外什么都不做,然后磁盘将被重复使用。不是坚持你是错的,我只是持怀疑态度。 (4认同)