0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

Linux爱好者 来源:未知 作者:李倩 2018-07-23 11:11 次阅读

这篇文章节选自 Manning 出版社出版的图书Linux in Action的第 4 章。

你是否正在从一个即将损坏的存储驱动器挽救数据,或者要把本地归档进行远程备份,或者要把一个别处的活动分区做个完整的副本,那么你需要懂得如何安全而可靠的复制驱动器和文件系统。幸运的是,dd是一个可以使用的简单而又功能强大的镜像复制命令,从现在到未来很长的时间内,也许直到永远都不会出现比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

数据的恢复非常简单:通过颠倒if和of参数可以有效的完成任务。在此例中,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] [ <=> ]

想要推迟备份和磁盘管理工作?有了dd工具,你不会有太多的借口。它真的非常简单,但是要小心。祝你好运!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 驱动器
    +关注

    关注

    54

    文章

    8367

    浏览量

    147603
  • 磁盘
    +关注

    关注

    1

    文章

    382

    浏览量

    25360

原文标题:如何在 Linux 系统中使用 dd 命令而不会损毁你的磁盘

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    uClinux的块驱动器

    驱动器。它是为uClinux而设计的,但是它的结构相对比较简单,并且仅支持NOR Flash的操作,需要在RAM中建立根文件系统。同时它也很难配置,需要代码修改表来建立Flash分区。尽管如此,它还是提供
    发表于 06-02 09:28

    什么是led驱动器

    什么是led驱动器 LED驱动器驱动发光二极管的器件。 led驱动器电路
    发表于 01-19 23:20 3553次阅读
    什么是led<b class='flag-5'>驱动器</b>

    什么是逻辑驱动器

    什么是逻辑驱动器 逻辑驱动器(Logical Drive)是阵列中的虚拟驱动器,它可以占用一个以上的物理磁盘。 逻辑驱动器把阵列或跨越阵列中的磁盘分
    发表于 01-19 23:25 1w次阅读

    驱动器/接收,驱动器/接收原理是什么?

    驱动器/接收,驱动器/接收原理是什么? 5V双RS232驱动器/接收 T1780/L
    发表于 03-08 13:27 1996次阅读

    显示驱动器,显示驱动器基本原理是什么?

    显示驱动器,显示驱动器基本原理是什么? 一个显示的系统框图如下:
    发表于 03-24 14:32 2133次阅读

    外围驱动器,什么是外围驱动器

    外围驱动器,什么是外围驱动器 接口电路的外围驱动器我们可以简单分为下列几种: 1. 与门 2. 或门 3. 或非
    发表于 03-24 14:35 1950次阅读

    TI宣布推出一款完整LED照明驱动器参考板

    TI宣布推出一款完整LED照明驱动器参考板    德州仪器 (TI) 联合 Lemnis Lighting 宣布推出一款完整 LED照明驱动器参考板,帮助解决成
    发表于 04-15 09:35 641次阅读

    电机驱动器是什么

    在很多地方都会用到驱动器,但是驱动器是个整体的概念,简单的说驱动器驱动某类设备的驱动硬件。比如说电脑以及其他的工业设备或者是工具上,都会用
    发表于 05-19 15:26 3.1w次阅读

    电机驱动器解决方案以及从分立元件构建驱动器

    包含在单个芯片上的完整电机驱动器解决方案。 了解电机驱动器 电机驱动器充当直流电机与其控制电路之间的接口。 这些驱动器接收从控制电路接收到的
    发表于 12-22 16:29 1894次阅读
    电机<b class='flag-5'>驱动器</b>解决方案以及从分立元件构建<b class='flag-5'>驱动器</b>

    Commodore 1581副本磁盘驱动器构建项目

    电子发烧友网站提供《Commodore 1581副本磁盘驱动器构建项目.zip》资料免费下载
    发表于 07-11 11:08 0次下载
    Commodore 1581<b class='flag-5'>副本</b>磁盘<b class='flag-5'>驱动器</b>构建项目

    具有TLC5958驱动器IC的完整64x64红/绿/蓝LED面板

    电子发烧友网站提供《具有TLC5958驱动器IC的完整64x64红/绿/蓝LED面板.zip》资料免费下载
    发表于 09-05 15:20 4次下载
    具有TLC5958<b class='flag-5'>驱动器</b>IC的<b class='flag-5'>完整</b>64x64红/绿/蓝LED面板

    驱动器和电机驱动器的概念

    在很多地方都会用到驱动器,但是驱动器是个整体的概念,简单的说驱动器驱动某类设备的驱动硬件。比如说电脑以及其他的工业设备或者是工具上,都会用
    的头像 发表于 09-18 10:00 3326次阅读

    驱动器的分类及应用

    驱动器是电机控制系统中至关重要的一部分,它负责将控制信号转化为电能输出,驱动电机正常运行。根据电机的不同类型和应用场景,驱动器可以分为有刷电机驱动器、无刷电机
    的头像 发表于 12-07 15:22 4512次阅读
    <b class='flag-5'>驱动器</b>的分类及应用

    Windows驱动器分区可以删除吗

    可以删除Windows驱动器分区。删除驱动器分区的操作可以在Windows操作系统中的磁盘管理工具中完成。然而,在执行此操作之前,请务必提前备份重要的数据,以免丢失。 以下是删除Win
    的头像 发表于 02-14 17:00 1668次阅读

    驱动器有哪些类型

    驱动器的主要类型包括伺服电机驱动器、步进电机驱动器、直流伺服电动机驱动器、交流伺服电动机驱动器等‌。 ‌伺服电机
    的头像 发表于 02-23 15:50 142次阅读