最後更新: 2016-10-12
介紹
partimage 可以說是 linux 上的 ghost 來. 它可以用來備份 partation to image
厲害的是它無需內核的支援, 就可以讀取以下檔案系統
Ext2/3, Reiser3, FAT16/32, HPFS, JFS, XFS,UFS, HFS, NTFS
而且它只會備份使用到的 block, 所以 backup 的速度很快
( 它什至會記得 block 在 partion 上的位置 )
在現時的版本並不支援 ext4, btrfs 等格式, 而且不能 restore 到較 IMG 細的 partition
HomePage
http://www.partimage.org/manual/Network-support/
與其他工具比較
# dd 是會 backup 在 partation 上仕何的東西都, 包括未用的空間, 所以要花很多時間.
# dar 需要 kernel 支援才能讀取要備份的檔案,
主要功能
partimage 主要有大動作有 save, restore, imginfo, restmbr,
以下一一介紹
Version
partimage -v
Partition Image version 0.6.9
備份
查看要 backup 那個 partition
parted -l
Disk /dev/sda: 500GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 316MB 315MB ntfs Basic data partition hidden, diag 2 316MB 419MB 104MB fat32 EFI system partition boot 3 419MB 554MB 134MB Microsoft reserved partition msftres 4 554MB 385GB 385GB ntfs Basic data partition 5 385GB 500GB 115GB ntfs
備份前先檢查一下 partation 有沒有問題 (如不正常關機)
fsck.ext3 /dev/hda1
.............................
之後再用以下 cmd 備份
partimage -z1 -V2000 -d -b -f3 save /dev/hda1 /mnt/backup/debian-openvz.gz
-z1 # 它是指用 gzip 去壓縮 image , 而 -z0 = 不壓縮, -z2 就是以 bzip 去壓縮
-V2000 # 是指每 2GB 儲存成一個備份 file
-d # 不用為 image 輸入註解
-b # 進行 backup 時不顯示 gui 畫面 ( 在 script 上行 partimage 是必須加上 -b 的 !!! )
-f3 # backup 後離開介面, 另外有 -f1 = halt , -f2 = reboot
如果用作 backup 媒介是在 DVD 時, 那就要加上 -w , 令它提示換碟又( -V4200 -w )
P.S.
遇到不支援的 file system 時會見到
The file system of [/dev/sda3] is [-unknown-], and is not supported
查看 backup 資料
partimage imginfo /mnt/backup/debian-openvz.gz
還原
partimage restore /dev/hda1 /mnt/backup/debian-openvz.gz
-e # 是要將沒有用到的 block 寫 "0" 入去 ( 安全理由, 不過要較展時間 )
-S, --simulate # Simulation of restoration mode.
由於 partimage 不會還原硬碟分區, 所以在還原到新 HardDisk 前就要分割它l
P.S.
restore 是唯一一個方去看見 image 的內容,
因為它是以 low level 去 backup 的( block level ) , 所以無法直接提取檔案 !!!
還原 MBR
partimage restmbr /mnt/backup/debian-openvz.gz
備份 MBR:
用 dd 備份 partion table
dd if=/dev/hda of=backup-hda.mbr count=1 bs=512
# 危險動作 !!!!!
dd if=backup-hda.mbr of=/dev/hda
用 sfdisk 備份 partion table:
check version:
sfdisk -v
sfdisk from util-linux 2.22.2
backup:
sfdisk -d /dev/sda > backup-sda.sf
- -d, --dump
!!! WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util sfdisk doesn't support GPT. Use GNU Parted.
restore:
sfdisk /dev/hda < backup-hda.sf
網絡備份
partimage 另一強大的功能就是可以透過網絡來備份還原
它是用 TCP port 4025 來傳送資料的, 如有 firewall 記得開 port 呀 ~
Server:
建立系統帳戶:
useradd backupuser
passwd backupuser
# partimaged 是用系統的認證機制的
指定可用 partimage 的帳戶:
可以使用partimage 的系統帳戶寫在 /etc/partimaged/partimagedusers 內
一行一帳戶名
echo "backupuser" > /etc/partimaged/partimagedusers
在 server 上行以下 cmd 來啟動它
partimaged -D -d /mnt/backup/partimage-server
-D 以 daemon 來執行, 如沒有 -D, 則會有 GUI 介面, 它會顯示當前連接
-d <path> 把收到的檔案保存在那個目錄. 如果沒有指定, 默認在當前目錄
Client:
Backup 到 Server
partimage -z1 -d -f3 -b -s192.168.123.4 -Upartimag -Pmypass save /dev/sda1 debian4_2.img.gz
opts
-s server ip
-U user server 上可用的帳戶 (要同時在 /etc/passwd 及 /etc/partimaged/partimagedusers 內)
-P pw user 的密碼
# 勿用 -o , 因為 server 可能唔只一人用, 以免 overwrite 其他人的檔案
Restore from Server
partimage -z1 -d -f3 -b -s192.168.123.4 -Upartimag -Pmypass restore /dev/sda1 debian4_2.img.gz