partimage ( partation 備份)

最後更新: 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