AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 794213
Accepted
Jonas Czech
Jonas Czech
Asked: 2016-07-03 23:30:56 +0800 CST2016-07-03 23:30:56 +0800 CST 2016-07-03 23:30:56 +0800 CST

当我使用“dd”覆盖运行 Ubuntu 的磁盘时会发生什么?

  • 772

如果我使用会发生什么

sudo dd if=/dev/zero of=/dev/sda

从运行 的 Ubuntu 安装/dev/sda?


我在虚拟机中尝试过,它似乎正确地擦除了磁盘。每次都会这样吗?这是“擦除” Ubuntu 安装和所有数据的安全方式吗?

我的问题受到以下启发:

  1. 如何从计算机上卸载 Ubuntu?
  2. 'rm -rf /' 如何删除系统中的所有文件?.
partitioning
  • 5 5 个回答
  • 6424 Views

5 个回答

  • Voted
  1. Best Answer
    André Borie
    2016-07-04T06:09:36+08:002016-07-04T06:09:36+08:00

    实际上,文件系统仍然挂载,并且一些写入被缓冲,这意味着它们仍在 RAM 中等待写入磁盘。假设dd正确地覆盖了所有内容,就在其后面,缓冲区被刷新,一些潜在的敏感数据被写回磁盘。所以不,这不是擦除磁盘的安全方法。

    您可以通过首先以只读模式重新安装根文件系统和磁盘上的任何其他文件系统(或完全卸载它们,但您将无法使用根文件系统)来避免此问题,然后,不应该完全允许在文件系统上进行更多写入(因此没有要刷新的缓冲区),因此您的命令现在应该是安全的,即使在恐慌的情况下它仍然是一个坏主意,因为它需要很长时间。

    如果您想要某种恐慌删除功能,我建议使用 LUKS 加密您的磁盘(Ubuntu 安装程序可以做到这一点),然后按照我在 Security Stack Exchange 上的回答。这涉及擦除大小仅为 2MB 且覆盖时间不到一秒的 cryptheader。然后重新启动系统,磁盘加密密钥将从内存中消失,无法恢复它们,因为 cryptheader 本身也消失了。

    • 17
  2. andrew.46
    2016-07-04T01:49:14+08:002016-07-04T01:49:14+08:00

    我使用从Arch Wiki 页面dd借来和稍微修改的稍微高级的用法牺牲了一个 VM 。

    首先安装一个不错的进度表:

    sudo apt-get install pv
    

    然后运行“增强”dd命令

    sudo openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null \
    | base64)" -nosalt </dev/zero \
    | pv -bartpes "$(sudo blockdev --getsize64 /dev/sda)" \
    | sudo dd bs=64K of=/dev/sda
    

    这将使磁盘充满 AES 密文。完整且安全的磁盘擦除?可能比你自己的dd例子更好,但没有什么是完全安全或有保证的......

    在此处输入图像描述

    你欠我一台虚拟机:)

    参考:

    • Arch:安全擦除磁盘
    • Arch: dd - 高级示例
    • 10
  3. Jim Driscoll
    2016-07-04T07:29:03+08:002016-07-04T07:29:03+08:00

    简短的回答:它会大致做你想要的,然后什么都行不通。使用dd您在文件系统以下的级别进行操作,这意味着将适用的任何约束都不再相关(这并不意味着内核不能阻止您这样做 - 但事实并非如此)。文件系统中的一些内容已经在内存中,例如内核和dd程序本身,还有一些将在缓存中。如果系统处于多用户模式,则可能会在运行过程中将某些文件写回dd,假设它们实际上已更改,并且如果您处于内存压力之下,则某些页面也可能会被换出(它们应该被加密,因此在重新启动后无法使用)。

    您在此之后发出的大多数命令(包括reboot)都不会在缓存中,因此将不起作用。因此,如果您处于单用户模式,它会做得非常好,如果您处于多用户模式,它将擦除绝大多数数据。理想情况下,您应该从其他介质启动它(甚至可能在 initrd 上停止),这样您就可以确定所有写入的来源。

    如果您想要安全擦除,这将无法完成这项工作,因为如果您只是将其归零,仍然会有一些原始数据的痕迹。通常,您最多需要三个随机写入,这意味着从而/dev/urandom不是复制/dev/zero- 慢得多但更安全。有些人可能会建议您使用/dev/random哪个设备来获取“纯”随机数据 - 没有伪随机 - 但为此目的,有人设法破解 PRNG 种子并成功屏蔽数据的机会基本上可以忽略不计。

    如果你真的很偏执,你需要把存储设备扔进炉子里,让它去磁/放电。

    • 6
  4. Videonauth
    2016-07-03T23:35:36+08:002016-07-03T23:35:36+08:00

    它会像在您的 VM 中所做的那样擦除磁盘并使您的系统无法使用。

    但是,如果您考虑到某种“恐慌删除”dd可能还不够快,我不确定在这种情况下是否有更快的命令或程序提供它。

    • 4
  5. Uwe Burger
    2016-07-04T12:16:44+08:002016-07-04T12:16:44+08:00

    它应该可以工作,正在运行的进程保存在 Ram 中,不需要磁盘。无论如何,我都会使用从 cd 或 usb 运行的实时系统。甚至还有 dban,一个专门用于磁盘擦除的 live linux。

    用零覆盖你的磁盘是可以保存的,但如果你足够偏执或有法律规定,你可以用随机数据多次覆盖。

    使用 ssd 覆盖时要小心,由于磨损均衡,不能保证删除所有数据。

    如果您使用全盘加密 (luks),则不必删除整个磁盘,删除 luks 标头就足够了。

    • 2

相关问题

  • 是否有更好的方式为 /home/userX 构建分区/挂载

  • Linux 文件系统层次结构中的默认目录是什么意思?

  • 如何将 /usr 移动到新分区?

  • 如何从双启动计算机访问加密的主文件夹?

  • 您对台式机和家庭服务器的驱动器分区方案有什么建议?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve