且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

dd备份指令

更新时间:2022-09-20 23:34:56

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,如需转载请自行联系原作者