如何安全地擦除硬盘驱动器?

ænd*_*rük 255 filesystem

我打算出售一个 USB 外置硬盘,目前包含一个旧的 Ubuntu 安装,其中存储了密码和银行信息。

如何在出售之前安全地擦除驱动器?

Frx*_*rem 277

安全擦除存储设备

有一个名为 的命令行实用程序shred,它使用随机位覆盖文件或整个设备中的数据,使其几乎无法恢复。

首先,您需要确定设备的名称。

这可能类似于/dev/sdbor /dev/hdb(但不是like /dev/sdb1,那是一个分区)。您可以使用sudo fdisk -l列出所有连接的存储设备,并在那里找到您的外部硬盘驱动器。

注意确保它是正确的设备,选择错误的设备会擦除它。

卸载该设备上所有当前安装的分区(如果有)。然后运行以下命令,替换/dev/sdX为您的设备名称:

sudo shred -v /dev/sdX
Run Code Online (Sandbox Code Playgroud)

这将用随机数据覆盖设备上的所有块 3 次,-v标志用于详细并打印当前进度。

您可以添加-nN仅执行N次的选项,以节省大容量设备的时间。这可能需要一段时间,具体取决于您的外部硬盘驱动器的大小(我认为我的 4 GB 闪存驱动器需要 20 分钟左右)。

您还可以通过添加 option 在最后一次迭代后将所有位设置为零-z,我更喜欢这样做。

sudo shred -v -n1 -z /dev/sdX
Run Code Online (Sandbox Code Playgroud)

在此之后,您必须重新分区设备。最简单的方法是安装 GParted 并使用它:

sudo apt-get install gparted
gksu gparted
Run Code Online (Sandbox Code Playgroud)

在右上角的列表中选择您的设备。然后选择Device -> Create partition table在设备上创建分区表。

然后添加一个使用设备上所有未分配空间的分区,选择fat32作为文件系统。通过单击工具栏中的“应用”按钮(绿色复选标记)来应用更改。

提示

  • 阅读手册页的shred在线或打字man shred的终端。
  • 请注意,磁盘的某些部分不会被擦除 - 使用驱动器固件“安全擦除”命令,例如通过 hdparm,正确清理磁盘。

  • 最佳实践:断开所有硬盘驱动器,插入外置驱动器,然后在 Live CD 上执行上述操作,以防止任何重要的东西损坏的可能性。 (37认同)
  • 请注意,该答案已被请求驱动器擦除自身的 SECURE ERASE 方法弃用。这应该处理所有可能的数据,并且不会对您的系统造成不必要的负担。您可以使用 `hdparm` 实用程序执行安全擦除,其中驱动器会自行擦除。此方法尝试擦除整个驱动器,包括坏扇区。此外,它比覆盖正常方式要快得多。它也是 SSD 驱动器的推荐方法,其中 `shred` 是一个非常糟糕的主意。 (36认同)
  • 关于使用 ATA Secure Erase 命令的评论具有误导性。使用 SE 存在严重问题(关于缺乏供应商的一致支持以及流程缺乏透明度)。相关:http://security.stackexchange.com/questions/62253/ (22认同)
  • @owlstead:你能详细说明一下吗?什么是安全擦除,如何使用它?如果您有更好的答案,请单独回答,我们将不胜感激。 (8认同)
  • @Fiksdal 我不知道,我写这个答案已经五年了,我不记得我这样表达的动机。也就是说,我想我的意思是“今天几乎不可能,但在未来有足够的技术改进时似乎有可能”。 (3认同)
  • 如果有人偶然发现这个问题,我在这里找到了 hdparm 的工作解决方案:https://grok.lsu.edu/article.aspx?articleid=16716 (2认同)
  • 使用 hdparam 安全擦除的另一个很好的教程在这里:https://code.mendhak.com/securely-wipe-ssd/ (2认同)

hto*_*que 109

只需使用该dd工具将其“归零” :

  1. 通过以下方式启动磁盘工具 System > Administration > Disk Utility
  2. 在左侧面板中找到您的磁盘,选择它,然后在右侧找到设备路径(例如/dev/sdX
  3. 从终端运行以下命令(应用程序 > 附件 > 终端):

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

    确保您使用正确的设备路径,不仅仅是复制这一行!

这将用零覆盖整个磁盘,并且比生成千兆字节的随机数据快得多。像所有其他工具一样,它不会处理因任何原因(写入错误、保留等)而映射的块,但您的买家极不可能拥有从这些块中恢复任何内容的工具和知识。

PS:在布鲁斯·施奈尔 (Bruce Schneier) 的粉丝们否决我之前:我想证明可以从已被零覆盖的非古代旋转硬盘驱动器中恢复数据。甚至不要考虑发表其他评论!:P

  • 不,它不会受到伤害,只是会花费很多时间(特别是如果您使用 /dev/random :P)并带来可疑的好处。我读到的关于该主题的最后一篇论文(抱歉,没有详细信息,我认为它是 2008 年的)建议 - 基于来自真实硬件测试的数据 - 恢复单个位的机会 <50% → 意味着你得到更低使用抛硬币“恢复”每一位时的错误率。所以,除非有证据表明归零是不够的(现在不是“也许”,而是“不该死的方式”),这是我选择的方法。 (16认同)
  • @Cerin 我的理解是,**从来没有**任何证据表明这些偏执的数据恢复幻想是可能的。正如您链接的文章的 [“批评”](http://en.wikipedia.org/wiki/Gutmann_method#Criticism) 部分中指出的那样,Guttman 本人批评他的算法如何被使用“*more as a一种驱除恶灵的伏都教咒语,而不是驱动编码技术的技术分析结果*”。做不止零擦除驱动器的唯一原因是情感上的......即它让你感觉更好......而不是技术。 (14认同)
  • 布鲁斯·施奈尔 (Bruce Schneier) +1(和 DD 这确实是一个很好的工具) (9认同)
  • 并不是说这是最有力的“证明”,但 [Gutmann 方法](http://en.wikipedia.org/wiki/Gutmann_method) 的存在是有原因的。据我所知,如果数据被零覆盖,现代硬盘在理论上仍然容易恢复数据。无论这是否仍然成立,希望您可以承认使用 /dev/random 或为此目的的特定算法覆盖不会造成伤害。 (6认同)
  • 很好,但你能解释一下你为什么要加上 `bs=1M` 参数吗?我可以阅读`man`,而IIUC 你只是将缓冲区限制为1 兆字节;为什么这样做是可取的? (4认同)
  • 不是专家,但我听说使用当前的内核(并且没有能够正确设置所有 dd 魔法所需的知识),通常只需要`cat </dev/zero >/dev/sdX`就足够了。 (3认同)
  • 无论如何,/dev/urandom 不会比 /dev/random 快吗? (2认同)

Sim*_*ter 23

我通常使用破坏性读写测试使用badblocks -w. 两个主要优点是:

  • 它是基本系统和几乎所有救援系统的一部分,因此它可以从例如 Ubuntu 安装程序的救援外壳中获得
  • 最后会得到磁盘是否有坏块的报告

请注意,如果报告指出存在问题,我将不再出售该磁盘,因为它可能很快就会出现故障。

另请注意:-w默认情况下会进行 4 次破坏性写入测试。

使用写模式测试。使用此选项,badblocks 通过在设备的每个块上写入一些模式(0xaa、0x55、0xff、0x00)、读取每个块并比较内容来扫描坏块。

用法示例(如果您的磁盘是sdd):

sudo badblocks -wsv /dev/sdd
Run Code Online (Sandbox Code Playgroud)

(添加sv进度条+详细)

为了更快地擦除,添加-t选项并执行一次零,如下所示:

sudo badblocks -wsv -t 0x00 /dev/sdd
Run Code Online (Sandbox Code Playgroud)


Ror*_*sop 22

看看这个关于 Security Stack Exchange 的确定性问题

如何可靠地擦除硬盘驱动器上的所有信息

这讨论了各种安全删除选项,以及物理破坏和擦除,因此您可以决定哪个选项可能是您的最佳选择。

请记住,不同存储的当前恢复状态如下:

  • 非常旧的硬盘驱动器:轨道之间存在间隙,因此您可能会发现这些间隙中的渗出物(如果您手边有扫描电子显微镜)。多次覆盖可能很有用。
  • 新硬盘:目前还没有一种技术可以在一次覆盖后读取。
  • 固态硬盘:磨损均衡意味着您无法安全地覆盖。相反,您要么加密整个卷并处理要擦除的密钥,要么销毁设备。


use*_*.dz 17

现在,磁盘( gnome-disks) 工具具有ATA Secure Erase。您可以使用它来擦除硬盘驱动器。使用命令行工具在此答案中解释了相同的选项hdparm

  1. 打开磁盘工具→选择目标磁盘
  2. 从菜单:格式化磁盘...
  3. 从下拉框中选择擦除:ATA 增强型安全擦除
  4. 格式

ATA 增强型安全擦除 1 ATA 增强型安全擦除 2

  • 虽然这通常是最佳选择,但它不适用于 USB(如上述问题所述)。https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase 上有关于此的警告和免责声明。尽管如此,我还是在 [Gnome 问题](https://gitlab.gnome.org/GNOME/gnome-disk-utility/issues/87) 中询问了它。 (3认同)

Ber*_*oer 12

最好是使用ATA 驱动器的安全擦除功能。安全擦除在固件级别擦除驱动器。不能更安全。

首先检查是否支持安全擦除:

sudo hdparm -I /dev/sdX | grep -i security
Run Code Online (Sandbox Code Playgroud)

(无论您的磁盘是什么,都将 sdX 替换为 sda/sdb/sdc)。

如果看不到输出,只需使用 dd:

sudo dd if=/dev/zero of=/dev/sdX bs=1M
Run Code Online (Sandbox Code Playgroud)

如果您看到输出,请检查设备是否未冻结:

sudo hdparm -I /dev/sdX | grep -i frozen
Run Code Online (Sandbox Code Playgroud)

如果没有被冻结,将密码设置为“Eins”:

sudo hdparm --user-master u --security-set-pass Eins /dev/sdX
Run Code Online (Sandbox Code Playgroud)

可选:您可能想知道这需要多长时间:

sudo hdparm -I /dev/sdX | awk '/for SECURITY ERASE UNIT/'
Run Code Online (Sandbox Code Playgroud)

然后执行擦除:

sudo hdparm --user-master u --security-erase Eins /dev/sdX
Run Code Online (Sandbox Code Playgroud)

然后等待。显然,对于 1TB 磁盘,这可能需要 3 小时或更长时间。

有一个很好的脚本可以自动执行这些步骤


kar*_*k87 8

  • 您需要创建一个环回设备,该设备在驱动器的整个内容上运行 /dev/random。
  • 这将用几乎完全随机的数据填充整个驱动器。然后您可以使用 dd 将所有位设置回 0。

  • 实际上, dd 应该能够随机化所有信息。

  • 您说您已将银行信息存储在硬盘上。因此,我建议您从 live cd(其中hdX是您的硬盘驱动器)运行以下任一命令。

    dd if=/dev/zero of=/dev/hdX

    dd if=/dev/random of=/dev/hdX

    dd if=/dev/urandom of=/dev/hdX

  • 根据您的硬盘大小,这需要很长时间。

供您参考:

请参阅以下链接,

笔记:

  • Random 使用随机位,零使用 0 位。
  • Urandom 是 random 的半随机版本。


Tac*_*ons 7

你可以使用擦拭

安装

sudo apt-get install wipe
Run Code Online (Sandbox Code Playgroud)

您可以使用该软件或使用以下命令:

shred -vfz -n ? (drive)
Run Code Online (Sandbox Code Playgroud)

是“?” 是,放入您想要粉碎驱动器的次数,然后对于“(驱动器)”是,放入您想要粉碎的驱动器。完成后,随心所欲地使用它。我认为这种方法更有效,因为您可以控制对驱动器执行的操作并立即获得结果。

链接

  1. http://wipe.sourceforge.net/
  2. http://www.howtogeek.com/howto/15037/use-an-ubuntu-live-cd-to-securely-wipe-your-pcs-hard-drive/
  3. http://ubuntuforums.org/showthread.php?t=817882

  • 为什么要使用一个而不是另一个,擦拭 vs 切碎? (7认同)

小智 7

在这种情况下,shred 相对于 dd 的另一个优点是:我有一个有故障的磁盘,需要将其返回给供应商进行更换。

dd 在第一个坏块处停止,并且无法破坏其余块(除非我痛苦地使用skip=...在每次停止时向前跳转)。

在这种情况下,shred 会忽略写入错误并愉快地继续。


N.N*_*.N. 6

您可以使用DBAN维基百科

Darik 的 Boot 和 Nuke(通常称为 DBAN)[...] 旨在安全擦除硬盘,直到数据被永久删除且不再可恢复,这是通过用 Mersenne twiner 或 ISAAC 生成的随机数覆盖数据来实现的( PRNG)。Gutmann 方法、快速擦除、DoD Short(3 次通过)和 DOD 5220.22-M(7 次通过)也可作为处理数据剩磁的选项。

DBAN 可以从软盘、CD、DVD 或 USB 闪存驱动器启动,它基于 Linux。它支持 PATA (IDE)、SCSI 和 SATA 硬盘驱动器。DBAN 可以配置为自动擦除它在系统上看到的每个硬盘,这对于无人值守的数据破坏场景非常有用。DBAN 适用于 Intel x86 和 PowerPC 系统。

DBAN 与其他数据擦除方法一样,适用于个人或商业情况下的计算机回收之前使用,例如捐赠或出售计算机[2]。在恶意软件感染的情况下,可以在将磁盘恢复生产之前使用 DBAN。