我可以通过运行 Linux 系统来格式化我的硬盘吗?

我可以通过运行 Linux 系统来格式化我的硬盘吗?

我有一台 Debian Linux PC,我想彻底清除其硬盘上的数据。

是否可以在运行 Linux 时执行此操作,而无需插入可移动媒体并启动它?要格式化的 HD 与 Linux 当前正在运行的 HD 相同。

答案1

是的,你可以向磁盘发出“完全擦除”命令,您可以直接覆盖磁盘,/dev无论其分区是否仍然安装 - 人们甚至会错误地这样做;我见过很多案例,有人意外地将 .iso 写入他们的系统磁盘而不是 USB 记忆棒。

虽然文件系统已挂载,但操作系统可能仍会将新数据写回硬盘,例如,在超级块被擦除后,操作系统可能最终会将其写回。此外,操作系统可能会因尝试已从磁盘中删除的文件系统结构。

因此对于满的覆盖,您需要做一些准备,尽可能减少操作系统的后台活动。理想情况下,唯一运行的进程应该是您的 root shell,没有其他会导致操作系统读取或写入数据的进程。

  1. 为此,请以救援模式启动 Linux - 如果无法启动,请通过文本控制台或 SSH 登录,然后关闭正在运行的 GUI(停止“gdm”或“lightdm”服务)。还要关闭任何其他服务,尤其是那些会将数据写入磁盘的服务(syslog、systemd-journald、httpd)。

  2. 然后卸载不必要的分区(如 /home)并使用mount -o remount,ro/只读方式重新挂载文件系统,或者如果这不起作用,则fsfreeze暂停任何进一步的写入。

  3. 最后开始擦除。如前所述,此时您可以只需通过 /dev 覆盖整个块设备,但我建议使用hdparm发出“ATA 安全擦除”命令,该命令告诉磁盘完全擦除自身。这对标准 HDD 来说只有很小的优势,但对 SSD 以及 SMR HDD 来说却变得更加重要,因为它甚至可以擦除操作系统无法访问的“重新分配”位置。

    注意:对于 SATA SSD,最好使用“ATA增强型安全擦除”(对于 HDD 来说无所谓)。对于 NVMe 磁盘,请改用通过的“Sanitize”命令nvme-cli。对于 SAS 磁盘,sg_sanitize应该是等效的。

  4. 当 hdparm 返回时(对于 HDD 来说需要 1-2 小时,对于 SSD 来说需要几秒钟),只需物理关闭机器即可。(您可能能够通过 /proc/sysrq-trigger 导致关机。常规关机命令不起作用,因为您刚刚将其删除。)

(确切的 hdparm 命令被故意省略了。)

相关内容