Clonezilla による自動化された二次開発

Regeneration Dragonは起動パラメータを変更することで自動化を実現し、電源投入後に設定したアクションを自動的に実行させることができます。

ブートパラメータの概要

ブート パラメーターは、Linux システムによって一部のシステムの動作を変更するために使用されます。これにより、特定の特殊機能を有効または無効にすることができます。
異なるブート ローダーは異なるブート パラメータを使用します。

  1. MBR マシンでは、Clonezilla live を使用して CD からブートします。このとき isolinux がブート ローダーであるため、構成ファイルは Clonezilla live のこのファイルにあります/syslinux/isolinux.cfg
  2. MBR マシンでは、Clonezilla live を使用して USB フラッシュ ドライブから起動します。このとき syslinux がブート ローダーであるため、構成ファイルは Clonezilla live のこのファイルにあります/syslinux/syslinux.cfg
  3. MBR マシンでは、Clonezilla ライブを使用して PXE から起動します。このときのブート ローダーは pxelinux で、構成ファイルは PXE サーバー上にあります。例として、PXE サーバーとして DRBL を取り上げます。状況に応じて、他の場所にある場合もあります。/tftpboot/nbi_img/pxelinux.cfg/defaultPXE サーバーの管理または設定について。
  4. UEFI マシンでは、Clonezilla live を使用して CD またはフラッシュ ドライブから起動します。現時点では grub2 がブート ローダーであるため、構成ファイルは Clonezilla live のこのファイルにあります/boot/grub/grub.cfg
  5. UEFI マシン上で、Clonezilla live を使用して UEFI ネットワークから起動します。この時点では grub2 がブート ローダーであり、構成ファイルは uEFI ネットワーク ブート サーバー上にあります。例として DRBL を uEFI ネットワーク ブート サーバーとして取り上げます。他の場所にもあります/tftpboot/nbi_img/grub/grub.cfg。UEFI ネットワーク ブート サーバーの管理者の設定によって異なります。

Linux の起動後、上記で設定したブート パラメータが に表示されます/proc/cmdline。Regeneron
は Debian と Clonezilla の組み合わせに基づいています。したがって、ブート パラメータは 2 つあります。

  1. Debian live-bootおよびlive-configパラメータ
  2. Regeneron の起動パラメータ。これらのパラメータの形式は、ocs_live_run、ocs_live_extra_param、ocs_live_batch などの「ocs_*」です。
    1. ocs_live_runこれは、Clonezilla ライブがオンになった後に実行されるメイン プログラムの名前であり、任意のコマンドを指定できます。一般的なものは、「ocs-live-general」、「ocs-live-restore」、または入力したものです。

例えば:

ocs_live_run=“ocs-live-general”

//注意//スクリプトで「sudo」コマンドを使用する必要がある場合があります。または、次のように指定することもできます: ocs_live_run="sudo bash /my-clonezilla" (英語環境のみ空白を含めることができ、中国語環境では空白が必要になるため) jfbterm を入力すると、空白の後のパラメータを読み込むことはできません)

  1. ocs_live_extra_paramこのパラメータは、ocs_live_run="ocs-live-restore" の場合にのみ ocs-sr に渡されます (ocs-live-general やその他のコマンドではありません)。したがって、このパラメータは実際に ocs-sr にパラメータを供給します。

例えば:

ocs_live_extra_param=“--batch -c restoredisk sarge-r5 sda”
  1. keyboard-layoutsパラメータはキーボードに対応するように事前設定できます (詳細については live-config を参照してください)

例えば:

keyboard-layouts=NONE (使用美式键盘)
keyboard-layouts=us(使用美式键盘)
keyboard-layouts=fr(使用法国键盘)
  1. localesパラメータでデフォルトの言語を指定できます(詳細については live-config を参照してください)。

例えば:

locales=zh_CN.UTF-8(使用简体中文)
  1. [URI(Uniform Resource Identifier)](https://en.wikipedia.org/wiki/Uniform_Resource_Identifier)「ocs_repository」 を使用してミラー ソース ライブラリを指定します

Clonezilla ライブでサポートされる URI:
[dev|smb|smb1|smb1.0|smb2|smb2.0|smb2.1|smb3|smb3.0|smb3.11|smb3.1.1|ssh|nfs|nfs4|http| https |ram]: [//[user:password@]host[:port]][/]path
「ocs_repository」を通じてミラー ソース ライブラリを指定するには 5 つの方法があります。

  - local device:dev:///dev/partition,dev:///LABEL|UUID|PARTLABEL|PARTUUID=uuid|label

LABEL、UUID はファイル システムからのものであり、PARTLABEL または PARTUUID は GPT パーティション テーブル内のパーティションからのものです。

  - nfs server: nfs|nfs4://host/path
  - samba server: smb://[domain;user:password@]host/path
  - 指定samba_server的版本:(smb1|smb1.0|smb2|smb2.0|smb2.1|smb3|smb3.0|smb3.11|smb3.1.1)://[domain;user:password@]host/path
  - ssh server: ssh://[user@]host[:port]/path(URI在ssh这部份无法指定密码)
  - webdav server: http|https://host[:port]/path(URI在webdav这部份无法指定使用者名称与密)

例えば:

ocs_repository=“dev:///dev/sdf1“
ocs_repository=“dev:///LABEL=my-img-repo“
ocs_repository=“nfs://192.168.100.254/home/partimag/“
ocs_repository=“nfs4://192.168.100.254/partimag/”
ocs_repository=“smb://administrator:[email protected]/images/“
ocs_repository=“smb://my_domain;jack:[email protected]:445/images/“
ocs_repository=“ssh://[email protected]/home/partimag/“
ocs_repository=“http://192.168.100.180/share“

上記のブート パラメータを使用すると、Regeneron はブート後に ocs_repository で指定されたイメージ ソース ライブラリを自動的にマウントします。パスワードが必要な場合は、パスワードの入力を求められます。
//注記//

  - 若使用网络磁碟机当作镜像源库,记得“ocs_prerun”来“dhclient”或者“ip”这个参数来设定网络。
  - 你也可以用“ocs_prerun”来跑对应的指令来挂载镜像源库,若你要自己指定更多挂载的参数使用ocs_prerun会比较灵活。
  1. Clonezilla live の電源をオンにした後、http(s)、ftp、tftp、およびローカル URL から tarall/zip/sh 形式のイメージを取得し、/opt/ ディレクトリで開くには、次のように「ocs_preload*」を使用できます。
    1. 1 を入力して、tarball/zip/shell スクリプト ファイルを取得します。
ocs_preload=[http|https|ftp|tftp|file]://[HOST_NAME_or_IP_ADD]/path/to/your_tarball_or_script

サポートされている拡張子は次のとおりです: tar.gz、tgz、tar.bz2、tbz2、tar.xz、txz、zip、.sh

     2. 第2类,使用cifs/nfs网络磁盘目录上的镜像,使用挂载的方式:
ocs_preload=“mount -t cifs //YOUR_CIFS_SERVER/path/to/ /path/to/mounting_point”
ocs_preload=“mount -t nfs YOUR_CIFS_SERVER:/path/to/ /path/to/mounting_point”

サポートされているネットワーク ドライブは、cifs (Network Neighborhood/samba) および nfs 2/3/4 です
。たとえば、次のブート パラメータを使用します。

ocs_preload=tftp://192.168.100.254/my-custom.tgz
ocs_preload=http://192.168.200.254/my-custom.tar.xz
ocs_preload=file:///lib/live/mount/medium/my-custom.tar.bz2
ocs_preload=tftp://192.168.100.254/my-custom.sh
ocs_preload=“mount -t cifs //192.168.120.2/images/ /tmp/cifs -o user=administrator,password=yourpasswd”
ocs_preload=“mount -t nfs 192.168.120.254:/home/partimag/script/ /tmp/nfs -o ro”

複数の ocs_preload* パラメータを使用できます。たとえば、最後に数字を追加します。

ocs_prealod=…ocs_preload1=…ocs_preload2=

このようにして、Clonezilla ライブがオンになると、ocs_preload で指定されたイメージが自動的にダウンロード/コピーされ、解凍されて配置されます/opt/ミラーリング モードも自動的に設定され、実行できるように 755 フォーマットに設定されます。
また、/opt/{overwrite-all-boot-param,overwrite-part-boot-param}これら 2 つのイメージが存在する場合 (ocs_preload からダウンロード)、それを使用して特定のブート パラメータをオーバーライドすることができます。イメージ「overwrite-all-boot-param」はすべてを上書きするために使用され/proc/cmdline、「overwrite-part-boot-param」は/proc/cmdline削除された。特に、これらの「ocs_*」パラメータ。この機能は、二次開発を行う場合に特に便利ですが、ブート パラメータの構成ファイル (CD 上では読み取り専用であるため、isolinux.cfg など) を変更するのが簡単ではない、または不可能な場合があります。
たとえば、「overwrite-all-boot-param」のファイルの内容は次のようになります。

boot=live union=overlay username=user config components quiet noswap edd=on nomodeset nodmraid locales=en_US.UTF-8 keyboard-layouts=us ocs_live_run=“ocs-sr -x -um beginner --batch -p reboot -scs -scr -sfsck -senc”ocs_live_extra_param=“”ocs_live_batch=no vga=788 ip= net.ifnames=0 nosplash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1.

「overwrite-part-boot-param」の内容は次のようになります。

locales=ja_JP.UTF-8 keyboard-layouts=fr ocs_live_run=“ocs-sr -x -scr -scs”ocs_live_batch=“no”

//知らせ//

  - 若使用网络磁碟机当作镜像源库,记得“ocs_prerun”来“dhclient”或者“ip”这个参数来设定网络。
  - 你也可以用“ocs_prerun”来跑对应的指令来挂载镜像源库,若你要自己指定更多挂载的参数使用ocs_prerun会比较灵活。
  1. KMS モードでフォント名とサイズを指定するには、「ocs_fontface」と「ocs_fontsize」を使用できます。

例えば:

ocs_fontface=“TerminusBold”
ocs_fontsize=“24x12”

Debian または Ubuntu システム/etc/default/console-setupのマニュアルを参照できますconsole-setup(5)

  1. ocs_debug (または ocs-debug) は、Clonezilla ライブ関連のデバッグ命令を実行する前にコマンド ラインを入力するために使用されます。
  2. ocs_daemonon、ocs_daemonoff、ocs_numlk、ocs_capslk。

最初の 2 つのパラメータは、特定のサービスを開始または停止するために使用されます。たとえばocs_daemonon=“ssh”、ssh サービスは起動時に自動的に開始されます。最後の 2 つのパラメータは、Number Lock と Caps Lock を有効または無効にするキーです。例:ocs_numlk=onナンバー ロック キーを自動的に開きます。

  1. ocs_prerun、ocs_prerun1、ocs_prerun2... およびその他のパラメータを使用すると、メインの Clonezilla プログラムが実行される前に、関連する命令を実行できますocs_prerun=“/live/image/myscript.sh”実行する命令がさらにある場合は、その順序に従います。ocs_prerun=…,ocs_prerun1=…,ocs_prerun2=….パラメータが 10 個を超える場合は、ocs_prerun01、ocs_prerun02...、ocs_prerun11 を順番に実行することを覚えておいてください。
  2. ocs_savedisk_prerun、ocs_saveparts_prerun、ocs_restoredisk_prerun、および ocs_restoreparts_prerun: これら 4 つのブート パラメータは、Clonezilla ライブでそれぞれ savedisk、saveparts、restoredisk、restoreparts を実行する前にいくつかのコマンドを実行するために使用されます。たとえば、ocs_restoredisk_prerun=“echo running ocs_restoredisk_prerun”Clonezilla ライブでアクション「restoredisk」を実行する前に、まずコマンド「echo running ocs_restoredisk_prerun」を実行します。
  3. ocs_savedisk_postrun、ocs_saveparts_postrun、ocs_restoredisk_postrun、および ocs_restoreparts_postrun: これら 4 つのブート パラメータは、Clonezilla ライブでそれぞれ savedisk、saveparts、restoredisk、restoreparts を実行した後にいくつかのコマンドを実行するために使用されます。例: ocs_restoredisk_postrun=“echo running ocs_restoredisk_postrun「Clonezilla live で "restoredisk" を実行した後、このコマンドを実行します: "echo running ocs_restoredisk_postrun"。
  4. ocs_overwrite_postaction このブート パラメータには比較的高い実行順序があり、ocs-sr の「-p」パラメータおよび ocs-onthefly の「-pa」パラメータで指定されたアクションをオーバーライドできます。ocs_overwrite_postaction に指定できるパラメータは次のとおりです。[choose|reboot|poweroff]-on-[restoredisk|restoreparts|savedisk|saveparts|clone]たとえば、choose-on-restorediskClonezilla live が復元ディスク アクションを実行した後、ocs-sr の "-p" パラメータと " -pa" パラメータで指定されたアクション。
  5. echo_ocs_prerun および echo_ocs_postrun: このパラメータは、ocs_prerun および ocs_postrun 命令を画面に表示するために使用されます。これら 2 つのパラメータで指定された命令は、実行前に表示されます。ただし、セキュリティ検査などの何らかの理由でスマート データを表示しない場合は、「no」を選択すると、ocs_prerun または ocs_postrun で指定されたコマンドが画面に表示されないようにすることができます。

例えば:

echo_ocs_prerun=“no”
  1. ocs_live_run_tty は、ocsliverun を実行する端末 (tty) を指定するために使用されます。ocs_live_run のデフォルトの端末 (tty)。プリセットocs __ru nの端末 ( tt y )。デフォルトでは、 ocs_live_run は /dev/tty1 (つまり、最初の端末) でのみ実行されます。シリアル端末 ttyS0 を使用する場合は、live-getty と console=ttyS0,38400n81 を追加できます。

//知らせ//

  - 如果`live-getty console=ttyS0,38400n81`被指定在开机参数里,ocs_live_run_tty会尊重ttyS0,即使其他的值被指定到ocs_live_run_tty也会被略去。
  - 使用此值时,建议同时指定locales与keyboard-layouts。
  1. ip、このパラメータはネットワークの設定値を指定するためのものです。Clonezilla live では、live-initramfs の修正バージョンが使用されるため、DNS サーバーを指定することもできます。その形式は次のとおりです: ip=イーサネット ポート、IP アドレス、ネットマスク、ゲートウェイ、DNS。たとえば、ネットワークカード eth0 の IP アドレスが 10.0.100.1、ネットマスクが 255.255.255.0、ゲートウェイが 10.0.100.254、DNS サーバーが 8.8.8.8 であることを指定したい場合は、次のように指定できます。これ:
ip=eth0:10.0.100.1:255.255.255.0:10.0.100.254:8.8.8.8

3 つ以上のネットワーク カードがある場合は、次のように「,」を使用して区切ります。

ip=eth0:10.0.100.1:255.255.255.0:10.0.100.254:8.8.8.8,eth1:192.168.120.1:255.255.255.0:192.168.120.254::
  1. また、「live-netdev」(はい、ocs_live_netdev ではありません)を使用して、PXE ブート用の NIC を指定して filesystem.squashfs ファイルシステムを取得することもできます。これは主に 2 つ以上のネットワーク カードに適用されます。たとえば、live-netdev=“eth1”live-initramfs が eth1 のネットワーク カードを使用してファイルシステム filesystem.squashfs をキャプチャするように強制できます。
  2. nicif: ネットワークがオンになっているときに、ネットワーク カードの MAC アドレスを指定して filesystem.squashfs をキャプチャします。たとえば、nicif=00:aa:bb:cc:dd:eeClonezilla live が MAC アドレス 00:aa:bb:cc:dd:ee のネットワーク カード経由で filesystem.squashfs を取得するように指定できます。
  3. ocs_netlink_timeout: ネットワークカードの接続を検出する際の最大検出時間の設定(秒)を指定できます(デフォルトは30秒)。たとえば、30 秒が長すぎると思われる場合は、次の方法を使用して、最大検出時間を 5 秒のみに指定できます。
ocs_netlink_timeout=5

Ubuntuの自動バックアップを実装する

背景

企業のシステムバージョンアップはより頻繁に行われるため、自動バックアップは業務効率の向上に効果的です。

Regeneron のブート パラメータについて学ぶ

まず最初に、Regenerated Dragon には、上記でも紹介したいくつかのプロセスを自動化するためのインターフェースが用意されているということを知っておく必要があります。パラメータlocales=zh_CN.UTF-8まず、次のように
初期状態のブート パラメータを見てみましょう。/boot/grub/grub.cfg

menuentry "Clonezilla live (VGA 800x600)" --id live-default {
    
    
  search --set -f /live/vmlinuz
  $linux_cmd /live/vmlinuz boot=live union=overlay username=user config components quiet loglevel=0 noswap edd=on nomodeset enforcing=0 locales= keyboard-layouts= ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch="no" vga=788 ip= net.ifnames=0  nosplash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1
  $initrd_cmd /live/initrd.img
}

これは、図に示す最初のオプションに対応します。このオプションを選択すると、中括弧内のコマンドが実行されます。画像.png

ブートパラメータの自動バックアップを実現

初期起動パラメータで見つかりlocales、 に設定するとzh_CN.UTF-8、言語設定がスキップされます。またはkeyboard-layoutsに設定すると、キーボード設定インターフェイスをスキップします。この時点では、2 つの手順が省略されています。システム ディスクを自動的にマウントするにはどうすればよいですか? このとき、別のパラメータが必要です。次の 2 つのパラメータを設定することで、ハードディスクを自動的にマウントできます。NONEus
ocs_prerun

ocs_prerun="mount /dev/sdb1 /mnt" # 先把硬盘mount到本地
ocs_prerun1="mount --bind -o noatime /mnt/WBOX-5762 /home/partimag" # 再mount文件夹到/home/partimag

次のステップはシステム バックアップです。システム バックアップのすべてのオプションを設定した後、緑色のフォントのコード行がポップアップ表示されるのは簡単です。これは、次の図に示すように、システム バックアップのコードです。以下の図:画像.png

PS. 次回からは、このコマンドを直接使用できます:
/usr/sbin/ocs-sr -q2 -c -j2 -z9p -i 4096 sfsck -scs -senc -pchoose savedisk 2023-05-29-06-img sda
Thisコマンドは /tmp/ocs-2023-05-29-06-img-2023-05-29-06-11 に保存されます。

このコード行を使用して、自動的に実行するようにするにはどうすればよいでしょうか? 実際、Regenerated Dragon は、次のコマンドに示すようにパラメーターを提供します。

ocs_live_run="/usr/sbin/ocs-sr -q2 -c -j2 -z9p -i 4096 sfsck -scs -senc -p choose savedisk 2023-05-29-06-img sda"

もちろん、上記のコマンドを使用して自動バックアップを実現できますが、手動で確認する必要があるステップがまだあります。それを自動的にスキップするにはどうすればよいですか?
ocs_live_runこのパラメーターはスクリプトの実行にも使用でき、スクリプトを適切に作成する限り、多くの機能を実現できます。

# **********************************************************"
# * Author        : maochk
# * Email         : [email protected]
# * Create time   : 2023-05-17
# * Filename      : clonezilla-backup.sh
# * Description   : 再生龙自动化备份脚本
# **********************************************************

echo "auto run backup scripts"
echo y | /usr/sbin/ocs-sr -q2 -c -j2 -z9p -i 4096 sfsck -scs -senc -p choose savedisk 2023-05-29-06-img sda

現時点では、ocs_live_run パラメータを次のように構成する必要があります。

ocs_live_run="sudo bash /home/partimag/auto-backup.sh"

現時点では、完全な自動バックアップを実現できます~~~
全体的なブートパラメータは次のとおりです。

menuentry "YCZX DEPLOY LIVE" --id live-default {
    
    
  search --set -f /live/vmlinuz
  $linux_cmd /live/vmlinuz boot=live union=overlay username=user hostname=kinetic config quiet loglevel=0 noswap edd=on nomodeset enforcing=0 locales=zh_CN.UTF-8 keyboard-layouts=NONE ocs_prerun="mount /dev/sdb1 /mnt" ocs_prerun1="mount --bind -o noatime /mnt/WBOX-5762 /home/partimag" ocs_live_run="sudo bash /home/partimag/auto-deploy.sh" ocs_live_extra_param="" ocs_live_batch="no" vga=788 ip= net.ifnames=0  splash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1
  $initrd_cmd /live/initrd.img
}

この起動パラメータで起動した後のインターフェイスは次のとおりです:
画像.png
BACKUP LIVE と DEPLOY LIVE、これら 2 つはそれぞれ自動バックアップ オプションと自動展開オプションです。Regeneron システムが起動してから 5 秒後に、自動的に自動展開オプションに入ります。 、その後 27 のステップが続きます。すべてが自動化されています。

自動化前後の比較

自動化実現後に時間テストを行ったところ、自動化後はBIOSの自動項目を手動で選択する必要がなくなったほか、イメージの復元とバックアップにかかる時間が1~2分短縮できることが分かりました。 U ディスクとシステム ディスクが接続されている限り、残りの作業は自動的に完了します。

時間比較表

シーン 自動化前 自動化後 結論は
標準イメージ作成(バックアップ) 10分10秒 8分54秒 Regeneron を使いこなした場合、自動化実現後は約 1 分が短縮され、人の介入が必要な BIOS 変更を除いて残りは自動的に完了し、導入完了後は自動的にシャットダウンされます。
標準イメージの展開 (復元) 12分53秒 11分50秒

参照:

  1. https://clonezilla.nchc.org.tw/clonezilla-live/doc/fine-print.php?path=99_Misc/00_live-boot-parameters.doc#00_live-boot-parameters.doc
  2. https://clonezilla.nchc.org.tw/clonezilla-live/doc/fine-print.php?fullmode=0&withmenu=1&path=./05_Preseed_options_to_do_job_after_booting/01-preseed-options.doc#01-preseed-options.doc
  3. https://clonezilla.nchc.org.tw/clonezilla-live/doc/

おすすめ

転載: blog.csdn.net/xiaokai1999/article/details/131054860