使用dd命令时,我需要卸载驱动器吗?

我有一块60GB的固态硬盘,上面安装了Ubuntu系统和我的个人文件夹,还有一块1TB的机械硬盘,我以前用它作为存储设备(电影、音乐等)。我决定出售这块1TB的硬盘,但在这之前,我想要彻底擦除上面的所有数据,或者至少使其无法被大多数软件恢复。我想要做的是:
dd if=/dev/urandom of=/dev/sdc

然后使用磁盘工具快速格式化驱动器。
我的问题是:在执行dd命令之前,我需要卸载/dev/sdc吗?

请参阅http://askubuntu.com/questions/21501/possibility-of-recovering-files-from-a-dd-zero-filled-hard-disk。 - Rinzwind
1只需卸载它。这始终是最佳策略。这样一来,在dd擦除数据时,没有程序会试图访问它。 - Daniel
谢谢您的评论。有没有一个选项让我标注这个问题已经得到解答,还是我保持原样? - sinisa
1dd if=/dev/zero 可能会更快。 - AlexP
3个回答

这是可能的(此时已经检查),但在执行dd之前非常建议卸载(umount)设备。


这可能不是你特殊情况下的问题,如果是if=/dev/urandom,但在其他情况下:
如果在dd命令期间对该分区进行了某些操作,无法保证你的分区不会损坏。

我太不耐烦等你的回答了,所以我还是自己做了 - 我让dd在挂载设备上工作。在运行过程中没有出现任何错误,但它建议完成任务需要非常长的时间。我知道这个时间的方法是安装了一个叫做"pv"的软件包,它给了我一些关于dd命令进度的有趣统计数据。所以,我输入的命令是这样的:sudo dd if=/dev/urandom | pv | sudo dd of=/dev/sdc - sinisa
随机数据的写入速度达到了13MB/s,这意味着1TB驱动器需要大约24小时的总时间。这是相当长的时间。 - sinisa
1如果你只想让数据无法恢复,为什么不使用 /dev/zero 呢?1TB 只需要几分钟。 - Steve Zhan
1如果有交换分区,您可以使用swapoff命令。 swapoff /dev/sda2 如果sda2是交换区域。 - linux64kb

你应该启动一个Live USB并卸载你想要擦除的磁盘。如果你非常必须这样做,你可以尝试使用Alt+SysRQ+u将根文件系统重新挂载为只读,然后使用dd if=/dev/zero of=/dev/sdX,其中/dev/sdX是你的磁盘。不过,你真的应该考虑使用Live USB,因为它更安全得多。

srm(安全删除)实用程序提供了几个选项/模式来覆盖先前的磁盘内容。
其中一些选项足够安全,可以确保取证磁盘扫描无法恢复先前的文件;但是:更高的安全性=更长的覆盖过程。
要安装srm,请输入以下命令:
sudo apt install secure-delete

使用方法:
srm szFileName