Clonezilla 再生龍

自由與開放原始碼的硬碟備份,還原對拷軟體
Clonezilla Live - 免安裝的單機版還原系統
免安裝的單機版還原系統
說明:適合單台電腦備份或是還原

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

2016/May/17


一、版權說明

本文版權屬於全體作者所有,且以 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隨身碟,硬碟或者PXE伺服器)上。有兩種檔案格式可以使用,iso與zip。前者給CD用,後者給usb隨身碟或者隨身硬碟使用。
  • 光碟版(iso檔案)
      下載後,把該ISO檔案燒到光碟片上(記得要選用燒錄映象檔的方式,舉例而言,在MS Windows下,以Nero Burning ROM為例,你要選'燒錄映像檔"來燒這個iso檔),就可以用它來開機。
  • USB隨身碟或隨身硬碟版(zip檔案):
      將Clonezilla live放在USB隨身碟或者隨身硬碟,可以參考這裡
  • 硬碟版:
      將Clonezilla live放在一個已經有作業系統存在的硬碟中可以參考這裡
  • PXE版:
      將Clonezilla live放在PXE伺服器上來讓用戶端電腦透過PXE網路開機使用Clonezilla live,可以參考這裡
現在你可以參考下一個章節來使用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的選單畫面,然後依照畫面執行就可以來做儲存或是還原了。
  • 相關文章:嘉義縣網吳老師撰寫了非常詳細的文章,說明如何使用Clonezilla live來備份微軟windows環境,請參考這裡

六、帳號與管理

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

七、進階模式

有兩種進階模式可以使用:
模式一:製作還原光碟或者還原隨身碟
模式二:自己客製化的程式運用在clonezilla live中。
  • 模式一:製作還原光碟或者還原隨身碟:
    • 先準備好印象檔後,用Clonezilla live開機,然後依照精靈(wizard)來掛載/home/partimag (在那目錄下已經存在你要還原的image),然後選擇"recovery-iso-zip",繼續依照精靈的提示,就可以做出用來還原的Clonezilla live iso或者zip檔案了。有這樣的iso或者zip檔,就可以用同樣方法來燒到光碟機上,或者放到USB隨身碟中然後讓它可開機,這樣就可以做出還原光碟或者還原隨身碟。
    • 如果你喜歡用指令來做這樣的事情,可以依照以下的做法。以下的執行所需要的工作環境必須是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檔中:
            ocs-iso sarge-image
          這樣就會產生一個clonezilla-live-sarge-image.iso的光碟印象檔,你可以把該檔案燒到CD或是DVD上。
          上述的光碟片,如果你要做一個批次化處理的還原iso檔,也就是已經預先選好一些選項,例如設定好鍵盤設定等,讓該片該片光碟開機後只要確認後即可開始還原某個印象檔,可以這樣執行:
            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,可以類似這樣執行:
            ocs-iso sarge-image etch-image
          注意! 有可能產生的iso檔大於你的CD/DVD的大小限制,所以您的印象檔如果太大的話,有可能無法使用此方式。
          更多的參數可以由"ocs-iso --help"來查詢。
      • 製作還原專用的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 隨身碟中:
            ocs-live-dev -d /dev/sdb1 sarge-image
            注意!!!裝置名稱/dev/XXX請務必由上述步驟查清楚,指定錯誤的裝置有可能會讓你的伺服器資料毀損。 這樣就會產生一個可以開機來還原的USB隨身碟,內含一個Clonezilla的印象檔sarge-image。更多的參數可以由"ocs-live-dev --help"來查詢。
            如果你要做一個批次化處理的Clonezilla live隨身碟,也就是已經預先選好一些選項,例如設定好鍵盤設定等,讓該隨身碟開機後只要確認後即可開始還原某個印象檔,可以這樣執行:
          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隨身碟。更多的參數可以由"ocs-live-dev --help"來查詢。

  • 模式二:
    • 你可以自己寫一個命令稿程式(script), 例如"custom-ocs",然後用來和Clonezilla live整合。你可以在Clonezilla live (1.0.3-20版本或之後)或者是DRBL伺服器(版本1.7.12-1或是之後)上找到一個參考檔案/usr/share/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開機,然後進入命令列模式,並且執行"sudo su -"來變成管理者root
    • 掛載一個空間成為/home/partimag/來當作工作目錄。你可以使用指令"prep-ocsroot"來幫助你掛載,或者使用mount指令來做到。例如"mount /dev/sda1 /home/partimag"來掛載/dev/sda1成為/home/partimag
    • 將你自己準備好的命令稿程式(custom-ocs)放到目錄/home/partimag/中
    • cd /home/partimag
    • 執行以下指令:
    • ocs-iso -g zh_TW.UTF-8 -k NONE -s -m ./custom-ocs
      這樣可以產生CD/DVD用的iso檔。或者
      ocs-live-dev -g zh_TW.UTF-8 -k NONE -s -c -m ./custom-ocs
      來產生USB隨身碟用的zip檔。
    • 在以上的例子中,"-g zh_TW.UTF-8"表示要使用中文,"-k NONE"表示不改變鍵盤配(預設是美式鍵盤)。其他相關的選項,可以執行"ocs-iso -h"或是"ocs-live-dev -h"來查詢。

八、誌謝

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