如果你的刚搭建完成的服务器需要备份下你的Linux系统以及你搭建的环境等等所有在内的,你该如何做呢?
不需要头疼一个很简单的命令,无论你是克隆数据还是克隆系统都会变得很简单。
实例:
我今天刚刚搭建了一个Linux RHEL6.4-i386的测试服务器,为了以防我在其操作当中的失误导致系统或者一些文件的丢失
可以这样做
使用dd 命令
1 [root@www ~]# dd if="input_file" of="output_file" bs="block_size" 2 > count="number" 3 选项与参数: 4 if :就是 input file 罗~也可以是装置喔! 5 of :就是 output file 喔~也可以是装置; 6 bs :规划的一个 block 的大小,若未指定则默认是 512 bytes(一个 sector 的大小) 7 count:多少个 bs 的意思。 8 9 范例一:将 /etc/passwd 备份到 /tmp/passwd.back 当中 10 [root@www ~]# dd if=/etc/passwd of=/tmp/passwd.back 11 3+1 records in 12 3+1 records out 13 1945 bytes (1.9 kB) copied, 0.000332893 seconds, 5.8 MB/s 14 [root@www ~]# ll /etc/passwd /tmp/passwd.back 15 -rw-r--r-- 1 root root 1945 Sep 29 02:21 /etc/passwd 16 -rw-r--r-- 1 root root 1945 Dec 17 18:09 /tmp/passwd.back 17 # 仔细的看一下,我的 /etc/passwd 文件大小为 1945 bytes,因为我没有配置 bs , 18 # 所以默认是 512 bytes 为一个单位,因此,上面那个 3+1 表示有 3 个完整的 19 # 512 bytes,以及未满 512 bytes 的另一个 block 的意思啦! 20 # 事实上,感觉好像是 cp 这个命令啦~ 21 22 范例二:将自己的磁碟之第一个磁区备份下来 23 [root@www ~]# dd if=/dev/hdc of=/tmp/mbr.back bs=512 count=1 24 1+0 records in 25 1+0 records out 26 512 bytes (512 B) copied, 0.0104586 seconds, 49.0 kB/s 27 # 第一个磁区内含有 MBR 与 partition table ,透过这个动作, 28 # 我们可以一口气将这个磁碟的 MBR 与 partition table 进行备份哩! 29 30 范例三:找出你系统最小的那个分割槽,并且将他备份下来: 31 [root@www ~]# df -h 32 Filesystem Size Used Avail Use% Mounted on 33 /dev/hdc2 9.5G 3.9G 5.1G 44% / 34 /dev/hdc3 4.8G 651M 3.9G 15% /home 35 /dev/hdc1 99M 21M 73M 23% /boot <==就捉他好了! 36 [root@www ~]# dd if=/dev/hdc1 of=/tmp/boot.whole.disk 37 208782+0 records in 38 208782+0 records out 39 106896384 bytes (107 MB) copied, 6.24721 seconds, 17.1 MB/s 40 [root@www ~]# ll -h /tmp/boot.whole.disk 41 -rw-r--r-- 1 root root 102M Dec 17 18:14 /tmp/boot.whole.disk 42 # 等於是将整个 /dev/hdc1 通通捉下来的意思~如果要还原呢?就反向回去! 43 # dd if=/tmp/boot.whole.disk of=/dev/hdc1 即可!非常简单吧! 44 # 简单的说,如果想要整个硬盘备份的话,就类似 Norton 的 ghost 软件一般, 45 # 由 disk 到 disk ,嘿嘿~利用 dd 就可以啦~厉害厉害!
亲测体验,
首先我的主机上有两块160的硬盘。sata硬盘 即 /dev/sda /dev/sdb
第一块磁盘上安装了我所有的东西 RHEL6.4 的所有 filesystem
克隆整个磁盘的命令:
1 [root@www ~]# dd if=/dev/sda of=/dev/sdb
OK静静等待
完全一样的系统
因为该命令可以将 /dev/sda 内的所有数据,包括 MBR 与 partition table 也复制到 /dev/sdb 说! dd 可以将原本旧的 partition 上面,将 sector 表面的数据整个复制过来! 当然连同 superblock, boot sector, meta data 等等通通也会复制过来!