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
[[email protected] ~]# 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
[[email protected] ~]# 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
将磁盘的第一个扇区备份下来
[[email protected] ~]# 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
备份整个磁盘
[[email protected] ~]# 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 [[email protected] ~]# ll -h/tmp/boot.whole.disk -rw-r--r--. 1 root root 300M Aug 21 22:45/tmp/boot.whole.disk
还原(将备份文件与原文件反向填写):
[[email protected] ~]# dd if=/tmp/boot.whole.disk of= /dev/sda1
时间: 2024-10-29 20:40:50