Partimage 硬碟複製/還原軟體



壹、partimage 簡介
  
  partimage 是一支 Linux 下將硬碟分割區壓縮成影像檔、將影像檔還原成分割區的工具軟體,就好像是 Windows 下的 GHOST 軟體。它與 GHOST 不同之處有二:1.它為自由軟體(freeware),可免費使用。2.處理資料的方式與 GHOST 不同。

  GHOST 是採用高階(high level)的方式壓縮/還原磁碟資料,而 partimage 和 drive image 則是以低階方式
壓縮/還原磁碟資料。所謂高階/低階並非指軟體的功能強弱,而是指所處理資料層次的高低。我們知道:一部 IDE 實體硬碟可分割4個主要分割區(含延伸分割區),然後可在每一個分割區裡放一個檔案系統(如:FAT32、NTFS、Linux ext2或ext3等),然後在上面放資料。

  我們先看一下像 GHOST 這種高階的磁碟壓縮/還原磁碟軟體處理資料的流程:找到磁碟分割區 -> 找到檔案配置表(如 FAT32) -> 分析出檔案在 磁碟的配置情形(磁串與磁區) -> 以檔案的觀點處理有資料
的磁區、跳過未標示的磁區(這些磁區可能有資料) -> 執行一種演算法,將磁區的資料壓縮成檔案。由於它是以檔案的觀點來處理資料,因此可提供類似 ghost expolorer等軟體抽取壓縮檔內某些特定檔案的服務。

  像 Partimage/Drive Image 這種低階磁碟壓縮/還原磁碟軟體處理資料的流程則較為簡單:找到 磁碟分割區 -> 找到檔案配置表(如 FAT32) -> 分析出資料在磁碟的配置情形(磁串與磁 區) -> 處理有資料的磁區 -> 執行演算法,將磁區的資料壓縮成檔案。由於這類軟體是不處理檔案的,僅從檔案配置表處得到資料配置的位置,然後對磁碟的資料進行壓縮,因此無法提供類似 ghost expolorer 抽取壓縮檔內特定檔案的服務。但其優點則為理論壓縮速度較快(實際上還要看演算法的好壞),且忠實呈現原貌。GHOST 就曾被批評擅自將 Windows 交換檔等檔案自動剔除掉,沒有忠於原味。


資料、磁串與磁區


  以 FAT32 檔案系統為例,其標準的資料配置單位是 1 cluster 配 4KB,而每一個磁區是 512bytes=0.5KB,所以 Windows 每次配置資料時,不論資料有多小,甚至只有1、2bytes也是配一個 cluster 4KB(幾乎浪費掉 4KB)。NTFS 5.0(XP用的)是每1cluster 配 2KB,空間的使用狀況較佳。我自己習慣在灌 XP 時使用 4GB 的 FAT32,再用 partition image 之類的軟體,強制將 FAT32 的空間配置方式改為每1cluster 配 2KB,這樣可以在節省空間和方便管理間取得平衡。



貳、取得軟 體

1.
上 http://www.partimage.org 下載 Linux 開機磁片和具有 partimage 程式的壓縮檔。
 partimage-bootdisk-2.4.18-1.raw (Linux 開機磁片),或光碟開機。
 
partimage-0.6.2-i386-rootdisk-2.raw (工具磁片)

2.將壓縮檔還原成軟碟。
 dd if=
partimage-bootdisk-2.4.18-1.raw of=/dev/fd0
 dd if=partimage-0.6.2-i386-rootdisk-2.raw of=/dev/fd0

 也可在 Windows 做,用 rawrite 還原。

 我自己則下載 
partimage-0.6.1-i386-bootcd-3.img 2.88MB 檔案燒錄成開機光碟。


參、將分割區壓縮成影像檔

  基本上,使用概念和 GHOST 是一樣的,只要再加上掛入磁碟的觀念就可以了。

1.用兩張磁片開機,或從光碟開機。
 
這裡要說明一下硬碟分割,因為每個人的狀況不盡相同,所以僅能作為參考。
 我的硬碟是割成:
 /dev/hda1 --> FAT32 放 Windows 98
 /dev/hda2 --> Linux ext3 放 knoppix 系統 
 /dev/hda3 --> Linux swap
 /dev/hda4 --> Extended 
 /dev/hda5 --> FAT32 資料碟

2.把資料碟掛進來,以便放 knoppix 的 image 影像檔。
 mount -t vfat -o iocharset=big5,codepage=950 /dev/hda5 /mnt

3.partimage 建議在執行程式前先執行 hdparm 將硬碟的效能調校到最佳狀態,可增進處理速度。
 我用過後發現資料有問題,所以不採用,速度真的慢很多。


4.執行 partimage

 選擇要壓縮的分割區、輸出的影像檔和處理模式(當然是 Save partition into a new image file)

  

5.選擇壓縮模式:
 Gzip:一般壓縮(建議)。
 Bzip2:壓縮率稍高,速度慢很多,如果需要壓成一片光碟,就需要選此項。

 Image spilt mode:設定壓縮檔到多大就分割。


  

6.一段時間後,就會在 /mnt 資料碟處產生壓縮檔了
(上例 會產生 knx.bz.000)

 您也可以用指令方式進行磁碟壓縮工作,如:


partimage -z1 -o -d -V 690000 save /dev/hda2 /mnt/hda5/knx3.gz
 -z:0-不壓縮; 1-用Gzip壓縮; 2-用Bzip2壓縮。
 -o:直接覆蓋既有的檔案不提示。
 -d:不必加上說明的文字敘述
 -V:將壓縮檔分割,其後的數字單位為KB



肆、將影像檔還原成分割區

1.用兩張磁片開機,或從光碟開機。

2.把資料碟掛進來,以便放 knoppix 的 image 影像檔。
 mount -t vfat -o iocharset=big5 /dev/hda5 /mnt

  影像檔如果放在光碟,就要把光碟掛進來:

  mount -t iso9660 /dev/hdd /mnt
注意:
IDE 設備的 device name 通常是如下: 
 primary master <-> hda
 primary slave   <-> hdb
 secondary master <-> hdc
 secondary slave <-> hdd
您的光碟放在哪一位置可用 dmesg | more 指令查到

3.執行 partimage

 選擇要還原的分割區、來源的影像檔和處理模式(Restore partition from an image file)

  

4.建議勾選 Options 項裡的未用到的磁區都歸0選項。

  

5.一段時間後完成工作。

  

  您也可以指令進行還原工作,如: 

partimage restore -e /dev/hda5 /mnt/hda5/knx3.bz
 -e:資料回存時,順便將未存放資料的磁區清空(寫入0)


6.掛出資料碟,掛入還原好的 knoppix 磁碟(此例是/dev/hda2)。
  
umount /mnt
mount -t ext3 /dev/hda2 /mnt

7.把根目錄換到硬碟上的 knoppix編輯lilo。

/mnt/usr/sbin/chroot /mnt
 由於軟碟沒有 chroot 指令,所以才用硬碟上的 chroot 指令
vi /etc/lilo.conf
 這是 knoppix 分割區上的 (如果不熟重做 lilo 的方法,請自己 study)
 把 default= 那列的預設啟動分割改為 knoppix 所在的分割區

lilo  重做 lilo

8. 重新啟動電腦,如果順利就會正確顯示 lilo 管理的開機畫面。

9. 重新設定主機名稱、網路卡。



伍、從網路上還原成分割區


  partimage 也提供可以從網路遠端還原系統的功能,但不像 GHOST 採 multicast,倒比較像主從架構的伺服器與用戶端。

  伺服端:跑 partimaged,然後就像 GHOST 一樣等待用戶端登入,最多可以支援10部用戶端電腦登入進行還原工作。

  用戶端:執行 partimage -s伺服端IP
 -pport_number 登入伺服器,接下來的操作 就和上面的還原方法一樣,不再贅述。

  

 

文章標籤
創作者介紹
創作者 m1016c 的頭像
m1016c

Martin Chang的部落格

m1016c 發表在 痞客邦 留言(0) 人氣()