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
    • 最新
    • 标签
主页 / server / 问题 / 989761
Accepted
user630702
user630702
Asked: 2019-10-30 02:39:45 +0800 CST2019-10-30 02:39:45 +0800 CST 2019-10-30 02:39:45 +0800 CST

DD命令销毁数据

  • 772

我应该删除磁盘的重要文件,然后启动到活动磁盘并运行dd命令,还是可以继续运行dd而/dev/sda无需删除?

我问这个是因为我已经开始跑步了dd if=/dev/urandom of=/dev/sda bs=1M。只是为了安全起见,我有点知道这两种方式都一样,但想知道是否dd会对已删除的文件或尚未删除的文件造成更大的损害。我可以重新启动dd command,但只需要确认。

linux
  • 1 1 个回答
  • 1444 Views

1 个回答

  • Voted
  1. Best Answer
    Server Fault
    2019-10-30T05:47:34+08:002019-10-30T05:47:34+08:00

    dd是一个低级实用程序,用于将数据块读取或写入磁盘。它不知道(或关心)文件系统、目录结构、权限或任何其他高级文件细节。它基本上是用于在磁盘上的任何区域涂抹或擦除数据的抹刀。

    , rm,cp或mv其他高级文件实用程序竭尽全力确保您正在操作的文件在磁盘上的分配区域和文件系统指针无论在哪里都得到了完美更新。当您删除文件时,磁盘的数据区域很可能只是简单地标记为“可供使用”,而实际上并未清除任何以前的数据。如果您有一个包含社会安全号码的文件,即使在您rm之后,该数据区域仍然可以被dd.

    所以,在某种程度上,你的问题的答案是“是的”。dd“造成更大的伤害”,因为它写的任何东西都几乎永远消失了。可能有专门的取证设备可以恢复它,但我想这种服务的价格会让大多数人望而却步。

    更新:如何确认dd已覆盖磁盘。确保您使用正确的设备。下面的写入示例使您的数据无法恢复:

    从目标设备的引导扇区(512 字节)读入 1 块数据:

    # dd if=/dev/sdX of=/tmp/dd_example/chunk.bin bs=512 count=1
    1+0 records in
    1+0 records out
    512 bytes copied, 0.00162606 s, 315 kB/s
    

    使用该od命令检查读取的数据(为简洁起见截断)。

    # od -t x1 /tmp/dd_example/chunk.bin 
    0000000 eb 63 90 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0
    0000020 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00
    ...
    

    如果需要,可以使用strings命令查看块中任何可读的 ascii。(注意:具有“不可打印”ascii 的值,例如 00。不会显示,因此输出strings不一定与上面显示的十六进制输出相关)。因为这是一个 GRUB 引导扇区,所以很容易看到引导签名。其他操作系统可能会有类似的东西。

    # strings /tmp/dd_example/chunk.bin 
    ZRr=
    `|f 
    \|f1
    GRUB 
    Geom
    Hard Disk
    Read
     Error
    

    现在通过向设备写入 512 个零来清除引导扇区。

    # dd if=/dev/zero of=/dev/sdX bs=512 count=1
    1+0 records in
    1+0 records out
    

    现在读回引导扇区的块

    # dd if=/dev/sdX of=/tmp/dd_example/chunk.bin bs=512 count=1
    1+0 records in
    1+0 records out
    512 bytes copied, 0.00144648 s, 354 kB/s
    

    od显示块中的所有内容现在都是00s

    # od -t x1 /tmp/dd_example/chunk.bin 
    0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    0001000
    

    Strings 确认磁盘上不再有任何可打印的 ascii

    # strings /tmp/dd_example/chunk.bin 
    #
    
    • 1

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve