|
不想重装又重装?Mondorescue可以帮到你!
--------------------------------------------------------------------------------
http://www.linuxsir.org/bbs/showthread.php?s=&threadid=62301&highlight=mondo
不想重装又重装?Mondorescue可以帮到你!
加入论坛有一段时间了,发现没人提起过Mondorescue,所以特此发贴向大家介绍这个功能强大的备份程序。Mondorescue可以说是 Linux 下的Ghost,它可以将你的系统像照相一样备份至磁带,CD-R,CD-RW,NFS或硬盘分区。Mondo广泛支援LVM,RAID,ext2, ext3, JFS, XFS,ReiserFS,VFAT等。这个软件可以让大家一步一步地将linux调至自己心目中理想的境地,而不用重装。因为一但调出了问题,只要用你的MondoCD将系统还原至上次备份时的状态就行了!根据个人的经验,如果系统只用了1.7G以下,一张光盘就够用了。当然如果你装了很多的程序,就需要更多的光盘,最多20张。实际上可以更多,不过作者认为那么大的系统应该用磁带做备份才对。而且Mondo的主要功能是做系统备份,而不是资料备份,所以20张光盘的限制应已可以应付绝大多数人的需要了。
安装
Mondorescue由Mondo和Mindi两个包组成。Mondo是主程序用来备份和还原。Mindi则类似一个迷你的Linux,它包括核心,模块,函数库及一些做系统维护的重要工具。官方网站提供了rpm,srpm,tgz,deb的软包,安装方法没什么特别。不过某些发行版可能需要下一些依赖性的程序。所有这些网站都有:http://www.microwerks.net/%7Ehugo/docs/download.html ;首页:http://www.mondorescue.org/;或http://mondorescue.norsklinux.no/
备份
以下讲一下个人使用Mondo的经验。首先挂载所有分区(如果你另设了分区给/boot,有可能在开机的时候没有挂载)。以Root的身份执行命令: #mondoarchive 你会看到一个文字菜单问你想备份到什么地方: mondorescue.org/docs/1.6x-howto/images/mamain.png');" border="0">
一般我选‘Hard disk’。然后它会问做好的iso档摆在哪儿,默认是/root/images/mondo (你的硬盘必须要有足够的空间才能使用Mondo);
选择压缩比率,一般Average也就够了;
iso档大小,默认是650m,如果用CDR,可选700m或更多。
想要备份的目录,默认是/(即整个系统)。
不想备份的目录,/tmp和/proc一般是自动排除在外的。(例子:‘/mnt /backup /win’)
要不要核实你的备份,选Yes(除非你已经试了很多次,对Mondo有足够的信心,那你可以选No,这样备份过程会快一点)。
你的核心是否标准,如果你用Redhat,Mandrake,Slackware可选Yes,如是Gentoo,Debian的使用者选No(Mondo会用自己的failsafe核心取代这些发行版的核心)。
确认要继续?选Yes,然后去看电视。一个2G的系统一般要半个多小时做备份,大的系统(尤其是压缩比率选了Maximum的时候)可能要几个小时。
备份完成时,Mondo会问要不要制作开机软盘,选No(反正也装不下)。
然后你可以用自己喜欢的烧碟程序(如k3b,xcdroast等)把1.iso,2.iso等烧到光盘。一个1.7G以下的系统,一张650m的光盘就行了,而且不到10分钟就可以还原。
如直接在命令行用cdrecord
#cd /root/images/mondo(iso所在的目录) #cdrecord -scanbus (to find out dev=x,x,x for your cdwriter,一般是 0,0,0) #cdrecord -blank fast dev=x,x,x speed=4 1.iso (for cd-rw)
还原
用第1张光盘开机后很快会看到boot:按回车,过了一会儿会出现一个菜单。我选iteractive模式(除非你备份了整部机,即所有分区,别选automatic!) 接着Mondo会问备份来源:
我通常用CD-RW做备份,所以我选CD-RW disks。然后你会看到mountlist,也就是你的硬盘分区表(有点象fstab)。如果没改过,就按OK(我曾经试过改了分区设置,都能成功还原)。
要不要更改或删除硬盘分区,否;要不要格式化分区,最好选Yes,要不然会有一些残留的资料会与还原后的系统产生冲突。然后Mondo会一个个分区来问要不要格式化;如你只想格式化linux分区的话,千万要看清楚。
是否还原所有数据?我选Yes(如果选否,Mondo会问是否做部分还原,然后可选择想还原的目录)。还原过程就开始了。
拷贝过程完了之后,Mondo会问是否起动bootloader,选Yes。 是否改过mountlist?如果改过,Mondo会给你机会修改fstab和lilo.conf(用vi)。如过没改过,Mondo就会问最后一个问题,是否为适当的分区贴上ext2/ext3的标签?选是,然后就可以重启了。
除了Mondorescue之外,另外还有两个类似的程序大家也可以试一试,一个是mkCDrec 网址 http://mkcdrec.ota.be/project/;另一个是 Partition Image 网址 http://www.partimage.org/
http://lrc.hklpg.org/?q=en/node/57
PartImage手冊
譯自:http://www.partimage.org/doc/index.html PartImage手冊 François Dupoux fdupoux@partimage.org
$Revision: 1.16 $ for version 0.6.0-rc3, Sep 5th, 2001
本手冊說明 PartImage 版本 0.6.0-rc3。 1. 簡介
* 1.1 本文件有甚麼更新? * 1.2 PartImage 是甚麼? * 1.3 變更
2. 安裝
* 2.1 如何取得 PartImage * 2.2 要求 * 2.3 編譯及安裝
3. 使用
* 3.1 如何將分割區儲存在一個影像檔案 * 3.2 如何從影像檔案還原分割區 * 3.3 要使用甚麼壓縮層級? * 3.4 分割選項 * 3.5 網絡支緩 * 3.6 在 Apple iMac 上使用 PartitionImage * 3.7 為 partition table 做備份
4. BOOT/ROOT 磁碟及 Eltorito 可開機 CD-Rom
* 4.1 為何要用這些磁碟? * 4.2 如何建立這些磁碟? * 4.3 如何使用這些磁碟? * 4.4 如何建立 eltorito可開機 CD-Rom ?
5. FAQ (常見問題)
* 5.1 有沒有瀏覽器般的工具可以從檔案庫還原個別檔案?就如 Ghost Explorer 一樣? * 5.2 假如我建立了一個分割區的影像檔案,我可以將它還原至一個未分割的硬碟碼? * 5.3 我可以將它還原至一個較小或較大的分割區嗎? * 5.4 我需要 ntfs 有寫入支援,支援存在於 kernel-2.4。 * 5.5 partimage-bootdisk/bootcd 的驅動程式不見了,我如何可以解決問題? * 5.6 當我使用 bootdisk 時,螢幕出現 09000900090009000900090009000 的錯誤。 * 5.7 如何為 SSL 的支援產生證書 certificate/key 檔案。 * 5.8 如何在 chroot 環境執行 partimaged * 5.9 我使用 XFS,partimage 也會考慮如 ACLs 和其他擴展性屬性嗎? * 5.10 partimage 會給您以下這些:以 DD 清除空白的區塊,並以 DD 複製 (dd if=/dev/zero of=/mnt/filetmp ; rm /mnt/filetmp ; dd if=/dev/xxx | gzip > image_file.gz)?
6. 分割區影像內部
* 6.1 有關 NTFS 支援 * 6.2 2 GB 檔案限制 * 6.3 有關分割區讀取/寫入 * 6.4 開發人員資料
7. 開發人員資料
* 7.1 建立 BOOT/ROOT/Eltorito 影像 * 7.2 測試 partimage檔案系統支援
8. 為計劃貢獻
* 8.1 撰寫文檔 * 8.2 譯者 (從英語翻譯) * 8.3 測試者 * 8.4 撰寫 C++ 源碼
9. 版權
1. 簡介
1.1 本文件有甚麼更新?
版本 1.5:版權現在是 Gnu FDL
版本 1.6:小型更改
版本 1.7:Partimaged 埠從 13000 變為 4025,由 IANA 分派
版本 1.8:有關使用 / Apple iMac 的部分
版本 1.11:有關使用 / 備份的新部分,更新和新增影像
版本 1.12:有關 FAQ 的新部分:partimage 會考慮 ACL 嗎?
版本 1.13:有關 FAQ 的新部分:partimage 會在 DD 後提供甚麼...?
版本 1.14:Nick Veitch 作出更新 1.2 PartImage 是甚麼?
- 分割區影像是 Linux/UNIX 分割區影像工具:它可以儲存已格式化的分割區,使用 Ext2FS (linux 標準)、 ReiserFS (一種日記式而且功能強大的檔案系統)、AIX 的 JFS IBM 日記式檔案系統、 NTFS (Windows NT 檔案系統)、FAT16/32 (DOS 及Windows 檔案系統),或 HPFS (OS/2 檔案系統) 檔案系統格式至一個影像檔案。只有使用的區塊會被複製,影像檔案可以 GZIP/BZIP2 格式壓縮,以節省磁碟空間,並分割為多個檔案,可以複制往可移除的媒體 (例如 ZIP),或燒錄成 CD-R ...
- 這允許使用者以單一操作儲存完整的 Linux/Windows 系統,當出現問題時 (病毒、破壞、錯誤 ...),您只須將它還原,數分鐘後,整個系統會被還原 (boot, 檔案, ...),而且運作正常。
- 這在多台電腦上安裝同一軟件十分有用:只須安裝其中一台,建立一個影像,再於其他所有電腦上還原影像。安裝好一台後,其後每個安裝都可自動進行,而且只需數分鐘。 1.3 變更
* 0.6.0: (2001-xx-yy) o 網絡支援及 SSL 加密:有兩個版本 (伺服器及用戶端)。例如,您可以儲存一台電腦的影像在另一台電腦的硬碟上。 o 多項複製:可以增加複製的速度。 o 複製優化:進行一個操作便可複製幾個區塊,這可以大大增加複製的速度。 o 分批模式,允許不注意的操作 (沒有問題、沒有表格、沒有訊息方塊) o 很多新的其他選項 (例如, partimage 可以在完成時自動離開) o 新的除錯日誌檔案:這會令除錯更容易 o 支援 ReiserFS-3.6 (在 kernel-2.4 有提供) 新的影像檔案格式,能有更好的錯誤偵測,以及新的源程式碼核心,儲存 MBR o 已儲存 MBR,而且可以還原 (它包含了 boot loader 及 partition table) o 新增 IBM JFS 支援 (仍在試驗中) o partimaged 官方 port 為 4025 * 0.3.5.3:(2001-04-02) 新的翻譯 * 0.3.5.2:(2001-03-09) 支援 ReiserFS-3.6 * 0.3.5.1:(2001-02-01) 除錯,避免分段錯誤 * 0.3.5:(2000-10-09) 除錯,支援 HPFS 檔案系統 * 0.3.4:(2000-10-01) 除錯,意大利文翻譯,包裝的 debian 檔案 * 0.3.3: (2000-09-20) 除錯,新的選項:"Halt/Shutdown on finish",文檔 (以英文撰寫,SGML 轉為 HTML)、法文翻譯 * 0.3.2: (2000-09-12) 除錯 (支援 NTFS 、分割),新的除錯系統,令除錯更容易 * 0.3.1: (2000-09-06) 除錯,在還原時自動偵測壓縮層級,開始支援 NTFS * 0.3.0: (2000-08-27) 新的半圖像界面 (基於 newt),可在 console 下執行,除錯 * 0.2.4: (2000-08-21) 支援 ReiserFS 檔案系統,自動偵測檔案系統 * 0.2.3: (2000-08-15) 除錯,移除 2 GB 分割區大小的限制 * 0.2.2: (2000-07-25) FAT16 及 FAT32 支援,除錯, 在儲存前進行 2 GB 限制檢查、e2fsck 檢查,新增選項 * 0.2.1: (2000-06-04) 支援分割影像,除錯,檢查大小,新增選項 * 0.2.0: (2000-05-29) 首個版本
2. 安裝 2.1 如何取得 PartImage
要取得 Partition Image 的最新版本,您可以瀏覽該計劃的網頁: http://www.partimage.org/ 。您可以下載 tar.bz2 格式或二進元的源碼。 2.2 要求
編譯/執行 Partition Image 需要很多程式庫:
* libz gzip 壓縮支援 * libbz2 bzip2 壓縮支援 * liblzo lzo 壓縮支援 * libnewt GUI (圖像使用者界面) * libslang newt必須 * libssl OpenSSL:網絡上資料加密 * libcrypt 支援密碼
您可以往 Partition Image 網頁的下載部分,找到更多有關這些程式庫的詳細資料:在哪兒下載以及如何編譯它們。
警告:如果您想編譯 partimage 為共享軟件,您需要在系統上安裝所有這些程式庫的共享版本。如果您想編譯 partimage 為靜態的程式,則需要在系統上安裝這些程式庫的靜態版本。 2.3 編譯及安裝 不同版本的 Partition Image
您可以使用的 Partition Image 有三個版本:
* 源程式碼:您需要編譯它,而且可能很困難,因為它需要很多程式庫 * 靜態二進元:使用容易,這是一個 i386 可執行二進元,您只需執行它 * boot/root 磁碟:如果您還沒有安裝 linux 系統,或您想在 root linux 分割區上工作 * 可開機 eltorito cdrom:您要從可開機的 cdrom 執行 partimage,這是燒錄影像檔的位置
所有這些版本都可以從網站下載,這兒我們會解釋如何編譯源程式碼: 編譯分割區影像源碼
要在系統上編譯及安裝 PartImage,可在 PartImage 發行本的根目錄輸入以下數行:
% ./configure % make % make install
之後,如果您啟用了 SSL,您可以透過以下指令安裝所需的證書:
% make certificates
由於 PartImage 使用 autoconf,編譯時應該沒有問題。如果您有問題,請往 François Dupoux 向作者報告。
3. 使用
使用 Partition Image有兩種方法:
* 指令行的:必須輸入指令,例如:partimage -od -f1 -z1 儲存 /dev/hda12 /mnt/backup/hda12.partimg.gz * GUI (圖像使用者界面):這是很簡單的方法,您只須填滿 GUI視窗的方格。
透過輸入 partimage --help 替您可以取得所有指令的列表,因此這兒不多解釋。
3.1 如何將分割區儲存在一個影像
在儲存分割區時,您必須指明兩項重要的東西。首先是您要儲存的分割區,您必須為 Linux 提供分割區的名稱,然後是 /dev/ directory 檔案。例如,如果要儲存的分割區是第一個 IDE 硬碟的分割區,它可能是 /dev/hda1。第二項重要的東西是儲存分割區的檔案,這檔案稱為 image file。要查看硬碟上有甚麼分割區,您可以執行 fdisk 或輸入 cat /proc/partitions ,然後您需要在 Partition Image 的第一個視窗輸入資料,。在螢幕上,我們正將 /dev/hda12 的資料儲存至 redhat-6.2.partimg.gz。影像檔案的副檔名應該符合使用的壓縮模式。 (gzip 格式為 .gz ,bzip2 為 .bz2) 當準備妥檔後,按 Next >。
在下一個視窗,您可以選擇很多選項,最重要的壓縮層級。影像的大小及儲存影像所需的時間視乎您使用的壓縮層級。分割選項允許您將影像檔案分割為數個小檔案。要將您的分割區儲存在可移除的媒體如 ZIP 碟,這是十分有用的。例如您想將檔案分割為 95 MB,以放入多隻 Zip 磁碟。
設定所有選項後,您可以按 save 按鈕執行操作。 3.2 如何從影像檔案還原分割區
還原檔案會將儲存在影像檔案內的資料複製至分割區中,在還原分割區中已有的資料會失去﹗要還原資料的分割區必須在進行前已存在。如果它不存在,您必須在之前以 fdisk、GNU parted 或其他工具建立它。假如它不配合新分割區,資料就不能還原,因此要確定建立的分割區有足夠的空間。
將影像還原分割區是很容易的事,您必須指明要使用的影像 (它只會讀取),以及要還原的分割區 (它會被覆寫)。您可以選擇的額外選項只有 Erase free blocks with zero values。假如啟用了這選項,所有未使用的區塊都會以零 bytes 抹掉。如果您想確定在操作之前分割區上的資料完全被抹掉,這選項會很有用。假如停用了這選項,在現有未用的區塊中的舊資料可以被存取 (會有點困難),因為沒有東西會寫入這些區塊,這些舊資料可以用 dd (GNU 轉換及複製)等工具讀取。
當所有選項設定後,您可以按 restore 按鈕執行操作。
要還原的分割區必須與儲存的分割區同一大小,假如分割區比原來的小,操作會失敗。如果分割區較大,可能會失去空間。您可以查看本手冊的 FAQ,取得更詳細的資料。 3.3 要使用甚麼壓縮層級?
當您將分割區儲存在一個影像檔案,您可以選擇以下四個其中一個壓縮層級:
* none 沒有壓縮 * gzip 影像會以 gzip 壓縮 (預設的) * bzip2 影像會以 bzip2 壓縮 * lzo 影像會以 lzo 壓縮
設定了沒有壓縮,您的影像檔案會很大,大小與儲存了的分割區的使用資料相同,除非您有大量空間這才有用。 但速度就很快,如果影像小的話就很有用 (可能是 /boot 分割區)。
以 Gzip 壓縮,您的影像檔案會很小,這是最有用的模式,由於要壓縮,這操作會用更多時間,但建立更小的檔案。
以 Bzip2 壓縮,您的影像檔案會很小:在大型檔案上 Bzip2 比 gzip 的壓縮率更好 (雖然在少數例子中,它實際建立的檔案更大),壓縮過程會十分慢,如果您真的不能浪費任何空間,或您有很多時間 (您可以在睡覺前執行它),這選項才有用。
以 Lzo 壓縮,這是很快的壓縮演算法,它比 gzip 更快,但效率較低。假如您有足夠空間儲存很大的影像,而又想節省時間,可以選擇這選項。這壓縮層級在 partimage 0.7.0 及以後的版本便有。
您可以在建立影像檔案後,將它壓縮及解壓影。例如,假如 redhat-6.2.partimg.gz 影像以 gzip 壓縮層級建立,您可以輸入 gzip -d redhat-6.2.partimg.gz 解壓影像檔案。您亦可以壓縮沒有壓縮的檔案,例如您可以輸入 bzip2 debian-2.2.partimg。如果您希望嘗試其他壓縮工具,這可能會很有用。Partition Image 可以讀取未壓縮的檔案,或那些以支援的壓縮慣例建立的檔案,即使軟件本身不是作壓縮之用。 3.4 分割選項
以 Partition Image 建立的檔案十分大,而且有時可以達到幾個 Gigabytes 的大小。如果您想將檔案複製至可移除媒體,或燒錄 CD-R 作儲存,可能會很不方便。
分割是建立影像時使用的選項,允許建立多個較小的檔案,包含分割區影像,而不是一個大的檔案。有兩個分割模式可以選擇:
* 自動:當沒有剩餘空間 - 假如現在選取的裝置沒有剩餘空間,會建立新的容量。接著會問您新的位置,儲存影像的下一部分。 * 固定大小的檔案 - 會建立幾個同樣大小的檔案,而非一個大檔案。
假如您想複製檔案至可移除的媒體或 CD-R,可使用 fixed size 模式,例如在 CD 燒錄影像,您可能想將它分割為 600 MB。然後您可以指定使用的固定大小,以 Kilobytes 為單位 (在本例是 614400 KB)。
假如您不確定裝置上是否有足夠空間容納目標影像檔案,您可以選擇 automatic 模式。然後如果不夠空間,您會被問及新的位置,而影像的下一部分會寫入這新的位置。 如果您在可移除媒體直接建立分割區,就會很有用。 3.5 網絡支援
自從 0.5/0.6 版本開始,Partition Image 會提供網絡支援:允許您在標準網絡上從一台電腦(用戶端)儲存影像至另一台電腦 (伺服器)。您亦可以從儲存在另一台電腦 (伺服器)上的影像,將分割區還原至一台電腦 (用戶端)。如果您儲存/還原的分割區包含需要加密的資料,這個方法會提供 SSL 加密支援,伺服器可以同時連接幾個用戶端。
網絡支援在以下幾個情況下十分有用:
* 如果電腦上只有一個分割區的硬碟需要備份,在這種情況下沒有多餘空間可以儲存影像。 * 如果您沒有足夠空間在同一電腦上儲存影像檔案 * 要增加保安:如果影像檔案儲存在另一台電腦上,用戶端的硬碟損毀或病毒不會損壞影像檔案。 * 如果您幾台有相同分割區和安裝了相同軟件的電腦有相同的影像檔案。
如果您的電腦上安裝了 OpenSSL 的分享版本 (它必須以 ./config --prefix=/usr -shared 編譯 ),那麼 SSL 加密預設已啟用。
使用的 partition image 有兩個版本,電腦有兩種類型:網絡操作上所有電腦也必須有有效的網絡設定,您可以利用 netcfg 做到。 伺服器
伺服器是包含影像檔案的電腦,沒有分割區是直接在這台電腦上儲存/還原的。
首先,您需要新增一個 partimag 使用者,因為伺服器不久便會失去 root 的能力 (基於保安理由),而且會繼續在 uid partimag 下執行。不要建立 partimaged SUID,以 root 執行。記錄伺服器的 IP 位址,因為您在設定用戶端時會需要它。假如您不確定位址,可以執行 ifconfig,您通常會在 eth0 下找到 IP 的詳細資料。如果您有幾個 ethernet 連線,您可能要檢查網絡上要使用的位址。注意:如果網絡上正使用 DHCP,您不能信賴伺服器永遠會有同一個 IP 位址。在這些情況下,最好為伺服器指定一個靜態 IP 位址。
預設伺服器軟件使用的登入作為一種保安措施,以防止給予任何使用者讀取/寫入影像檔案的權限。如果保安不重要,這種檢查可以透過輸入 ./configure --disable-login,在編譯時停用。在您首次使用 partimaged 時,您需要建立帳戶,容許用戶端連接伺服器。您必須建立一個檔案,包含容許連接的使用者清單。這個檔案預設儲存在 /usr/etc/partimaged/partimagedusers ,而其存取模式必須為 600,這檔案必須屬於 'partimag' 使用者。例如,如果您想允許 linus 使用伺服器,可輸入: mkdir /usr/etc/partimaged && echo linus > /usr/etc/partimaged/partimagedusers && chmod 600 /usr/etc/partimaged/partimagedusers。 新增至此檔案的使用者必須是系統的現有使用者 (必須在/etc/passwd 中有記錄)。當登入時﹐密碼必須符合系統中使用者的密碼。在此時,只有 DES 或 MD5 密碼才支援,但現在已是一種標準。
然後輸入 partimaged, 執行 partimage 伺服器版本。假如您想改變一些設定,最佳的選項是在指令行指明:輸入 partimaged --help 可以取得更多資料。最重要的選項是 -p port,允許您選擇伺服器使用那個 port,預設的 port number 是4025。假如您改變這個值,請留下來,以便您在用戶端作出相應的設定。為了方便使用,您應該從影像檔案儲存的目錄執行 partimaged - 然後如果用戶端沒有選擇路徑,這將會是現有的目錄。假如您想設定永久的伺服器,建立一個 startup script 自動啟動伺服器也很有用,伺服器現在已準備好接受達 10 個用戶端的連線了。 SSL 模式
使用 SSL 需要證書和一個 key 檔安,從源程式碼檔案安裝時,兩個檔案都可以透過 "make certificates" 產生。如果您沒有源程式碼或想更改 certificate 或 key,可以查看 FAQ。 chroot 環境
要改善保安,您可以在 chroot jail 運行伺服器,詳情可查看 FAQ 。 用戶端
用戶端是含有要儲存的分割區的電腦,會使用 Partition Image 的標準版本:在這兒不要使用 partimaged 。首要的東西是為 partimage 指定伺服器的 IP 位址。透過在指令行使用 -sIP 選項可以做到,例如使用 -s192.168.10.2。第二種方法是檢查網絡,並在主視窗輸入 IP。
您可以利用 -pPORT 選項更改埠號,例如使用 -p4001 可使用 port 4001,預設值為 4205。
所有其他步驟都與沒有網絡相同,接著,在使用網絡時唯一要更改的重要東西是伺服器的 IP 位址。所有其他部驟都是相同的。 3.6 在 Apple iMac 上使用 PartitionImage
鳴謝 Steffen Schwenke 提供本部分的資料。
下載 ISO partimage-0.6.0rc3-PPC-bootcd-1.img.bz2 並參考下一部分,可以得知如何建立可開機的 cdrom。這是一個 bzippped 的 ISO 影像,不是一個 bootcd 影像,可輸入 bzip2 -d *img.bz2 將影像解壓。
插入 cdrom 並啟動您的 iMac,然後:
* 在啟動時按 C * 在 yaboot prompt 輸入 -> cd * 希望 /dev/ram3 可以掛上 * 以 root 登入 (沒有密碼) * 啟動 partimage
注意:cdrom 在大部分 iMac's 上需要是主要的 ide controller 的 slave (/dev/hdb),假如您更改ramimage上的fstab,nfs 伺服器會自動掛上。 3.7 為 partition table 做備份 分割區簡介
即使您只有一個 volume,硬碟會被分為分割區。標準的 MSDOS voulme 標簽允許有達四個 4 主要分割區,partition table 會儲存在 MBR (Master Boot Record)。這區域是實際硬碟的首 512 bytes,它亦包含啟動作業系統的一些源碼,這可以是 bootloader (LILO, grub, ...)。如果您的硬碟是 hda,主要分割區是 hda1, hda2, hda3 和 hda4,透過複製 MBR 來儲存主要的 partitions table 就很容易。
要突破四個主要分割區的限制,您要建立一個 extended partition。一個 extended partition 是包含很多分割區的主要分割區。例如,假如 hda2 有一個 extended partition,其 logicial partitions 會是 hda5, hda6, hda7, ... 即使您不使用四個主要分割區。這就是您有 hda5 裝置而沒有 hda4 的原因。extended partition 的問題是,如果沒有 table 可以很容易儲存,extended partition 有一個 linked list,hda5 會指向 hda6, hda6 會指向 hda7,如此類推,這會令儲存 extended partition的partition table 變得十分困難。
Partimage 可以儲存一個分割區的資料,但它不會儲存您的 partition table。如果您的硬碟有嚴重問題,您可能需要還原 partition table 及資料 - 有了分割區的影像可能不會幫到甚麼,這就是我們現在要為您示範儲存分割區影像的原因。 3.8 為分割區記錄做備份
我們會儲存所有分割區記錄 (primary 及 logicial 會出現在 extended partition)。在本例中,我們會假設 hda (第一個 IDE 硬碟) 要作備份。
首先我們以 DD 儲存 MBR (GNU 轉換和複製)
* cd /root * mkdir partition-backup * cd partition-backup * dd if=/dev/hda of=backup-hda.mbr count=1 bs=512
它會產生一個很小但很重要的檔案: 512 bytes 資料。現在我們會儲存 extended partitions 的資料:
* sfdisk -d /dev/hda > backup-hda.sf
sfdisk 是一項工具,在 util-linux 套件提供。
重要﹗您應該將這些檔案放在安全的地方 - 將它們複製至軟碟 (並保留一個備份﹗),或燒錄成 CD。將檔案放在安全的地方。不要留在硬碟內 - 如果硬碟有問題的話,您就無法存取這些檔案,分割區影像是無價的,要還原資料真的十分困難。 從備份還原分割區記錄
要小心,還原是很危險的行為 - 它會損毀資料﹗首先我們要還原 Master Boot Record:
* dd if=backup-hda.mbr of=/dev/hda
接著,以下是如何還原 extended partitions 記錄:
* sfdisk /dev/hda < backup-hda.sf
您可以重新啟動電腦完成步驟。
4. BOOT/ROOT 磁碟及 Eltorito 可開機 CD-Rom
會提供兩個磁碟,允許從軟碟使用分割區影像。開機碟是由最近的核心建立,這個核心包含很多檔案系統的支援,就如 ext2fs, vfat, ntfs 及 reiserfs。它允許您在很多檔案系統儲存/讀取影像檔案。核心亦包括很多驅動程式,例如 parallel ZIP drive、不同的 SCSI 界面,如此類推,允許使用多種類型的媒體讀取/寫入影像檔案。root disk 由 slackware root disk 建立,磁碟上有很少空間,因此一些常用的指令可能會不見了,但 Partition Image 的正常操作也已足夠。我們嘗試以 objcopy 從可執行的二進元檔案移除偵錯資料,而我們會以 gzip -9 壓縮 root disk,但所有程式庫及指令也需要太多磁碟空間。如果您需要的特定模組不包括在磁碟上,您可以編譯自己的模組,並替換您不需要的一些磁碟。不過要做到這樣,您需要從同一核心源碼編譯。檢查磁碟可以確定您使用的是正確的版本代碼,也可查看 FAQ 有關這個及其他選項。
自從版本 0.3.5 開始,提供由 slackware 7.0 建立的 eltorito CD-ROM,讓您可以無須安裝任何 Linux 系統,而從 CD-ROM 執行 Partition Image。對於一些不運行 Linux 的系統,或您要還原的硬碟是唯一的硬碟,這是很有用的。假設影像檔案夠小,其至可能將這些包含在同一隻 CD 內,令還原更加容易。 4.1 為何要用這些磁碟?
在某些情形下,您可能需要這兩隻軟碟,才能使用 Partition Image:
* 您想 partition image 在您唯一的 linux root partition 上運作,而您不能從使用這分割區的系統上執行 partition image。 * 您的電腦沒有安裝任何 linux 系統,而又想執行 partition image。 * 您不想編譯 Partition Image
4.2 如何建立這些磁碟?
當您下載了這兩個檔案 (開機磁碟影像及 root disk 影像),您要利用它們來建立軟碟,需要兩隻 1,44 MB軟碟。
在 Linux下:
* 插入開機碟 * 輸入: dd if=partimage-x.y.z-bootdisk-w.raw of=/dev/fd0 * 插入 root disk * 輸入: dd if=partimage-x.y.z-rootdisk-w.raw of=/dev/fd0
在 DOS/Windows 下:您需要下載 RAWRITE.EXE,可以在 Partition Image 網頁找到。(14 KB)
* 插入開機碟 * 輸入: rawrite -f partimage-x.y.z-bootdisk-w.raw -d a: * 插入 root disk * 輸入:rawrite -f partimage-x.y.z-rootdisk-w.raw -d a:
4.3 如何使用這些磁碟?
首先您必須插入開機碟,開啟電腦,等候數分鐘,當您看見 "VFS: Insert root floppy disk to be loaded into RAM disk and press ENTER" 的訊息,插入 root disk 再按 enter,會有指示為您解釋接著的步驟。 4.4 如何建立 eltorito 可開機 CD-Rom?
本部分會協助您從 partimage 網站提供的影像檔案建立可開機的 CD-Rom,接著您只需以這 CD-Rom 開機,就能執行 Partition Image,並儲存/還原分割區。您無須在電腦上安裝 linux 系統,或使用軟碟也可以使用 partimage。
您需要先下載 partimage-x.y.z-bootcd-w.img 檔案。 (2.88 MB)
1) 建立您主要的燒錄目錄,例如 "CDBurning"。
2) 往主要燒錄目錄,並建立名為 ".eltorito" 的子目錄,複製這目錄的 2.88 MB 影像檔案。
3) 複製主要 "CDBurning" 目錄中的所有其他檔案,例如您可以複製所有影像檔案,您可以放 650 MB 檔案在此。
4) 現在以 "mkisofs" 建立 ISO 影像,在 console 往主要燒錄目錄。輸入以下指令:mkisofs -o /tmp/cd-rescue.iso -R -V "Partition Image rescue" -v -J -T -d -D -b .eltorito/partimage-x.y.z-bootcd-w.img -c .eltorito/eltorito.boot -A "Partition Image"。
別忘記最後一點 ".",並以現有版本的名稱更新檔案名稱。
/tmp/cd-rescue.iso 是要建立的影像檔案,您可能需要大約 700 MB 空間才能建立這檔案。如果您的 root 目錄沒有足夠的空間,請選擇另一個臨時路徑。
mkisofs 會建立一個 650 MB 的影像檔案 (如果您沒有一隻完整的 CD 或許更少),通常要花 15 分鐘。
5) 是時候燒錄 CD 了,您可以使用 "cdrecord in console mode",或另一個 GUI,作為 gCombust。有關 cdrecord 的更多資料,可查看man page。
那6) 可開機的 CD-Rom 現在已準備好了。
您亦可以在 Windows 下利用 Nero 燒錄可開機的 CD-Rom,那是十分容易的:您只需要選擇影像檔案,再選 2.88 MB 軟碟。
5. FAQ (常見問題) 5.1 有沒有瀏覽器般的工具可以從檔案庫還原個別檔案?就如 Ghost Explorer 一樣?
抱歉, Partition Image 不是 Ghost 那種高層次的程式,Ghost 可以複製檔案,我們會有一個 tar.gz 檔案,還有其他詳細資料 (例如 boot sector)。但 PI 的運作卻十分低層次,就如 Drive Image:它複製磁碟中使用了的區塊,因此它不知道檔案會寫入在那兒﹐而且不允許在不還原的情況下在影像中看到檔案,但將來的版本可能做得到。我們會嘗試令 partimage 影像檔案可以掛載:磁碟,例如連環那些,可以讓我們將影像檔案作為 block device。如果您不知道如何編寫 block device drivers,請與我們聯絡。 5.2 假如我建立了一個分割區的影像檔案,我可以將它還原至一個未分割的硬碟嗎?
現有版本只能由分割區讀取/寫入,或讀取/寫入分割區。PI 不會使用 partition table。(linux 核心會讀取它,而 PI 可以直接使用 hda1, hda2, ...)。但我想在將來做到,讓使用者可以從清單中讀取分割區儲存/還原 (以名稱、大小、檔案系統、使用等...),如有需要還原或更改大小, PI 可以建立分割區 ... 5.3 我可以將它還原至一個較小或較大的分割區嗎?
您不能將影像還原至一個較小的分割區 (會出現錯誤),但還原至較大的分割區卻是可以的。在本例中,會有一些空間不見了 (假設 OS 不能使用所有容量)。PI 沒有更改大小的功能,但您可以利用其他功具做到,我亦想在將來加入這功能,可以允許還原至較小或較大的分割區。其實由於 PI 是低層次的程式,使用資料區塊,因此可以更改大小,但要落實執行卻是十分複雜的功能。有些檔案系統較容易調整大小 (如 NTFS, ext2, ReiserFS),可能會很容易,但要調整 FAT 的大小則十分困難。例如由 1,5 GB 更改為 3 GB,您必須由 FAT16 轉為 FAT32...利用 GNU Parted 做到。 5.4 我需要 ntfs有寫入支援,支援存在於 kernel-2.4, 但在 partimage bootdisk 未有啟用,怎樣可以用到呢?
NTFS 寫入支援,就如 UFS 寫入支援一樣,是危險的,而且只在試驗性的磁碟上支援。它可以損毀分割區及毀壞資料,因此在 partimage-bootdisk 沒有啟用,沒有留意的使用者可能會因為支援啟用了而失去資料。
假如您需要寫入支援,就需要使用另一隻bootdisk。請參看本 FAQ 的問題,講述了如何建立您自己的 bootdisk。 5.5 partimage-bootdisk/bootcd 的驅動程式不見了,我如何可以解決問題?
很多使用者因為不能使用網絡 (或另一些裝置)聯絡我們,在大部分情況下,問題來自 bootdisk/bootcd 不支援所有驅動程式。
partimage-bootdisk 及 partimage-rootdisk 兩者的空間也有限,我們不包括存在於核心源程式碼的所有驅動程式。因此只有最普遍的 NE2000 網絡卡及 AIC7xxx SCSI 驅動程式才支援,它支援很多裝置,但有些需要另一些驅動程式。例如 3COM 網絡卡並不支援,有很多方法可以解決這個問題:
* 您可以使用另一個 bootcd 發行本,有更多驅動程式,可以很容易建立您自己的選項。提供 eltorito 可開機 CD-Rom 的 partimage stable 版本的兩個計劃是:http://rescuecd.sourceforge.net/ 及 http://mkcdrec.ota.be/。 * 您亦可以以 slackware bootdisk 取代 partimage-bootdisk,Slackware 提供很多 bootdisks,而每隻都有一種驅動程式。例如有一隻是包含所有 SCSI 驅動程式,另一個有所有網絡驅動程式,另一個有 USB 支援。您可以選擇一種可以支援您的裝置,Slackare 8 bootdisk 的完整列表可以在這兒找到: ftp://ftp.slackware.com/pub/slackware/slackware-8.0/bootdsks.144/ 。 * 您可以編譯自己的核心,這是確定所有裝置也能支援的最佳方法。我們不會在此教您如何編譯核心,而會教您如何使用已編譯的 vmlinuz/bzImage 來建立一隻 partimage bootdisk。但首先在編譯核心時,您必須包含一些選項:在 block-devices 頁,您必須為最後四個選項選取 Yes: o Loopback device 支援 o Network block device 支援 o RAM disk 支援,預設磁碟大小為 40960 (這不是錯誤) o Initial RAM disk initrd 支援
在檔案系統中,您必須為 minix FS 支援選擇 Yes,在可載入模組支援網頁,您必須選擇 No 以停用模組。在編譯模組後,您要取得 bzImage。您必須輸入三個指令,令同樣的東西作為官方的 partimage-bootdisk 影像:: o rdev bzImage /dev/fd0 o rdev -r bzImage 49152 o rdev -R bzImage 0
5.6 當我使用 bootdisk 時,螢幕出現 09000900090009000900090009000 的錯誤。
我從 bootdisk 開機時出現了問題。
我從 partimage-0.3.5-bootdisk-1.raw 檔案建立了開機碟,開機時只看到:
090009000900090009000900090009000900090009000900090009000900090009000900090 0090009000900090009000900090009000900090009000900090009000900090009000900090 0090009000900090009000900090009000900090009000900
整個畫面都是。
當您在 Netscape 以 ascii 模式下載檔案時會出現這個問題,可嘗試使用 FTP 或另一項工具:輸入 wget AdressOfTheFileToDownload 5.7 如何為 SSL 的支援產生 certificate/key 檔案
首先執行:
* openssl req -new -outform PEM > partimaged.csr * openssl rsa -in privkey.pem -out partimaged.key * openssl x509 -in partimaged.csr -out partimaged.cert -signkey partimaged.key
接著將 partimaged.key 及 partimaged.cert 放在合適的目錄並將它們 chmod 為 0600 5.8 如何在 chroot 環境執行partimaged
* 在 chroot 目錄建立一個 etc 子目錄,將以下檔案放進去: o /etc/ld.so.conf o /etc/ld.so.cache o /etc/passwd o /etc/shadow o directory /etc/terminfo * 建立一個 lib 子目錄,將以下檔案放進去: o /lib/libc.so.6 and its linked file o /lib/ld-linux.so.2 and its linked file o /lib/libnsl.so.1 and its linked file o /lib/libnss_compat.so.2 and its linked file * 建立一個 dev 子目錄並執行在其中執行 mknod tty c 5 0 * 如有需要,亦可以將 partimagedusers, partimaged.key 及 partimaged.cert 放在適當的位置
如果 partimaged --chroot {您的目錄} 成功,您可以透過 `partimaged -D --chroot {your directory}' ,將 partimaged 在 chrooted 環境運行為 daemon。 5.9 我使用 XFS,partimage 也會考慮如 ACLs 和其他擴展性屬性嗎?
Partimage 會為分割區建立一個實際的複本,它不是簡單的 "tar.gz" 檔案,換句話說,它所做的工作與 dd 相同,但忽略了複製所有空白的區塊,以節省空間及時間。所有不是標示為空白的區塊會被複製,然後所有東西也會保留 (bootsector 資料,所有可以存在的屬性 ...) 它甚至保留磁碟上的檔案位置,接著 vmlinuz 檔案不會被移動,LILO 會繼續運作。 5.10 partimage 會給您以下這些:以 DD 清除空白的區塊,並以 DD 複製(dd if=/dev/zero of=/mnt/filetmp ; rm /mnt/filetmp ; dd if=/dev/xxx | gzip > image_file.gz)?
* 1. Partimage 更快。您不用先等候 "dd if=/dev/zero",在複製時不會讀取空白的區塊。然後如果使用了分割區的 20 %,partimage 會避免存取空白區域的 80 % * 2. 有 GUI (圖像使用者界面)。它有很多優點:您可以看到剩餘時間,複製的百分比, ... 下一版本的 Qt GUI會更好更易使用 * 3. Partimage 可以在 linux 核心不支援的檔案系統上執行 (穩定,寫入支援),例如 NTFS, BSD ffs, 在未裝修補程式的核心的 XFS/JFS。要執行 "dd if=/dev/zero",您需要在 linux 上有寫入支援 * 4. Partimage 的設計容易使用,而且可代替商業軟件如 Ghost, Drive Image, ... 而使用者不用知道很多指令 * 5. Partimage 有很多選項,例如 -V 可在不夠空間時建立一個新的 volume,DD 會顯示錯誤並放棄 * 6. 網絡支援允許從用戶端儲存影像檔案,而不用設定用戶端及伺服器 NFS (網絡檔案系統)。當實現了multicast ,它會允許從一台伺服器還原 X 用戶端,而 DD 不能做這類 multicast 的複製 * 7. 我們會提供 rootdisk 及 bootcd,如果電腦上未安裝 linux,您可以用它來開機。它們包含了所有所需的東西 ( 0.7 中的 LZO 壓縮,對於大型檔案十分有用)。您無須在每個 boot rescue 系統有齊所有這些工具。
6. 分割區影像內部 6.1 有關 NTFS 支援 使用者備忘
NTFS 檔案系統十分複雜 (系統檔案以普通檔案來執行),正因如此,在 Partition Image 上不完全支援。這表示如果系統檔案十分零碎,或不是在標準位置寫入,當嘗試儲存 NTFS 分割區時可能會出現問題。接著您可能會在操作開始時出現警告訊息: The NTFS support is experimental 。
但在大部分情況下,也應該運作無誤。最好就是嘗試儲存您的 NTFS 分割區,如果出現錯誤訊息就應該停止,如果沒有錯誤,則可以繼續。假如可以儲存分割區,在嘗試還原時也不會有問題 (除非有錯)。 給開發的詳細資料
為 Partition Image 新增 NTFS 支援的唯一困難,就是很難讀取 $Bitmap 系統檔案。事實上,所有 $MFT, $Bitmap, ... 的系統檔案都會當作一般檔案寫入磁碟。因此要讀取 bitmap,就要執行所有用來讀取檔案的源碼。
$Bitmap 是包含 bit 的地圖檔案,每個 NTFS 分割區的 cluster 都可以使用或不用。在 bitmap 中每個 cluster 都有一個 bit ,如果 cluster 沒被使用是 0,已使用就是 1。
Partition Image 需要讀取 bitmap,知道使用了哪個 clusters。然後您可以只複製分割區中已使用的 clusters。
有了 boot sector,我們可以讀取 $MFT 的 FILE RECORD,接著必須讀取 $Bitmap 檔案的 FILE RECORD,但現在我們只能在不變的位置讀取這記錄,如果 $MFT 被分割了,這個位置可能有錯。
1) 第一個問題:如何取得$Bitmap 檔案的 File Record 的位置?
假如我們有這檔案記錄,可以檢查檔案名稱,並讀取執行清單,得知哪一個 clusters 有 bitmap 資料,但我們有另一個問題:如果 $bitmap 分割得很小,執行清單不能在基本的檔案記錄寫入,而我們就必須使用 "attribute list" 取得另一個執行清單...
2) 第二個問題:如何讀取 "attribute list" ,令它能夠讀取所有包含 $bitmap 資料的 cluster...
沒有 $Bitmap 檔案,我們必須儲存所有 clusters,即使沒用的也要儲存... 那不是一個好的方法。
3) 壓縮是另一個問題:假如 $bitmap 檔案壓縮了怎麼辦? 6.2 2 GB 檔案限制
linux 2.2 核心不支援大於 2 GB 的檔案,因此您的影像大小不能超過這限制。利用 2.4 核心可以解決這問題,因該核心沒有這種限制。您亦可以將影像分割為多個小檔案 (例如 1,9 GB ),您也需要最新的 glibc 2.2 或更新的版本。 6.3 有關分割區讀取/寫入
Partition Image 的使用十分低層次,這表示在儲存/還原資料時,Partition Image 可建立 block/cluster 複本。它可以讀取和寫入該分割區的實際區塊,它不會使用 linux 核心 (檔案系統支援) 讀取資料,這有很多優點:
* Dumping 速度快,因為無須在 indexes (FAT, inode table, ...) 和檔案內容之間尋找,當檔案被分割時,不會在區塊之間尋找。 * 它真的會複製檔案系統的所有資料:檔案內容、boot sector、inodes, ... 在儲存/還原時絕對沒有作出修改。 * 它會保留檔案位置,例如您的核心影像位置會被儲存,而 LILO 在還原分割區後也不會出問題。
但以這種方法,就必須落實所有檔案系統支援,在還原時要調整分割區的大小就很困難,要從影像提取檔案也沒有可能。 6.4 開發人員資料 64 bits numbers
為了要避免檔案格式將來的限制,很多數字也以 64 bits 寫入,例如檔案大小,64 bits 變數必須宣告為 QWORD,這個在 partimage.h 中定義為 unsigned long long int 。 保留資料作將來之用
為了在將來加入其他資料,在 main header 和每個檔案 header 都有空白空間作將來之用,而不會令檔案文件不能兼容。 變數名稱
變數名稱用以下格式寫入: PositionTypeName:
* Position: g_ 為整體變數,m_ 為 class members,local 變數則沒有 * Type: b 代表,n 代表 int,qw 代表 QWORD,sz 代表以 ASCII格式的 NULL terminated,c 代表 char,f 代表 FILE* stream,dw 代表 DWORD, ... * Name: 變數名稱,每個字以大寫字母為首
例子:
* m_bArchiveOpened: KFileCoderDoc (m_) 的 member,為 bool type (b),name = "ArchiveOpened" * dwLength: local,為 DWORD type (dw),name = "Length" * g_szArchivePath: 整體變數 (g_),null terminated ASCII string (sz),name = "ArchivePath"
這樣有很多優點,當您看到一個變數,就會知道它的類型 (int, bool, FILE *),而且知道它是 global 的,local 的或是member。
同樣地,如果兩個變數有同樣的名稱,也可解決問題。例如,我們有:
bool CImage::m_qwCRC;
QWORD CImage::get_qwCRC() { return m_qwCRC; }
void CImage::setState(bool bState) { m_bState = bState; }
取代:
bool CImage::CRC;
void CImage::setState(bool state2) { state = state2; }
7. 開發人員資料 7.1 建立 BOOT/ROOT/Eltorito 影像 建立 BOOT disk
* 以 bzImage 加上很多硬碟支援及檔案系統 (ext2, fat, reiser, ntfs) 編譯最新的核心 (預設不使用 DMA) * 使用影像上的 rdev :rdev bzImage /dev/fd0 rdev -r bzImage 49152 (49152 = ask disk, and read from 0) rdev -R bzImage 0 (令 root 可讀取及寫入,並允許登入) * dd if=bzImage of=/dev/fd0
建立 ROOT disk
* dd if=/dev/zero of=image count=3733 bs=1k * mkfs.minix 影像 * mount -o loop -t minix image /mnt/image * 從二進元可執行程式庫和程式移除偵錯資料,以節省空間:strip program 分享的程式庫是:objcopy --stripdebug library.so * 複製所有檔案往 /mnt/image * umount /mnt/image * cat image | gzip -9 > image.gz * dd if=image.gz of=/dev/fd0
建立 Eltorito bootcd image
更新現有的影像是最佳的做法,檔案大小為 2.88 MB (2949120 bytes),包含了 FAT 檔案系統。
首先掛載影像: mount -o loop bootcd.img /mnt/bootcd
然後以新的核心代替 vmlinuz (它可以是 bootdisk.raw),並以另一個 root 代替 initrd.img (可以是 rootdisk.raw)。
您需要 syslinux 令這影像可以開機,比使用 LILO更容易。
現在以 umount /mnt/bootcd 卸載 bootcd 影像。
執行 losetup /dev/loop0 bootcd.img,執行 syslinux syslinux -s bootcd.img ,並拆開 loop 裝置:losetup -d /dev/loop0 7.2 測試 partimage 檔案系統支援
在這部分,我們將講述如何測試 partimage 的檔案系統支援,接著不會解釋如何測試所有選項 (壓縮、分割),但只會講述如何確定檔案系統的資料能成功儲存及還原,而結果就是原有檔案的複本。本測試的目標是要知道,如果您在還原後取得有效分割區及 所有檔案,或遇到錯誤,資料就會失去。
如果在較難的檔案系統上建立,測試會更有用。例如在分割的檔案系統上會較容易遇到錯誤,令分割的分割區上的測試更能為開發者提供更好的資料,因為即使不是最好的環境,它也可以運作。同樣地,在有空間的分割區上測試會更有趣。
假如您想建立一個測試分割區,最好的是以檔案填滿所有空間,並在其後刪除某些檔案,以建立分割式的檔案系統。
測試分割區複本的方法有兩種: a) 利用兩個大小相同的測試分割區
您需要有多餘的磁碟空間儲存影像及建立新的分割區,我們會利用 partimage 將現有的分割區複製至另一個分割區,因此需要兩個分割區:
* 原有的分割區:它只能讀取 (在本例中是 /dev/hdc5) * 目的地分割區:在還原時會被覆寫,並與原有的分割區比較 (在本例中是 /dev/hdc6)
步驟:
* 下載及安裝 Partition Image 最新的版本:不要再引起已解決的錯誤。 * 建立現有分割區的影像 (在本例中是 /dev/hdc5),這是我們會複製的原有分割區。 * 在硬碟上建立與原有分割區相同大小的空白分割區。 (在本例中是 /dev/hdc6) * 以 dd if=/dev/zero of=/dev/xxx 抹掉新的分割區 (在本例中是 /dev/hdc6) * 在新建立的分割區上還原影像。 (在本例中是 /dev/hdc6) * 要進行測試,可嘗試使用新建立的分割區 (/dev/hdc6),將它掛載,如果這是 ext2fs 分割區,以 e2fsck /dev/hdc6 執行檔案系統檢查,如果是 FAT 的,則在 Windows 下執行 scandisk。您可以新的檔案與原有分割區的檔案作比較,先掛載兩個分割區 (例如在 /mnt/part1及/mnt/part2),並執行以下指令:diff -ur /mnt/part1 /mnt/part2 。如果螢幕沒有顯示任何東西,則表示分割區的檔案沒有分別,那麼就成功了。如果螢幕有東西顯示,則表示檔案有分別,您可以將錯誤報告 (以及 partimage-debug.log 檔案)傳送給 debug mailing list,提供所有詳細資料 (分割區大小、狀態 (使用量百分比:空白、完滿)、檔案系統、詳細資料 (很多細小檔案,只有 5 個檔案))。
b) 只使用一個分割區及 aide
首先您需要 AIDE (進階入侵偵測環境),那是免費的軟件。
8. 為計劃貢獻
所有人也歡迎為 PartImage 計劃作出貢獻,只須電郵作者,告訴他您可以做些甚麼。在計劃中作出任何改變前,請先下載最新的版本:別在舊版本作任何變更﹗
不一定是編程員才可貢獻,很多其他工作也可以做到,您可以查看 TODO 檔案取得更詳細的資料。 8.1 撰寫文檔
原有的文檔必須以英文撰寫,因為這是最重要的語言,之後會翻譯為另一些語言。文檔以 SGML 語言編寫,那不是太困難,與 HTML 相似。因此您需要 sgml-tools,在所有 linux 發行本也會有。所有文檔也只會以 sgml 檔案編寫: index.sgml ,接著我們會以 sgml2html index.sgml 產生 HTML頁面,請不要直接編寫任何 HTML 頁面。 8.2 譯者 (從英語翻譯)
兩個項目要由英語翻譯過來:
* 程式的字串:使用者在螢幕上看到的 * SGML 文檔
如果您翻譯程式的字串,您需要翻譯一個檔案:partimage.pot。這檔案是由 GNU xgetext 為翻譯而設,不包含任何源程式碼。它可以透過很多工具來翻譯,例如 kbabel 或 PO mode 的 emacs。 8.3 測試者 為甚麼要測試?
測試 Partition Image 是十分重要的工作,讓我們可以錯誤改正過來,製作更好質素的軟件。請向 debug mailing list (partimage-debug@lists.sourceforge.net) 報告所有出現的錯誤。測試程序在開發者部分有提及:測試 partimage 的檔案系統支援。 8.4 撰寫 C++ 源碼
透過編寫新的 C++ 源碼,您可以協助我們改正錯誤,或新增功能。您需要所有標準的工具,如 GCC, GDB, ...
9. 版權 PartImage Copyright 2000 François Dupoux, fdupoux@partimage.org
由 Free Software Foundation 發佈的 GNU Free Documentation License, Version 1.1 或更新版本條款下,允許複製、發佈及/和修改本文件,而不能有任何部分變更、前置文字及後置文字。
版權的複本包含在套件頂部。 |