千家信息网

怎么在Linux系统中使用dd命令而不会损毁你的磁盘

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章将为大家详细讲解有关怎么在Linux系统中使用dd命令而不会损毁你的磁盘,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。对驱动器和分区做个完整的副本仔细研究后
千家信息网最后更新 2025年02月03日怎么在Linux系统中使用dd命令而不会损毁你的磁盘

这篇文章将为大家详细讲解有关怎么在Linux系统中使用dd命令而不会损毁你的磁盘,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

对驱动器和分区做个完整的副本

仔细研究后,你会发现你可以使用 dd 做各种任务,但是它最重要的功能是处理磁盘分区。当然,你可以使用 tar 命令或者 scp 命令从一台计算机复制整个文件系统的文件,然后把这些文件原样粘贴在另一台刚刚安装好 Linux 操作系统的计算机中。但是,因为那些文件系统归档不是完整的映像文件,所以在复制文件的过程中需要计算机操作系统的运行作为基础。

另一方面,使用 dd 可以对任何数字信息***的进行逐个字节的镜像。但是不论何时何地,当你要对分区进行操作时,我要告诉你早期的 Unix 管理员曾开过这样的玩笑:" dd 的意思是磁盘毁灭者disk destroyer"(LCTT 译注:dd 原意是磁盘复制disk dump)。 在使用 dd 命令的时候,如果你输入了哪怕是一个字母,也可能立即***性的擦除掉整个磁盘驱动器里的所有重要的数据。因此,一定要注意命令的拼写格式规范。

记住: 在按下回车键执行 dd 命令之前,暂时停下来仔细的认真思考一下。

dd 命令的基本操作

现在你已经得到了适当的提醒,我们将从简单的事情开始。假设你要对代号为 /dev/sda 的整个磁盘数据创建精确的映像,你已经插入了一块空的磁盘驱动器 (理想情况下具有与代号为 /dev/sda 的磁盘驱动器相同的容量)。语法很简单: if= 定义源驱动器,of= 定义你要将数据保存到的文件或位置:

# dd if=/dev/sda of=/dev/sdb

接下来的例子将要对 /dev/sda 驱动器创建一个 .img 的映像文件,然后把该文件保存的你的用户帐号家目录:

# dd if=/dev/sda of=/home/username/sdadisk.img

上面的命令针对整个驱动器创建映像文件,你也可以针对驱动器上的单个分区进行操作。下面的例子针对驱动器的单个分区进行操作,同时使用了一个 bs 参数用于设置单次拷贝的字节数量 (此例中是 4096)。设定 bs 参数值可能会影响 dd 命令的整体操作速度,该参数的理想设置取决于你的硬件配置和其它考虑。

# dd if=/dev/sda2 of=/home/username/partition2.img bs=4096

数据的恢复非常简单:通过颠倒 ifof 参数可以有效的完成任务。在此例中,if= 使用你要恢复的映像,of= 使用你想要写入映像的目标驱动器:

# dd if=sdadisk.img of=/dev/sdb

你也可以在一条命令中同时完成创建和拷贝任务。下面的例子中将使用 SSH 从远程驱动器创建一个压缩的映像文件,并把该文件保存到你的本地计算机中:

# ssh username@54.98.132.10 "dd if=/dev/sda | gzip -1 -" | dd of=backup.gz

你应该经常测试你的归档,确保它们可正常使用。如果它是你创建的启动驱动器,将它粘贴到计算机中,看看它是否能够按预期启动。如果它是普通分区的数据,挂载该分区,确保文件都存在而且可以正常的访问。

使用 dd 擦除磁盘数据

多年以前,我的一个负责政府海外大使馆安全的朋友曾经告诉我,在他当时在任的时候, 政府会给每一个大使馆提供一个官方版的锤子。为什么呢? 一旦大使馆设施可能被不友善的人员侵占,就会使用这个锤子毁坏所有的硬盘.

为什么要那样做?为什么不是删除数据就好了?你在开玩笑,对吧?所有人都知道从存储设备中删除包含敏感信息的文件实际上并没有真正移除这些数据。除非使用锤子彻底的毁坏这些存储介质,否则,只要有足够的时间和动机, 几乎所有的内容都可以从几乎任何数字存储介质重新获取。

但是,你可以使用 dd 命令让坏人非常难以获得你的旧数据。这个命令需要花费一些时间在 /dev/sda1 分区的每个扇区写入数百万个 0(LCTT 译注:是指 0x0 字节,意即 NUL ,而不是数字 0 ):

# dd if=/dev/zero of=/dev/sda1

还有更好的方法。通过使用 /dev/urandom 作为源文件,你可以在磁盘上写入随机字符:

# dd if=/dev/urandom of=/dev/sda1

监控 dd 的操作

由于磁盘或磁盘分区的归档可能需要很长的时间,因此你可能需要在命令中添加进度查看器。安装管道查看器(在 Ubuntu 系统上安装命令为 sudo apt install pv),然后把 pv 命令和 dd 命令结合在一起。使用 pv,最终的命令是这样的:

# dd if=/dev/urandom | pv | dd of=/dev/sda1 4,14MB 0:00:05 [ 98kB/s] [      <=>                  ]

关于"怎么在Linux系统中使用dd命令而不会损毁你的磁盘"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

命令 文件 磁盘 驱动器 数据 驱动 系统 映像 计算机 参数 任务 例子 大使 大使馆 字节 数字 时间 磁盘驱动器 篇文章 锤子 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络技术与信息处理闽江学院 网络安全教育活动讲话 匹配任意服务器失败csgo 武汉网盾科技有限公司服务器租用 客户服务器结构的应用 上海颢欣网络技术有限公司 ie 代理服务器 管理员 单片机wifi通信数据库 北京合浩元应用软件开发中心 医院信息中心网络安全 网络交换机服务器 成都上位机软件开发公司 数据库超链接 恒华科技行业用户互联网平台 医疗质量数据库 工业园区诚信软件开发服务电话 保密网络安全清查 天刀服务器维护 贷款软件开发犯罪吗 软件开发要做什么准备 机器人专业工作做软件开发好吗 网络安全知识儿歌大全 艾克斯特capp服务器安装 自动化的嵌入式系统是软件开发吗 文件资源管理器访问服务器 刘韵洁谈网络安全 体验服的服务器怎么弄 动物世界挣钱软件开发人是谁 长沙定制软件开发哪家好 阿里云服务器涨价了
0