Bash dd 命令详解

dd命令用于复制磁盘或文件系统。

复制磁盘

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

上面命令表示将/dev/sda磁盘复制到/dev/sdb设备。参数if表示来源地,of表示目的地。

除了复制,dd还允许将磁盘做成一个镜像文件。

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

dd还可以复制单个分区。

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

上面命令中,参数bs表示单次拷贝的字节数(bytes)。

要将镜像文件复原,也很简单。

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

清除数据

dd也可以用于清除磁盘数据。

# 磁盘数据写满 0
$ dd if=/dev/zero of=/dev/sda1

# 磁盘数据写满随机字符
$ dd if=/dev/urandom of=/dev/sda1

监控进展

磁盘的复制通常需要很久,为了监控进展,可以使用 Pipe Viewer 工具软件。如果没有安装这个软件,可以使用下面的命令安装。

$ sudo apt install pv

然后,来源地和目的地之间插入广告,就可以看到进展了。

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

参考链接

教程来源于Github,感谢大佬的无私奉献,致敬!

技术教程推荐

微服务架构核心20讲 -〔杨波〕

代码精进之路 -〔范学雷〕

Vue开发实战 -〔唐金州〕

浏览器工作原理与实践 -〔李兵〕

人人都能学会的编程入门课 -〔胡光〕

视觉笔记入门课 -〔高伟〕

程序员的个人财富课 -〔王喆〕

徐昊 · TDD项目实战70讲 -〔徐昊〕

手把手带你搭建推荐系统 -〔黄鸿波〕