天天看點

linux dd備份檔案夾,Linux下使用“dd”工具來備份資料

在Linux平台下面,有很多的備份工具可以使用,其中的大多數都非常好。事實上,很多的linux發行版本都自帶有許多的小工具。dd就是其中之一,一個靈活小巧的備份工具。

dd工具能夠備份一個檔案到另一個檔案中,也能夠備份一個分區到另一個分區中,或者能夠将一個檔案備份到一個分區中。可以說,dd是一個非常完美的備份工具。

下面我們來看看一個例子:将/boot分區備份到一個檔案中

# dd if=/dev/sda1 of=/srv/boot.img

它的意思是,将分區/dev/sda1(假設/boot加載在sda1上),備份到/srv路徑下的boot.img中。相當簡單的一個指令。

注意:dd指令會進行一個全盤的“拷貝”,假如你的/dev/sda1分區總共了200MB的空間大小,但裡面的資料隻有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

備份後,看看怎麼恢複吧:

# dd if=/srv/boot.img of=/drv/sda1

很簡單吧!

來個更進階的操作:

如果你想“拷貝”整個磁盤或者整個系統(有點像ghost),首先,你需要确定你的源盤的大小,然後确定你的目标盤至少要大于或者等于源盤大小。假 設你需要将/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(主引導扇區從sda拷貝到sdb中,這樣子,sdb就能夠被引導了。 第一個446位元組就是此MBR代碼.

擴充一下:如果你想制作一個usb啟動系統或者live CD,用這種方法是不是很簡單!