mar*_*raf 41 performance security disk
我需要不时安全地擦除硬盘,并使用了各种工具来做到这一点:
cat /dev/zero > /dev/diskcat /dev/urandom > /dev/diskshredbadblocks -w所有这些都有一个共同点,即它们需要很长时间才能运行。
在一种情况下 cat /dev/urandom > /dev/disk杀死了磁盘,显然是过热了。
是否有一种“足够好”的方法来实现及时使磁盘上的任何数据无法使用?覆盖超级块和几个具有战略意义的块或类似的东西?
磁盘(包括旋转和 ssd)来自捐赠的计算机,之后将用于在其上安装 Linux-Desktops,分发给买不起计算机但需要一台计算机的人。
捐赠计算机的磁盘通常不会被加密。有时捐助者甚至不会事先考虑删除文件。
更新:
从目前得到的答案来看,似乎没有偷工减料。我最好的选择可能是设置一台实验室计算机来一次擦除多个磁盘。要求大公司捐款的另一个理由:-)
谢谢大家!
200*_*ess 46
覆盖超级块或分区表只会让重建数据不方便,如果你只是做一个十六进制转储,这显然仍然存在。
硬盘具有内置擦除功能:ATA Secure Erase,您可以使用hdparm以下方法激活:
选择一个密码(任何密码):
hdparm --user-master u --security-set-pass hunter1 /dev/sdX
开始擦除:
hdparm --user-master u --security-erase hunter1 /dev/sdX
由于这是一项内置功能,因此您不太可能找到真正提供真正擦除的更快方法。(不过,由您决定它是否符合您的偏执程度。)
或者,使用全盘加密的磁盘,然后在您想要处理数据时丢弃密钥。
Cri*_*gie 20
可能不受欢迎的答案: 耐心地完全安全地擦除磁盘。
您已接受来自各种来源的捐赠硬件,并承诺将安全删除他们的数据。所以你必须按照你的承诺 安全地擦除磁盘。
如果我是捐赠者,我发现你没有遵守承诺,我以后不会再给你任何硬件。
并且不要缩短 DBAN 运行时,也不要认为清除前半部分或前 10% 就足够了,而事实并非如此。
为了让您的 DBAN 运行更方便,您通常会从主机中删除驱动器吗?如果是这样,除了有多个 SATA 端口之外,还有一个相当低功耗的台式机。当您准备好擦除几个驱动器时,将它们全部设置在这台机器上,并使用可引导的 DBAN ISO 或网络引导 DBAN 会话来擦除它们。然后让机器运行直到最后一个完成。
您可以使用 SATA-USB 磁盘扩展坞,但与原生 SATA 连接相比,这些扩展坞往往非常慢。
其次,您是否有存储捐赠然后处理它们的工作流程?或者您是否接受硬件、测试、擦拭,然后存放物品以供使用?我建议您制作一个适合您的管道,并使 DBAN 成为该管道中的一个阶段。因此,当您从商店中取出一台机器时,它已经被擦掉了,而且是已知的好东西。
xen*_*oid 13
dd大块可能比cat:
dd if=/dev/zero of=/dev/disk bs=16M
Run Code Online (Sandbox Code Playgroud)
在这个过程中杀死一个磁盘是好事,无论如何它很可能是微不足道的。
如果您使用 LUKS 加密,则可以在设置加密后完成此操作(更难发现磁盘上已使用/未使用的空间)。
你无法避免 I/O,在 50MB/s(对于旧磁盘来说这是一个很好的速度),250GB 需要 5000 秒(大约 1.5 小时)来写入。唯一的问题是你能得到多接近。
我还没有尝试过,但是从快速阅读中,您可以尝试blkdiscard。
这只会向驱动器发送简单的命令并且应该非常快,但我没有找到任何保证块中的数据将被擦除。不过有一些提示。
警告:设备上丢弃区域中的所有数据都将丢失!
TRIM 告诉 SSD 将 LBA 区域标记为无效,并且对该区域的后续读取将不会返回任何有意义的数据。在很短的时间内,数据仍然可以在内部驻留在闪存上。但是,在发出 TRIM 命令并进行垃圾收集后,即使是法医科学家也极不可能恢复数据。
对于严肃的业务,我显然不会相信这一点,但由于您的要求“足够好”,这可能是一个可行的选择。大概它也只适用于 SSD,如果您正在处理旧的捐赠计算机,这可能是一个更严重的障碍。
从安全(偏执)的角度来看,这可能是不可能的。
有一种情况,你只能重写磁盘的一小部分,大多数人会认为它是保存。如果驱动器被加密,则覆盖加密标头(存储加密密钥的地方)应该使其无法恢复。
但还有另一个问题——SSD 可能会保留标头数据(用于覆盖标头的随机数据可以保存到其他单元格)。
大多数关心数据安全的公司已经加密了他们的驱动器,不会(应该)给你驱动器加密密钥,所以无论如何驱动器数据已经被有效地“擦除”了。
并行擦除将解决最大的速度问题。SATA I/O 速度不是你的瓶颈,HDD 物理写入速度才是极限。现代主板至少有 4-8 个 SATA 驱动器连接。设置一台(或多台)实验室计算机以从 SSD 启动(快速)。连接 4-6 个要擦除的驱动器,然后使用首选方法从提供的方法中擦除。
假设您有 4 个驱动器(b、c、d、e)……那么一个简单的脚本将并行擦除所有驱动器。实验室计算机使您能够记录驱动器擦除。
ts=$(date +%Y%m%d%H%M%S)
mkdir -p erase-${ts}
# figure out where your linux mounts the drives (avoid trashing your SSD)
for drive in b c d e; do
target="sd$drive"
dd if=/dev/zero of=/dev/${target} bs=16M 2>&1 |tee erase-${ts}/${target} &
done
Run Code Online (Sandbox Code Playgroud)
虽然,我会在单独的终端中运行每个驱动器擦除,所以我可以观察特定驱动器上的错误。应该更换有多个错误的驱动器。来自驱动器的 SMART 信息会让您了解驱动器的使用年限。
如果您配置了 2-4 台实验室计算机,挑战将是在实验室计算机中加载足够的驱动器,以使其忙于擦除驱动器。假设每台实验室计算机有 5 个驱动器 X 3 台实验室计算机 = 15 个驱动器被并行擦除。您每 30 (ish) 分钟完成一批
SSD 万无一失,它们的工作方式不同。大多数具有更快的写入速度。并且以上都不会擦除已被坏块检测映射而不再使用的扇区(某些数据可能无论如何都不会被擦除)。
有几项研究,特别是谷歌的一项相当大的研究,发现在头两年之后,硬盘故障的概率达到了 5-6%(每年),并且在随后的几年里显着增加。任何超过 5 年的磁盘都有很大的故障概率。考虑只淘汰(销毁、回收)超过五年的硬盘驱动器。
我的建议是只保留三年或更少年的驱动器,或者更换所有驱动器,然后退役(销毁或回收)。
框架挑战:
我这辈子拆过很多电脑。您在抱怨时间,但您却在浪费时间拆卸 PC 进行成像——每台 PC 都必须经过两次测试,然后重新测试。
你的老化期是淡茶。您只是将系统放在一起足够长的时间来配置和测试新映像的驱动器。因此,您将向客户运送有缺陷的 PC(许多是出于某种原因提供给您的;诸如散热问题之类的小故障就是其中之一。)
改变你的装配线。将 PC 置于带电状态,连接 KVM,然后使用 PC 擦拭 PC。这也将给它一个方便的“运行一段时间”的老化;如果你使用 /dev/urandom 也会有严重的 CPU/热老化。
您可以在他们的 Windows 环境下启动并删除除系统文件和应用程序之外的所有内容,或者您可以从 CD 启动,或者如果系统能够启动,则从 U 盘启动。或者,您可以先对系统进行映像,然后在安装新映像后擦除可用空间。
如果在旧操作系统下本地运行,则无需删除和擦除 Windows 系统文件和应用程序,例如魔兽世界是 40GB 的数据,不需要进行安全擦除。因此\Windows,\Program Files可以从安全擦除中排除,和其他系统目录。(如果他们把数据放在那里,他们就不能指望安全擦除它)。有一个高度可移植的 perl 4 版本可以轻松解决这个问题,而 perl 4 对于这种事情来说已经足够强大了。
如果我使用的是本机操作系统,我会分两遍完成:首先删除所有非系统非应用程序文件;然后用零填充磁盘(如果您担心 CIA 层磁盘取证,则使用系统文件的副本)。
一样; 仍然使用 PC 本身进行映像,例如从 CD 启动并通过以太网或其他方式拉取映像。
现在,使用首次启动时的操作构建映像,它会擦除可用空间,然后禁用自身。
所有数据都被 a) 新图像的文件覆盖,或 b) 覆盖自由空间。
如果您希望此功能是“可检查点”,即不必在断电后重新开始,那么只需将具有随机名称的巨大文件写入 /tmp/ 中,直到磁盘已满。确认磁盘已满后,删除 /tmp/ 文件,然后删除自身。
一旦磁盘被新数据 100% 占用,旧数据肯定已被覆盖。