dd是常用于备份整块分区或整块磁盘的命令(dd也可以用于备份一般的文件),dd可以读取磁盘设备的内容,然后将整个设备备份成一个文件。dd可以复制磁盘的扇区的区块,并且新分区出来的分区不需要格式化,因为可以将原本旧的分区中扇区表面的数据整个复制过来,连同super blokc,boot sector,mate data等也全部复制过来。这是cp或者tar没办法复制的。如果想要建立两块一模一样的磁盘,只要执行dd if=/dev/sdaof=/dev/dsb就能让两块磁盘一模一样,甚至/dev/sdb 不需要分区和格式化,应为该命令可以将/dev/sda中的所有内容。包括mbr与分区表也复制到/dev/sdb中。
dd常用的参数(更多参数可以使用mandd查看):
if :input file ,也可以是设备
of :output file ,也可以是设备
bs :规划的一个block的大小,若未指定则默认为512bytes(一个扇区的大小)
count:多少个block的意思
例:将/etc/passd 备份到/tmp/passd.back
1
2
3
4
|
[root@localhost ~]
# dd if=/etc/passwd of=/tmp/passwd.back
2+1 records
in
2+1 records out
1474 bytes (1.5 kB) copied, 0.000190048 s,7.8 MB
/s
|
1
2
3
|
[root@localhost ~]
# ll /etc/passwd/tmp/passwd.back
-rw-r--r--. 1 root root 1474 Jul 19 10:04
/etc/passwd
-rw-r--r--. 1 root root 1474 Aug 21 22:41
/tmp/passwd
.back
|
将磁盘的第一个扇区备份下来
1
2
3
4
|
[root@localhost ~]
# dd if=/dev/sda1 of=/tmp/mbr.back bs=512 count=1
1+0 records
in
1+0 records out
512 bytes (512 B) copied, 0.000155603 s,3.3 MB
/s
|
备份整个磁盘
1
2
3
4
5
6
7
|
[root@localhost ~]
# dd if=/dev/sda1of=/tmp/boot.whole.disk
614400+0 records
in
614400+0 records out
314572800 bytes (315 MB) copied, 14.0193 s,22.4 MB
/s
[root@localhost ~]
# ll -h/tmp/boot.whole.disk
-rw-r--r--. 1 root root 300M Aug 21 22:45
/tmp/boot
.whole.disk
|
还原(将备份文件与原文件反向填写):
1
|
[root@localhost ~]
# dd if=/tmp/boot.whole.disk of= /dev/sda1
|
本文转自 天黑顺路 51CTO博客,原文链接:http://blog.51cto.com/mjal01/1958321,如需转载请自行联系原作者