Clonezilla 再生龍

自由與開放原始碼的硬碟備份,還原對拷軟體

將Clonezilla Live放在硬碟中

November 16 2018 09:16:38.


本文件說明如何將Clonezilla live放到一個已經有其他作業系統存在的硬碟中。
這裡我們使用grub這個開機管理程式當範例。你必須把Clonezilla live的所有檔案放在grub支援的檔案系統分割區中,例如FAT, ext2/3, reiserfs等。//注意// grub不支援NTFS的檔案系統,所以你不可以把Clonezilla live的檔案放在NTFS分割區中。 如果你沒有另外的分割區可以放置Clonezilla live的檔案,你可以考慮用類似gparted這樣的程式來將你的分割區縮小然後劃分出另外一個分割區。本例中我們假設你已經有一個FAT的分割區/dev/hda4,準備要放置Cloenzilla live。以下說明如何做:
  1. 用硬碟中的作業系統來開機,例如用GNU/Linux來開機。
  2. 將/dev/hda4掛載成/mnt,你可以用這個指令做到: mount /dev/hda4 /mnt
  3. 下載Clonezilla live的zip檔,將所有檔案解開到/mnt,確認檔案是放在目錄/mnt/下,並且維持原來的目錄架構。例如COPYING是在/mnt/目錄下,不在/mnt/下的任何一個子目錄中。你可以用這個指令做到: "unzip clonezilla-live-*.zip -d /mnt" (將clonezilla-live-*.zip取代成你下載的檔案名稱).
  4. 將/mnt/下的目錄"live"改成其他目錄名稱,例如"live-hd"。你可以用這個指令做到: "cd /mnt; mv live live-hd"
  5. 若是你的開機管理程式是grub版本1.x的話,編輯你的grub設定檔/boot/grub/menu.lst,增加以下的選單:

    ================================================
    title Clonezilla live on harddrive
    root (hd0,3)
    kernel /live-hd/vmlinuz boot=live union=overlay live-config noswap nolocales edd=on nomodeset ocs_live_run="ocs-live-general" ocs_live_extra_param="" keyboard-layouts= ocs_live_batch="no" locales= vga=788 ip=frommedia nosplash live-media-path=/live-hd bootfrom=/dev/hda4 toram=filesystem.squashfs
    initrd /live-hd/initrd.img
    boot

    ================================================

  6. 如果你的開機管理程式是grub版本2.x (grub-pc)的話,以Debian Squeeze or Ubuntu 9.10為例,你可以修改 /etc/grub.d/40_custom,加上類似這樣的部份:

    ================================================
    menuentry "Clonezilla" {
    set root=(hd0,4)
    linux /live-hd/vmlinuz boot=live union=overlay live-config noswap nolocales edd=on nomodeset ocs_live_run=\"ocs-live-general\" ocs_live_extra_param=\"\" keyboard-layouts=\"\" ocs_live_batch=\"no\" locales=\"\" vga=788 ip=frommedia nosplash live-media-path=/live-hd bootfrom=/dev/hda4 toram=filesystem.squashfs
    initrd /live-hd/initrd.img
    }

    ================================================
    注意: 這邊grub 2的開機參數,為了要顯示雙引號"在/proc/cmdline 中,雙引號"前面都要加上\。
    接著重跑update-grub2。(感謝Louie Chen提供此說明)

    此外,也可以直接在grub2中使用單一個clonezilla live的iso檔 (感謝來自grml的補丁檔)。例如,將下載下來的clonezilla-live-1.2.12-10-i686-pae.iso放在 /dev/sda5 分割區目錄/isos/下,然後編輯grub2 custom的檔案 /etc/grub.d/40_custom 如下:

    ================================================
    menuentry "Clonezilla live" {
    set root=(hd0,5)
    set isofile="/isos/clonezilla-live-1.2.12-10-i686-pae.iso"
    loopback loop $isofile
    linux (loop)/live/vmlinuz boot=live union=overlay live-config noswap nolocales edd=on nomodeset ocs_live_run=\"ocs-live-general\" ocs_live_extra_param=\"\" keyboard-layouts=\"\" ocs_live_batch=\"no\" locales=\"\" vga=788 ip=frommedia nosplash toram=filesystem.squashfs findiso=$isofile
    initrd (loop)/live/initrd.img
    }

    ================================================
    然後記得再次執行update-grub2。

//注意//:
  1. 上述的grub選單中我們另外放了3個參數,(1) live-media-path=/live-hd 表示我們將檔案放在目錄/live-hd中,而不是預設的/live目錄中。 (2) bootfrom=/dev/hda4表示我們強迫開機要從第一個硬碟的第四個分割區(/dev/hda4)中的檔案來開機,這樣可以避免萬一你有另外一個Clonezilla live放在光碟機中而被誤用。(3)參數"toram=filesystem.squashfs"表示所有Clonezilla live的程式會被複製到記憶體中,不會將/dev/hda4一直掛載著。所以後續你在使用這個Clonezilla live的時候,可以將/dev/hda4掛載成Clonezilla的印象檔目錄。
  2. 記得配合你下載下來的Clonezilla live zip檔案中的參數來修改,相關參數可以在/mnt/syslinux/syslinux.cfg中查到。你使用的Clonezilla live所用的參數,有可能和上述的參數不同,例如vmlinuz路徑,"username", "hostname"等等都可能不同。
  3. 如果你沒有將"live"的目錄名稱修改成"live-hd",你有可能會遇到使用光碟版或者是USB隨身碟版的Clonezilla live開機時,會和這個硬碟版中的版本相混淆的問題。相關的討論可以參考: