歡迎光臨
每天分享高質量文章

使用 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. 對應。比如備份 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技能

贊(0)

分享創造快樂