使用 partclone 備份磁碟分區
(點擊
上方公眾號
,可快速關注)
來源: lujun9972,
lujun9972.github.io/blog/2018/03/08/使用partclone備份磁碟分區/
在linux中,最常用的 block level 備份工具應該非 dd 莫屬了。 然而用 dd 做磁碟備份有一個不好的地方就是太費空間,磁碟多大,生成的備份文件就有多大。
partclone 跟 dd 類似,也是一款 block level 的備份工具,因此使用它你無需擔心會破壞磁碟中 acls 或 selinux labels 這一類特殊的文件許可權。
但是跟 dd 相比, partclone 能夠識別大多數常見的文件類型,只備份磁碟中用到的那些block,從而大大減少備份所耗的空間。
目前 partclone 支持的文件系統格式包括ext2, ext3, ext4, hfs+, reiserfs, xfs, jfs, ntfs, fat(12/16/32), exfat。
對每種文件系統 partclone 都提供了對應的 partclone.<fs> 對應。比如備份 ext4 文件系統則使用 parclone.ext4 進行備份。 對於不支持的文件系統, partclone 也提供了 partclone.dd 來備份。
安裝partclone
archlinux上可以直接使用pacman來安裝:
sudo pacman -S partclone --noconfirm
備份磁碟分區
在備份磁碟分區之前,請先確保被備份的分區需要先卸載。不過如果你是用的 lvm ,那麼可以創建一個邏輯卷的 live snapshot,因此可以不受此限制。
下面這個例子,我把安裝好的orangepilite做個備份。
將orangepilite斷電後,推出TF卡,然後插入讀卡器中,插入電腦的USB介面。然後執行
sudo partclone.ext4 -c -s /dev/sdb1 -o /mnt/orangepilite.pcl
其中:
-c
表示clone一個備份
-s
指定clone的源
-o
指定保存的鏡像文件
你會發現,雖然TF卡是8G,但是產生的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
不過更多的時候,我們會對鏡像文件壓縮存儲,我們可以讓 partclone 與 gzip 連用實現這一點
sudo bash -c "partclone.ext4 -c -s /dev/sdb1 |gzip -c -9 >/mnt/orangepilite.pcl.gz"
最後產生的備份文件只有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]$ sudo bash -c "dd if=/dev/sdb1 | gzip -c -9 >/mnt/orangepilite.dd.gz"
記錄了15205152+0 的讀入
記錄了15205152+0 的寫出
7785037824 bytes (7.8 GB, 7.3 GiB) copied, 601.261 s, 12.9 MB/s
[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),然後把上面備份的 -s 和 -o 參數值反過來就是了。
若備份的是壓縮過的文件,則只需要運行
sudo bash -c "gzip -c -d /mnt/orangepilite.pcl.gz | partclone.ext4 -r -o /dev/sdb1"
看完本文有收穫?請轉發分享給更多人
關注「ImportNew」,提升Java技能
※深入分析 ThreadLocal 內存泄漏問題
※火速下載!《阿里巴巴Android開發手冊》重磅發布!
TAG:ImportNew |