是否可以使用 dd 覆盖已安装的操作系统分区?

是否可以使用 dd 覆盖已安装的操作系统分区?

我只是想知道是否可以在我安装的操作系统分区(即我启动的操作系统分区)上运行以下命令:

sudo dd if=/dev/zero of=/dev/sda bs=1M 

我无法真正尝试这个,因为你只能运行一次。

答案1

是的,绝对没有什么可以阻止您运行该命令。

然而,在运行过程中,系统完全有可能变得不稳定,出现内核恐慌。我想不出任何会导致这种情况发生的事情,而且我已经做到了这一点而没有遇到上述问题,但理论上这是可能的(由于内存映射文件)。

但请注意,一旦命令完成,您就会返回到 shell,您将无法执行任何操作。

导致此失败的另一个可能原因是您是否运行了看门狗(如果您不知道看门狗是什么,则您可能没有看门狗)。看门狗很可能会死掉,当它死掉时,系统将重新启动。

答案2

当然不能。迟早您会收到一条消息Device is busy,提示您最终将无法完全擦除磁盘。您最好获取 Live CD/DVD 并从其启动,然后执行该命令。

但是,如果您已经在寻找在不物理损坏介质的情况下擦除数据的最佳方法,您可能需要研究一下安全擦除命令集,从 2004 年左右开始就受到硬盘驱动器的支持。

答案3

是的——那会起作用的。一旦运行 dd 命令,就会在内存中运行一个进程。

我曾经将正在运行的 Linux 虚拟机迁移到其他硬件上,但忘记切换底层硬盘(因此我运行的进程完全丢失了存储空间)——它运行了大约 10 分钟后崩溃。

相关内容