Clonezilla logo Clonezilla Live - 免安裝的單機版還原系統
免安裝的單機版還原系統
說明:適合單台電腦備份或是還原

[版權說明] [作者] [有關] [如何製作] [如何使用] [帳號與管理] [進階模式] [誌謝]

2008/Jul/22


一、版權說明

本文版權屬於全體作者所有,且以 GNU FDL 授權合約發佈。在遵守 GNU FDL 授權合約的情況下,您可以複製、散佈,以及修改本文件。唯請保持作者列表的完整,若您修改過此份文件,也請在作者列表中加入您的大名。
同時請注意本文件沒有任何擔保,若因本文件而產生任何直接或間接的損失,本文作者群均不負任何法律及道義上的責任。

二、作者列表

蕭志榥 (steven _at_ nchc org tw)
黃國連 (klhaung _at_ gmail com)
王順泰 (c00wht00 _at_ nchc org tw)
孫振凱 (ceasar _at_ nchc org tw)
王耀聰 (jazzwang _at_ nchc org tw)
蔡育欽 (thomas _at_ nchc org tw)

三、Clonezilla Live說明

搭配DRBL使用的Clonezilla乃是適合來大量部署作業系統的時候使用,不過這樣的限制是一定要有一台DRBL伺服器,而且要被備份的電腦一定要能網路開機。由於GNU/Linux Live CD的成熟,將Clonezilla和GNU/Linux Live CD結合,達成免安裝就能備份還原單台電腦就非常實用。因此,本實驗室結合Debian Live與Clonezilla,另外開發一個Clonezilla Live套件,專門就是用來單台電腦的還原與備份。Clonezilla Live可以放在光碟上,或者USB隨身碟等開機媒體。當然,Clonezilla live這樣的環境就不適合用來大量還原一個電腦教室,而且所能存的印象檔也可能會受限於開機媒體的儲存空間的大小。不過,如果要被備份的電腦可以連接網路,透過網路磁碟機,例如sshfs或是Samba(網路芳鄰),開機媒體的儲存空間大小的限制就可以打破,我們可以直接把印象檔的存取放在網路磁碟機上。

四、如何製作Clonezilla Live

製作Clonezilla live的基本步驟就是下載Clonezilla live的檔案,然後把它放到開機裝置(CD或者USB隨身碟)上。有兩種檔案格式可以使用,iso與zip。前者給CD用,後者給usb隨身碟或者隨身硬碟使用。下載前建議先參考修改紀錄:穩定版, 測試版, 實驗版。此外,已知問題可以參考這裡: 穩定版, 測試版, 實驗版
  • 光碟版(iso檔案)的可以在這裡下載: 穩定版測試版實驗版
    下載後,把該ISO檔案燒到光碟片上,就可以用它來開機。現在你可以參考下一個章節來使用Clonezilla live
  • USB隨身碟版(zip檔案)的可以在這裡下載: 穩定版測試版實驗版
    下載後,可以在微軟Windows或是Linux機器,依照下列步驟就可以用它來開機(這裡的方法僅適用於隨身碟分割區中的檔案系統是FAT,如果是其他的檔案系統,你會需要grub或是其他的開機管理程式)。
    • 使用微軟windows來製作:
      • 方法1(使用協助的圖形工具程式):
          下載這裡的程式,來協助你做這個live USB隨身碟。在微軟windows中安裝後,就可以執行來一個一個步驟產生可開機的Clonezilla live 隨身碟。
        方法2(大部分手動):
          (註:以下的說明主要修改原來在此網頁的文件: http://www.pendrivelinux.com/2007/01/02/all-in-one-usb-dsl. 感謝http://pendrivelinux.com的PDLA.)
          *****************************
          警告! 警告! 警告!
          *****************************
          警告: ***絕對不要***在你原本的硬碟上執行Makeboot.bat程式,該程式是被設計來要在USB隨身裝置上執行。錯誤的執行可能會造成你原本的微軟windows無法開機。
          1. 若你不太確認該USB存取裝置是否能開機,建議下載HP-USB格式化程式,安裝後來格式化你的USB存取裝置為FAT或是FAT32。尤其你的USB存取裝置有開機瑕疵的話,這個程式能處理得當。微軟windows下的格式化程式沒有此程式強。
          2. 把clonezilla-live.zip解開到你的USB存取裝置,請維持目錄結構,例如Makeboot.bat 要在該USB存取裝置目錄的最上層,亦即例如G:\Makeboot.bat等。
          3. 在微軟windows上點選你的隨身裝置,然後點Makeboot.bat兩下來執行它。這個步驟請特別注意,一定要由隨身裝置所在的硬碟執行,錯誤的執行可能會造成你原本的微軟windows無法開機。
          4. 依照畫面上的步驟與說明執行。
    • 使用GNU/Linux來製作:
      1. 將隨身碟插到GNU/Linux的機器上,等個約5秒鐘,然後執行dmesg,可以看出隨身碟的分割區,這裡我們假設是/dev/sdb1,並且檔案系統是FAT,並且假設USB隨身碟被自動掛載成/media/usb/。如果沒有被自動掛載的話,可以執行類似這樣的指令來掛載:"mkdir -p /media/usb/; mount /dev/sdb1 /media/usb/"。
      2. 將該zip檔解開,複製到隨身碟中,務必維持目錄架構,例如Makeboot.bat 在隨身碟的最上層,你可以用類似這樣的指令做到:"unzip clonezilla-live-1.0.10-8.zip -d /media/usb/"。
      3. 你的GNU/Linux上必須要有syslinux 3.60(含)以後的版本。以本例而言,你可以執行syslinux -s /dev/sdb1。注意!這個指令請小心使用,錯誤的使用有可能造成你原來的作業系統無法開機
      4. 有些隨身碟出廠時並沒有放置開機磁區的程式,如果是這樣,會無法開機。你可以額外執行"cat /usr/lib/syslinux/mbr.bin > /dev/sdb" (/usr/lib/syslinux/mbr.bin檔案是隨著syslinux安裝而來的,這個檔案在每個Linux套件有可能放置的路徑不同,你可能需要你的Linux系統裡尋找一下這個mbr.bin)。注意!這個指令請小心使用,錯誤的使用有可能造成你原來的作業系統無法開機
      5. 此外,如果你做出來的USB隨身碟無法開機的話,請檢查該隨身碟(1)分割表中是否至少有一個分割區,(2)該分割區要標示成可開機,(3)以及分割區的分割是在磁柱的邊界上(cylinder boundary)
現在你可以參考下一個章節來使用Clonezilla live

五、使用說明

把前一步驟做好的開機媒體,放到你要備份的電腦中,然後把它開機,記得一定要用該裝置(USB裝置或是CD)開機。例如如果你是用USB隨身碟,你要把該隨身裝置插到你要使用的電腦,將該電腦重新開機,設定由USB-HDD或是USB-ZIP開機。如果必要的話,可以把BIOS中的開機第一優先設定為USB-HDD或是USB-ZIP等。
  • 這是開機畫面快照:
    Clonezilla Live boot menu

    選單中的第一個"Clonezilla live"就是預設模式,進入800x600的framebuffer模式,可以提供正體中文環境來儲存與還原。
    第二個選項"Clonezilla live (To RAM. Boot media can be removed later)"的功能和第一個一樣,差別在於選用此選項,所有需要的檔案都會被複製到記憶體中,所以開完機後,就可以把開機媒介(光碟或是USB隨身碟)退去。
    如果你不需要中文環境,或者因為進入framebuffer而畫面亂掉,你可以選第三個"Clonezilla live (no framebuffer)"來儲存與還原。
    第四個選項"Clonezilla live (failsafe mode)"是用在未能順利開機時,例如你機器硬體的ACPI無法被Clonezilla Live中的Linux核心所支援時,可以試看看選用這個。
    第五個選項"Local operating system in harddrive (if available)"是讓你用來開本機硬碟中的作業系統(如果存在的話)。這個選項和Clonezilla live無關,只是額外提供的功能。
    第六個選項"FreeDOS"是用來讓你的機器開機進入FreeDOS。這個選項和Clonezilla live無關,只是額外提供的功能。
    第七個選項"Memory test using Memtest86+"是用Memtest86+來做記憶體測試用的。這個選項和Clonezilla live無關,只是額外提供的功能。
    第八個"Network boot via etherboot"是可以利用Etherboot來做網路開機,如果你的主機板沒有支援PXE網路開機,你又想要用網路開機,可以使用這個。這個選項和Clonezilla live無關,只是額外提供的功能。

  • 用Clonezilla live開機後會出現一些對話的視窗,依照執行即可。以下是兩個主要的畫面:
    Clonezilla Live setup ocsroot menu

    ///注意/// Clonezilla的印象檔事實上是放在一個目錄中,也就是印象檔名稱就是該目錄的名稱。舉例而言,如果你存的時候,給一個印象檔名稱為2007-05-NOVISTA,那麼就會把所有的資料存在/home/partimag/2007-05-NOVISTA/。在那個目錄中,會有MBR,硬碟分割表以及分割區的資料等。因此,當你要還原印象檔的時候,在掛載/home/partimag的時候,要選對裝置或者指定對路徑,亦即/home/partimag/這個目錄下,要有2007-05-NOVISTA這個目錄。

    Clonezilla Live setup ocsroot menu

      依照Clonezilla Live的對話視窗,就可以協助掛載Clonezilla的印象檔家目錄,以及執行整個備份還原動作。如果過程中你要手動掛載Clonezilla的印象檔目錄,以及手動啟動,可以執行以下步驟:

    1. 執行"sudo su -"來變成管理者(root)
    2. 準備另外一個可以寫的裝置或空間(儲存用),或者某個裝置中已經有Clonezilla的印象檔(還原用),然後把它掛載成/home/partimag (注意! 如果你的開機媒介是可以寫的,例如隨身碟或者你選用To RAM的開機選項,/home/partimag是一個連結檔連結到/live_media/home/partimag,你必須先這樣做"rm -f /home/partimag; mkdir -p /home/partimag"來移除那個連結檔並且建立掛載點目錄/home/partimag):
      例如:如果你要用再生龍來存/dev/hda的檔案,並且把存下來的印象檔放在/dev/hdb1。這樣你必須把/dev/hdb1掛載成/home/partimag。你可以使用指令"mount -t auto /dev/hdb1 /home/partimag"來掛載。如果/dev/hdb1是NTFS的話,要使用"ntfs-3g /dev/hdb1 /home/partimag"來掛載,這樣才能寫入/dev/hdb1。另外,Clonezilla live系統也支援sshfs與smbfs,例如,你可以用以下指令來掛載遠端的ssh伺服器:
      sshfs ACCOUNT@SSH_SERVER:/ABSOLUTE_PATH /home/partimag
      例如,你可以把你遠端的ssh伺服器192.168.100.254這樣掛載:
      sshfs root@192.168.100.254:/work/pool /home/partimag
      如果你要掛載遠端samba(網路芳鄰)伺服器192.168.200.254,可以這樣掛載:
      mount -t cifs -o username=your_user_name //192.168.200.254/work/smb /home/partimag
      **注意** 不要用smbfs,請用cifs,因為cifs的相容性比較好。使用smbfs的話,會導致你存起來的印象檔有問題。
    3. 如果你需要使用支援正體中文的終端機,可以執行"tw-bterm"
    4. 再來就是執行"ocs-live"來進入Clonezilla的選單畫面,然後依照畫面執行就可以來做儲存或是還原了。

    以上過程可以觀看這個錄影,請點選下面的圖來播放(需flashplayer plugin),或是下載此avi檔來觀看。本檔案為了節省空間與觀看時間,重複的畫面就不存檔,因此畫面有些快,請見諒。

  • 相關文章:嘉義縣網吳老師撰寫了非常詳細的文章,說明如何使用Clonezilla live來備份微軟windows環境,請參考這裡>

  • 六、帳號與管理

    Clonezilla live有兩個內建的帳號: (1) 帳號"casper"擁有sudo權限,密碼是"live", (2) 管理者帳號"root",沒有密碼,因此你不能直接登入成root,要變成root,要先登入成casper之後,執行"sudo su -"來轉換成root。。注意!舊版的Clonezilla live (命名方式Clonezilla-live-2007XXXX),密碼是"drbllive"。
    當Clonezilla live開機的時候,ssh服務不會自動啟動。且/etc/hosts.deny的設定不會擋住任何遠端來的ssh連線。如果你要允許遠端的機器可以透過ssh來登入,你必須先執行"/etc/init.d/ssh start"來啟動ssh服務。
    如果你允許遠端連線,為了安全考量,務必用指令"passwd"先修改casper以及root的密碼。

    七、進階模式

    有兩種進階模式可以使用:
    模式一:透過Clonezilla的相關程式來產生Clonezilla live,把它放在光碟片或是USB隨身碟上,你也可以把一個已經存在Clonezilla伺服器上的image直接透過程式,塞到Clonezilla live上,這樣,直接用那片光碟片或是隨身碟就可以還原某台機器。
    模式二:自己客製化的程式運用在clonezilla live中。
    • 模式一:使用Clonezilla live光碟來客製化產生你要的Clonezilla live,或者用DRBL/Clonezilla伺服器來產生Clonezilla live(適用於DRBL版本1.7.9-45(含)之後,Clonezilla版本2.1.0-18(含)之後):
    • 以下的執行所需要的工作環境必須是Clonezilla live開機然後進入命令列模式的狀態下或者在DRBL伺服器上。所以如果你沒有DRBL server的話,直接用Clonezilla live來開機是最方便的一種作法。步驟如下:
      1. Clonezilla live開完機,選擇進入命令列模式
      2. 執行"sudo su -"來切換成root權限
      如果你有DRBL伺服器的話,上述步驟1就不需要了,只要切換成root就可以了。
      依照不同的用途,你可以透過Clonezilla的程式來做到:
      • 製作還原專用的光碟版Clonezilla live,同時把Clonezilla伺服器已經有的印象檔塞進去,舉例,要把Clonezilla印象檔sarge-image放到光碟iso案:
        ///注意/// Clonezilla的印象檔事實上是放在一個目錄中,也就是印象檔名稱就是該目錄的名稱。舉例而言,如果你存的時候,給的印象檔名稱為sarge-image,那麼Clonezilla會把所有的資料存在/home/partimag/sarge-image/目錄中。
        1. 如果是在Clonezilla live的狀態下,先執行"prep-ocsroot"這個程式來掛載你的Clonezilla印象檔的位置。
        2. cd /home/partimag,或者換到其他任何可以寫的目錄,確認空間夠大即可。
        3. 然後類似這樣執行來把/home/partimag中的印象檔sarge-image放到iso檔中:
            /opt/drbl/sbin/ocs-iso sarge-image
          這樣就會產生一個clonezilla-live-sarge-image.iso的光碟印象檔,你可以把該檔案燒到CD或是DVD上。
          上述的光碟片,如果你要做一個批次化處理的還原iso檔,也就是已經預先選好一些選項,例如設定好鍵盤設定等,讓該片該片光碟開機後只要確認後即可開始還原某個印象檔,可以這樣執行:
            /opt/drbl/sbin/ocs-iso -g zh_TW.UTF-8 -t -k NONE -e "-g auto -b -c restoredisk sarge-image hda" sarge-image
          這個指令表示將sarge-image塞到產生的光碟中。光碟開機後採用批次模式(-t),使用中文環境"(-g zh_TW.UTF-8),鍵盤設定採用預設(-k NONE),開機後ocs-sr執行時使用參數"-g auto -b -c restoredisk sarge-image hda"將sarge-image還原到hda中(-e "-g auto -b -c restoredisk sarge-image hda")。上述指令會產生一個clonezilla-live-sarge-image.iso,所做出來的光碟,開機後只要確認是否要還原,就可以開始做了。
          如果你的Clonezilla server上有多個image,你要塞更多的image進CD/DVD,可以類似這樣執行:
            /opt/drbl/sbin/ocs-iso sarge-image etch-image
          注意!由於mkisofs的限制,ocs-iso無法處理單一檔案大於4.5 GB,所以您的印象檔如果太大的話,就無法使用此方式。
          更多的參數可以由"/opt/drbl/sbin/ocs-iso --help"來查詢。
      • 製作一般用途的光碟版Clonezilla live,這個光碟可以拿來儲存或是還原,首先你要切換到可以放產生iso檔的工作目錄,空間大小要足夠(例如cd /home/partimag),然後:
          /opt/drbl/sbin/ocs-iso -s
        這樣就會產生一個clonezilla-live.iso的光碟印象檔,你可以把該檔案燒到CD或是DVD上。更多的參數可以由"/opt/drbl/sbin/ocs-iso --help"來查詢。有了這個clonezilla-live.iso做的開機片,在要備份的電腦上開機後,你還需要準備一個儲存空間來存取印象檔。用法後面將會說明。
      • 製作還原專用的USB隨身碟版Clonezilla live,同時把Clonezilla伺服器已經有的印象檔塞進去,舉例,要把Clonezilla伺服器上已經有的sarge-image印象檔放到該USB隨身碟:
        • 先執行"sudo su -"切換成管理者(root)
        • 將USB隨身碟插到Clonezilla伺服器上,然後等待約5秒鐘,打"dmesg"來看該隨身碟的分割區是哪個地方,例如該隨身碟是/dev/sdb1。這時候如果你的GNU/Linux自動把那個分割區掛載上來,請把它卸載。可以執行"df -h"來看該裝置有沒有被掛載,有的話,可以執行類似這樣"umount /dev/sdb1"來卸載,或者在Gnome/KDE中,對著裝置按右鍵來卸載。
        • 該USB隨身裝置必須是要已經格式化,如果還沒格式化,以你的裝置是/dev/sdb1為例,你可以用
          mkfs.vfat -F 32 /dev/sdb1
          或是
          mkfs.ext3 /dev/sdb1
          來格式化。
          注意!!!上述步驟會將該分割區資料全部清除,請小心執行,錯誤的動作有可能會讓您原本的主機無法使用或是資料遺失。
        • 再來,
          1. 如果是在Clonezilla live的狀態下,先執行"prep-ocsroot"這個程式來掛載你的Clonezilla印象檔的位置。
          2. cd /home/partimag,或者換到其他任何可以寫的目錄,確認空間夠大即可。
          3. 然後類似這樣執行來把/home/partimag中的印象檔sarge-image放到usb 隨身碟中:
            /opt/drbl/sbin/ocs-live-dev -d /dev/sdb1 sarge-image
            注意!!!裝置名稱/dev/XXX請務必由上述步驟查清楚,指定錯誤的裝置有可能會讓你的伺服器資料毀損。 這樣就會產生一個可以開機來還原的USB隨身碟,內含一個Clonezilla的印象檔sarge-image。更多的參數可以由"/opt/drbl/sbin/ocs-live-dev --help"來查詢。
            如果你要做一個批次化處理的Clonezilla live隨身碟,也就是已經預先選好一些選項,例如設定好鍵盤設定等,讓該隨身碟開機後只要確認後即可開始還原某個印象檔,可以這樣執行:
          /opt/drbl/sbin/ocs-live-dev -d /dev/sdb1 -g zh_TW.UTF-8 -t -k NONE -e "-g auto -b -c restoredisk sarge-image hda" sarge-image
          注意!!!裝置名稱/dev/XXX請務必由上述步驟查清楚,指定錯誤的裝置有可能會讓你的伺服器資料毀損。
          這個指令表示將sarge-image塞到USB隨身碟中,該隨身碟開機後,會採用批次模式(-t),使用中文環境"(-g zh_TW.UTF-8),鍵盤設定採用預設(-k NONE),開機後ocs-sr執行時使用參數"-g auto -b -c restoredisk sarge-image hda"將sarge-image還原到hda中(-e "-g auto -b -c restoredisk sarge-image hda")。上述指令所做出來的隨身碟,開機後只要確認是否要還原,就可以開始做了。
      • 製作一般用途的USB隨身碟版的Clonezilla live,這個USB隨身碟版可以拿來儲存或是還原:
        • 將USB隨身碟插到Clonezilla伺服器上,然後等待約5秒鐘,打"dmesg"來看該隨身碟的分割區是哪個地方,例如該隨身碟是/dev/sdb1。這時候如果你的GNU/Linux自動把那個分割區掛載上來,請把它卸載。你可以執行"df -h"來看該裝置有沒有被掛載,有的話,可以執行類似這樣"umount /dev/sdb1"來卸載,或者在Gnome/KDE中,對著裝置按右鍵來卸載。
        • 該USB隨身裝置必須是要已經格式化,如果還沒格式化,以你的裝置是/dev/sdb1為例,你可以用
          mkfs.vfat -F 32 /dev/sdb1
          或是
          mkfs.ext3 /dev/sdb1
          來格式化。
          注意!!!上述步驟會將該分割區資料全部清除,請小心執行,錯誤的動作有可能會讓您原本的主機無法使用或是資料遺失。
        • 執行
          /opt/drbl/sbin/ocs-live-dev -s -d /dev/sdb1
          注意!!!裝置名稱/dev/XXX請務必由上述步驟查清楚,指定錯誤的裝置有可能會讓你的伺服器資料毀損)。
        這樣就會產生一個可以開機來還原或是儲存的USB隨身碟。更多的參數可以由"/opt/drbl/sbin/ocs-live-dev --help"來查詢。

    • 剛剛做的是內含一個clonezilla的印象檔,開機後就會直接出現要讓你還原的選單。要觀看畫面錄影可以點選下面的圖來播放(需flashplayer plugin),或是下載此avi檔來觀看。本檔案為了節省空間與觀看時間,重複的畫面就不存檔,因此畫面有些快,請見諒。

      • 模式二:
        • 你可以自己寫一個命令稿程式(script), 例如"custom-ocs",然後用來和Clonezilla live整合。你可以在Clonezilla live (1.0.3-20版本或之後)或者是DRBL伺服器(版本1.7.12-1或是之後)上找到一個參考檔案/opt/drbl/samples/custom-ocs。這個檔案可以讓使用者開啟clonezilla live之後,選擇 (1) 備份/dev/hda1(或者/dev/sda1)的印象檔到到/dev/hda5 (或者/dev/sda5) (2) 還原/dev/hda5(或者/dev/sda5)中的印象檔到/dev/hda1(或/dev/sda1).
        • 準備好你自己的命令稿程式,可以這樣放到Clonezilla live中:
        • /opt/drbl/sbin/ocs-iso -g zh_TW.UTF-8 -k NONE -s -m ./custom-ocs
          這樣可以產生CD/DVD用的iso檔。或者
          /opt/drbl/sbin/ocs-live-dev -g zh_TW.UTF-8 -k NONE -s -c -m ./custom-ocs
          來產生USB隨身碟用的zip檔。
        • 在以上的例子中,"-g zh_TW.UTF-8"表示要使用中文(統一碼),"-k NONE"表示不改變鍵盤配(預設是美式鍵盤)。其他相關的選項,可以執行"/opt/drbl/sbin/ocs-iso -h"或是"/opt/drbl/sbin/ocs-live-dev -h"來查詢。

      八、誌謝

      本程式的開發過程中,承蒙台北縣大豐國小林子忠老師與花蓮縣網蕭維紀老師,以及藏鏡人LC等人協助測試與提供建議,特此感謝。