在Linux平臺下面,有很多的備份工具可以使用,其中的大多數(shù)都非常好。事實上,很多的linux發(fā)行版本都自帶有許多的小工具。dd就是其中之一,一個靈活小巧的備份工具。
dd工具能夠備份一個文件到另一個文件中,也能夠備份一個分區(qū)到另一個分區(qū)中,或者能夠?qū)⒁粋€文件備份到一個分區(qū)中。可以說,dd是一個非常完美的備份工具。
下面我們來看看一個例子:將/boot分區(qū)備份到一個文件中
# dd if=/dev/sda1 of=/srv/boot.img
它的意思是,將分區(qū)/dev/sda1(假設(shè)/boot加載在sda1上),備份到/srv路徑下的boot.img中。相當簡單的一個命令。
注意:dd命令會進行一個全盤的“拷貝”,假如你的/dev/sda1分區(qū)總共了200MB的空間大小,但里面的數(shù)據(jù)只有100MB事實上,進行備份后的boot.img會有200MB大小。
我們來看看:
# df -hT | grep sda1 /dev/sda1 ext2 198M 86M 102M 46% /boot # dd if=/dev/sda1 of=/srv/boot.img 417627+0 records in 417627+0 records out 213825024 bytes (214 MB) copied, 2.07951 s, 103 MB/s # du -sh /srv/boot.img 204M /srv/boot.img當然如果你嫌太大的話,可以壓縮一下(使用管道然后用gzip或者bzip2來壓縮):
# dd if=/dev/sda1 | bzip2 -9f >/srv/boot2.img.bz2 417627+0 records in 417627+0 records out 213825024 bytes (214 MB) copied, 31.5072 s, 6.8 MB/s # du -sh boot2.img.bz2 111M boot2.img.bz2
備份后,看看怎么恢復(fù)吧:
# dd if=/srv/boot.img of=/drv/sda1
很簡單吧!
來個更高級的操作:
如果你想“拷貝”整個磁盤或者整個系統(tǒng)(有點像ghost),首先,你需要確定你的源盤的大小,然后確定你的目標盤至少要大于或者等于源盤大小。假 設(shè)你需要將/dev/sda備份到/dev/sdb中,首先確定兩都大小,(條件:/dev/sdb >= /dev/sda),然后使用dd來進行克隆。
# dd if=/drv/sda of=/dev/sdb bs=446 count=1
# dd if=/dev/sda1 of=/dev/sdb1
# dd if=/dev/sda2 of=/dev/sdb2
首先,dd將MBR(主引導(dǎo)扇區(qū)從sda拷貝到sdb中,這樣子,sdb就能夠被引導(dǎo)了。 第一個446字節(jié)就是此MBR代碼.
擴展一下:如果你想制作一個usb啟動系統(tǒng)或者live CD,用這種方法是不是很簡單!