使用partclone備份磁盤分區(qū)
目錄
在linux中,最常用的 block level 備份工具應(yīng)該非 dd 莫屬了。 然而用 dd 做磁盤備份有一個(gè)不好的地方就是太費(fèi)空間,磁盤多大,生成的備份文件就有多大。
partclone 跟 dd 類似,也是一款 block level 的備份工具,因此使用它你無需擔(dān)心會(huì)破壞磁盤中 acls 或 selinux labels 這一類特殊的文件權(quán)限。
但是跟 dd 相比, partclone 能夠識別大多數(shù)常見的文件類型,只備份磁盤中用到的那些block,從而大大減少備份所耗的空間。
目前 partclone 支持的文件系統(tǒng)格式包括ext2, ext3, ext4, hfs+, reiserfs, xfs, jfs, ntfs, fat(12/16/32), exfat。
對每種文件系統(tǒng) partclone 都提供了對應(yīng)的 partclone.<fs> 對應(yīng)。比如備份 ext4 文件系統(tǒng)則使用 parclone.ext4 進(jìn)行備份。 對于不支持的文件系統(tǒng), partclone 也提供了 partclone.dd 來備份。
備份磁盤分區(qū)
在備份磁盤分區(qū)之前,請先確保被備份的分區(qū)需要先卸載。不過如果你是用的 lvm ,那么可以創(chuàng)建一個(gè)邏輯卷的 live snapshot,因此可以不受此限制。
下面這個(gè)例子,我把安裝好的orangepilite做個(gè)備份。
將orangepilite斷電后,推出TF卡,然后插入讀卡器中,插入電腦的USB接口。然后執(zhí)行
sudo partclone.ext4 -c -s /dev/sdb1 -o /mnt/orangepilite.pcl
其中:
-c
表示clone一個(gè)備份
-s
指定clone的源
-o
指定保存的鏡像文件
你會(huì)發(fā)現(xiàn),雖然TF卡是8G,但是產(chǎn)生的orangepilite.pcl只有1.3G
[lujun9972@T520 lujun9972]$ ls -lh /mnt/orangepilite.pcl
-rw------- 1 root root 1.3G 3月 8 21:23 /mnt/orangepilite.pcl
不過更多的時(shí)候,我們會(huì)對鏡像文件壓縮存儲,我們可以讓 partclone 與 gzip 連用實(shí)現(xiàn)這一點(diǎn)
sudo bash -c "partclone.ext4 -c -s /dev/sdb1 |gzip -c -9 >/mnt/orangepilite.pcl.gz"
最后產(chǎn)生的備份文件只有454M
[lujun9972@T520 lujun9972]$ ls -lh /mnt/orangepilite.pcl.gz
-rw-r--r-- 1 root root 454M 3月 8 21:34 /mnt/orangepilite.pcl.gz
相比之下,用 dd 備份后壓縮的大小為5.4G!
[lujun9972@T520 mnt] ls -l /mnt/orangepilite.dd.gz
-rw-r--r-- 1 root root 5791589654 3月 8 21:49 /mnt/orangepilite.dd.gz
[lujun9972@T520 mnt]$ ls -lh /mnt/orangepilite.dd.gz
-rw-r--r-- 1 root root 5.4G 3月 8 21:49 /mnt/orangepilite.dd.gz
從備份還原
從備份還原很簡單
sudo partclone.ext4 -r -s /mnt/orangepilite.pcl -o /dev/sdb1
這里 -r 表示還原(restore),然后把上面?zhèn)浞莸?-s 和 -o 參數(shù)值反過來就是了。
若備份的是壓縮過的文件,則只需要運(yùn)行
sudo bash -c "gzip -c -d /mnt/orangepilite.pcl.gz | partclone.ext4 -r -o /dev/sdb1"