跳到主要內容

Clonezilla Live in DRBL

源起

某一次我將DRBL Server從舊型的主機板移到新型的主機板上,過程中遇到了不少奇怪的問題。可能是由於新主機板用到比較新的晶片且速度較快。這是我移機一開始所碰到的兩個問題:

  • 我掛載硬碟到備份還原使用的/home/partimag/上。Client在備份還原時,有時/home/partimag會是掛載之前的資料,導致找不到對應的images。後來我透過mount指令,發現/home在/home/partimag後才mount。所以我透過修改client的/etc/fstab,並將mount /home給註解,又稱了好幾天。
  • 回原時常出現unable to find target partition “sda1”,還原就因此中斷。這都發生在RHEL系列的作業系統要還原到其它種類作業系統時。在那之後檢查/dev/sda1的確是不存在的,但卻出現/dev/dm-0與/dev/dm-1。
和DRBL作者Steven討論我發現的情況後,猜測可能是Ubuntu Kernel反應不及與平行開機的問題,於是他建議我更新Ubuntu Kernel且透過Clonezilla Live的方式去做備份還原。

使用

要使用Clonezilla Live 模式,一樣執行/opt/drbl/sbin/drblpush -i去做config。照之前的選擇直到選擇DRBL的模式,讓我們選擇3: Clonezilla Live模式:
接著選擇要使用的版本。由於我們的版子都使用比較新的晶片,因此我選擇用Ubuntu-based的Clonezilla Live image:
在之後的DRBL設定步驟中,它會自行去下載最新的Clonezilla Live image下來安裝。

問題

在上述配置後,一般的User應該都可以正常使用了。但是我卻又碰到兩個問題(多災多難):

  1. 網路不通,無法透過NFS掛載Server上的image資料夾。後來透過dmesg | grep eth指令檢查網卡相關資訊,並發現它的script會在多張網卡情況下發生問題。在發生這問題後,Steven也很有意思,沒多久就改了新版給我,確實也可以解決這個問題。更新它給我的iso,是透過這個指令:
    /opt/drbl/sbin/drbl-ocs-live-prep -i clonezilla-live-1.2.11-47-i686-pae.iso
  2. 雖然現在多張網卡雖然都被找到,但依然無法掛載NFS。我的網路卡eth0是公司網路,eth1是DRBL網路,從螢幕上發現它只啟動了eth0就去掛載eth1網段的nfs,當然會有問題!後來我透過修改它xpe的設定,多加入了live-netdev,並指定為eth1。主要原因是/scripts/live-premount/select_eth_device會去確認這個參數。
    APPEND initrd=Clonezilla-live-initrd.img boot=live hostname=oneiric config quiet noswap nolocales edd=on nomodeset ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_keymap="" ocs_live_batch="no" ocs_lang="" video=uvesafb:mode_option=800x600-16 nosplash noprompt netboot=nfs nfsroot=10.68.0.254:/tftpboot/node_root/clonezilla-live/ ocs_server="10.68.0.254"
一直這樣執行好幾個月都非常的順利。直到最近又因為手賤去更新Clonezilla Live才又無法正常執行,出現錯誤是sudo locales tzdata upstart-tty keyboard-configuration initramfs-tools unil-linux login openssh-server umountfs.。只要在pxe append內加入ip=frommedia就解決了。

總結

用了Clonezilla Live後,果然順了很多。這次變更也讓我知道: 在穩定的時候,不要亂改設定與硬體阿!

後記-20181223

為了支援新板子,在更新20180812-bionic clonezilla live後,發生This Live System image failed to boot的問題。這個問題是由於較新的linux kernel會根據網卡的種類去顯示裝置名稱,原本的eth*會變成eno*,導致指定live-netdev會有問題。經過實驗,只要加入以下參數,就可以讓名稱維持eth開頭:
net.ifnames=0
在順利讀取clonezilla live後,會卡在keyboard configuration的畫面,可以加以下參數讓它直接使用預設keybaord layout:
keyboard-layouts=NONE
除此之外,由於我有兩張網卡,但我發現drbl使用非預期的網卡ip去mount nfs。針對這個問題,可以修改/opt/drbl/conf/drbl-ocs.conf: (新版本可能要改/etc/drbl/drbl-ocs.conf)
ocs_prerun_for_pxe_ocs_live="mount -t nfs 10.68.0.254:/home/drbl_partimag/ /home/partimag"
它預設會使用第一張網卡的IP。

目前使用的參數

要修改/tftpboot/nbi_img/pxelinux.cfg/default:

APPEND initrd=Clonezilla-live-initrd.img boot=live hostname=bionic config quiet noswap nolocales edd=on nomodeset ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_keymap="" ocs_live_batch="no" ocs_lang="" video=uvesafb:mode_option=800x600-16 nosplash noprompt netboot=nfs nfsroot=10.68.0.254:/tftpboot/node_root/clonezilla-live/ ocs_server="10.68.0.254" live-netdev=eth1 ip=frommedia net.ifnames=0 keyboard-layouts=NONE
APPEND initrd=Clonezilla-live-initrd.img boot=live union=aufs noswap noprompt nolocales vga=788 netboot=nfs nfsroot=10.68.0.254:/tftpboot/node_root/clonezilla-live/ ocs_server="10.68.0.254" net.ifnames=0 live-netdev=eth1 keyboard-layouts=NONE

2023-01-13

 APPEND initrd=Clonezilla-live-initrd.img boot=live hostname=oneiric config noswap nolocales edd=on nomodeset ocs_live_extra_param="" ocs_live_keymap="NONE" ocs_live_batch="no" ocs_lang="en_US.UTF-8" nosplash noprompt netboot=nfs nfsroot=10.68.0.254:/tftpboot/node_root/clonezilla-live/ ocs_server="10.68.0.254" live-netdev=eth1 ip=frommedia net.ifnames=0 biosdevname=0 keyboard-layouts=NONE ocs_daemonon="ssh" ocs_prerun="mount -t nfs 10.68.0.254:/home/drbl_partimag/ /home/partimag"

Reference

留言

這個網誌中的熱門文章

PostgreSQL - Unattended installation on windows

Introduction 要將別人軟體包裝到自己軟體中,不可或缺的東西就是Unattended installation。以Unattended installation來說,我們可以選擇透過Installer的silent mode安裝,也可以透過把目標軟體做成portable的版本。本篇文章分享這兩種方法,教導大家如何將PostgreSQL透過Unattended installation方式安裝到目標系統成為service。 Note. 本篇以PostgreSQL 10.7為例。 Install with installer Tips 安裝程式或反安裝程式的參數,除了可以直接上官網搜尋Installation User Guide以外,也可以直接使用help參數查詢: postgresql- 10.7 - 2 -windows-x64.exe --help Windows安裝程式主要有EnterpriseDB與BigSQL兩種。BigSQL版本安裝元件是透過網路下載且支援參數不如EnterpriseDB版本多,以我們需求來說,我們傾向於使用EnterpriseDB版本。接下來分享給大家安裝與反安裝方法。 Installation @ echo off set INSTALL_DIR =C:\postgres10 set INSTALLER =postgresql- 10.7 - 2 -windows-x64.exe   rem options for installation set SSMDB_SERVICE =postgresql- 10 set MODE =--unattendedmodeui none --mode unattended   set DB_PASSWD =--superpassword postgres set DB_PORT =--serverport 5432   set SERVICE_NAME =--servicename % SSMDB_SERVICE %   set PREFIX =--prefix "%INSTALL_DIR%" set DATA_DIR =--datadir "%INSTALL_DIR%\data"   set OPTIONS =

How to install RIDE on Windows?

Introduction 多年沒在Windows上開發RobotFramework,趁著這次整理一下RIDE安裝方法。 目前RIDE最新版本與Python對應版本如下: (3.6 < python <= 3.11) Install current released version (2.0.8.1) with: pip install -U robotframework-ride 安裝Python 直接到Python官網找尋最新的3.11版本,我使用3.11.9: link 。安裝就是一直下一步而已。 安裝wxPython 每次安裝RIDE最困難的都是wxPython。看了一下 官網 描述,我就姑且相信一下: 接著進入下 載頁面 就有安裝教學。基本上就是到Python目錄下的Scripts直接執行以下command: pip install -U wxPython 安裝RIDE 接著就如RIDE官網所說,執行以下command: pip install -U robotframework-ride 啟動RIDE 直接在相同目錄下執行ride就可以啟動了,你也可以直接在桌面建ride連結,加快下次啟動時間。 沒想到這次這麼順利就安裝完成了。因為我是使用java去啟動robot framework,就不特別講要怎麼使用pip安裝robot framework了。

Hello World!

即將要搬家,因此舊網頁內容將慢慢轉移至Blogger。 如果要存取舊網頁,可以使用以下連結: https://wiki.tonylin.idv.tw/dokuwiki/doku.php