ISOLINUX ライブ ブート ディスク - メニューからスクリプトを実行する

ISOLINUX ライブ ブート ディスク - メニューからスクリプトを実行する

Linux ブート ディスクを作成しようとしています (サイズが小さく、ターミナルのみのインターフェイスのため Fennix を選択しました)。ブート ディスクが機能し、Linux が読み込まれ、内部 HDD などをマウントできるため、すべて問題ありません。ただし、メニューは ISOLINUX.CFG を介して機能していますが、各メニュー選択にスクリプトを添付したいです。スクリプトはライブ ディスクから HDD に 2 つのファイルをコピーします。メニューで init= を使用してスクリプトを起動するのに苦労しています。ディスク上のスクリプト ファイルが見つからないようです (アクセスするためにどこに配置すればよいかわかりません。複数のディレクトリを試しました)。

下記にメニューオプションの例を示します

ラベル finnix

メニューラベル インストール アップデート

テキストヘルプ

2つのiniファイルをハードドライブにコピーします

ENDTEXT

カーネル boot/x86/linux init=copy1.bs

追加 initrd=boot/x86/initrd.xz vga=791 nomodeset quiet

起動後に LiveCD からファイルにアクセスする方法と、選択が行われたときにこれらのスクリプト ファイルにアクセスできるようにメニューを更新する方法について、正しい指示をいただける方はいらっしゃいますか。

上記が意味を成すことを願っています。

ありがとう!

答え1

ではisolinux.cfg、ブート オプションは KERNEL 行ではなく APPEND 行に移動します。したがって、init=copy1.bs代わりに APPEND 行に移動する必要があります。

また、 このオプションを使用するとinit=、シェル スクリプトがプロセス #1 として実行されることになります。つまり、複数の仮想コンソールなどを使用して通常の環境を設定する代わりに、その 1 つのスクリプトのみが実行されます。そのスクリプトが終了すると、プロセス #1 が終了するとカーネルがパニック (クラッシュ) します。

Finnix initrd ファイルがどのように構築されているかに応じて、このinit=オプションを使用すると、実際に何か有用なことを実行する前に、Finnix 起動スクリプトの一部またはすべての機能を複製する必要がある状況でスクリプトが起動される可能性もあります。

代わりに、独自のカスタム ブート パラメータを作成することもできます。ブート パラメータは、/proc/cmdlineカーネルに認識されていない場合でも に/proc/cmdline表示されます。 を読み取り、そこからカスタム パラメータ値を取得し、それを使用して任意の場所で別のスクリプトを実行する起動スクリプトを作成できます。このアプローチは、標準パラメータを使用するよりもデバッグが簡単かもしれませんinit=

Finnix ルート ファイルシステムはfinnix/arch/x86/root.imgファイル内にあるようです。現時点では完全に分析する時間はありませんが、 Finnix の使用中に CD を取り出せるようにinitrd.xz、RAM ディスクをセットアップしてその内容をroot.imgそこにロードしているのではないかと思います。

スクリプトをroot.imgファイル内に取り込むには、イメージ ファイル (squashfs ファイルシステム イメージ) をマウントし、その内容を別のディレクトリにコピーし、そこに独自のファイルを追加してから、コマンドmksquashfs(squashfs-toolsパッケージ内) を使用して新しいイメージ ファイルを作成します。

関連情報