YaST Firstboot
目次
Firstboot による初回起動時設定
YaST firstboot ユーティリティは、システムの基本的な部分をインストールした後に実行される、特殊な形の設定作業として動作する仕組みです。 firstboot の名前のとおり、システムを初めて起動した際に開始され、デスクトップを簡単に設定するための手順を示して、ユーザに作業を促します。
YaST firstboot は既定では実行しないように設定されていて、ユーザまたは管理者側で実行するように設定しておかなければなりません。この firstboot は、事前に設定されたイメージを配布して書き込む (AutoYaST, SUSE Studio, KIWI なども合わせてお読みください) ような環境で、 root のパスワードやユーザアカウントなど、マシンごとに実施しなければならない手順を後から実行させるような際に、特に便利な仕組みです。
一般的には、製造元で事前にハードウエアなどの設定を一通り実施しておき、ユーザ側では残りの部分を初回の起動時に実施させたいような、 OEM プリロードと呼ばれる環境で使用します。
Firstboot を有効にするには
Firstboot は既定では動作しないように設定されています。対象のマシンで firstboot の設定手順を実施させたい場合は、下記のすべてを実施する必要があります:
- yast2-firstboot パッケージをインストールしておきます。インストール方法にもよりますが、左記のパッケージを (AutoYaST またはインストールイメージの作成段階で) パッケージ一覧に追加しておかなければならないことを意味します。
- 空のファイル /var/lib/YaST2/reconfig_system を作成しておきます。システムの起動時にこのファイルが存在すると、 firstboot の設定手順が開始されます。設定作業が完了すると、 YaST Firstboot はこのファイルを削除します。
これに加えて、 firstboot のインストール手順で特定の言語を表示させたい場合は、該当する翻訳パッケージを含める、もしくはインストールしておかなければなりません。翻訳パッケージは yast2-trans-* の形式で、たとえば * には言語コード (日本語であれば ja) が入ります。
YaST Firstboot のカスタマイズ
Firstboot の動作を制御するためのファイルは 2 つ用意されています。 1 つは firstboot の制御ファイル (firstboot.xml) で、もう 1 つは sysconfig ファイル (/etc/sysconfig/firstboot) です。制御ファイルでは、設定手順で実施すべきパートを設定していて、 sysconfig ファイルでは独自のメッセージや様々なファイルパスを指定しています。
メッセージのカスタマイズ
sysconfig ファイル内で設定可能なテキストは、主に "ようこそ" メッセージ (FIRSTBOOT_WELCOME_DIR の値) とライセンス同意で表示される (もっとも重要な) メッセージです。ライセンス同意のテキストでは、 FIRSTBOOT_LICENSE_DIR および FIRSTBOOT_NOVELL_LICENSE_DIR の sysconfig 値を設定します。
ライセンス同意のファイルは、 'license.txt' または 'license_<言語>.txt' というファイル名で配置します。また、 Novell ベースの製品のライセンス文書は、 /etc/YaST2/licenses/base/ ディレクトリ内にインストールされます。こちらは、 FIRSTBOOT_NOVELL_LICENSE_DIR の値を変更することで、変えることができます。なお、 FIRSTBOOT_LICENSE_DIR は、製造元のライセンス文書のパスを指定する際に使用します。製造元のライセンス文書は、 /etc/YaST2/licenses/ 以下に配置しておくことをお勧めします。
ただし、 FIRSTBOOT_NOVELL_LICENSE_DIR は必ずしも Novell 社のライセンス文書を示さなければならない、というわけではありません。単純に 2 種類のライセンス文書を区別するために別々のディレクトリ指定を行なうようにしているだけです。
2 つのライセンス文書 (一般的には、一方が製造元のもの、他方が Novell 社のもの) を 1 つのダイアログで表示したい場合は、 firstboot.xml ファイル内で 'firstboot_license_novell' ステップを指定してください。 firstboot を実行すると、 FIRSTBOOT_LICENSE_DIR と FIRSTBOOT_NOVELL_LICENSE_DIR で指定された両方のディレクトリ内にあるライセンス文書を使用するようになります。
ワークフローのカスタマイズ
既定の firstboot ワークフローは、インストール作業全体を表す制御ファイルである control.xml ファイルと同じ書式を利用して、単一のファイルで制御することができます。 firstboot の制御ファイルにはワークフローと設定の提案内容が含まれていて、システムの設定作業の終わりのほうで表示する画面を、追加したり削除したりすることができます。また、 firstboot のワークフローは yast2-firstboot パッケージに含まれる /etc/YaST2/firstboot.xml ファイルで制御します。
このファイルは、インストール作業後の製品状態の要件に適合させるために、変更を行なうことができます。既定で用意されているものや、事前にインストールされているコンポーネントのほかに、独自の画面を追加してインストール後の作業を柔軟に構築することもできます。
下記の例は firstboot の制御ファイルの例で、言語とキーボードの画面、ようこそ画面と root のパスワード設定画面 (計 3 画面で、言語単独のステップは省略) を定義している例です。 なお、下記の例では 'name' セクションにご注意ください: この値は、そのステップで実行すべき ycp ファイルのパスを表すもので、たとえば 'firstboot_language_keyboard' のように指定すると、 /usr/share/YaST2/clients/firstboot_language_keyboard.ycp ファイルを実行するようになります。
<workflows config:type="list"> <workflow> <defaults> <enable_back>yes</enable_back> <enable_next>yes</enable_next> <archs>all</archs> </defaults> <stage>firstboot</stage> <label>Configuration</label> <mode>installation</mode> <modules config:type="list"> <module> <label>Language and Keyboard</label> <enabled config:type="boolean">true</enabled> <name>firstboot_language_keyboard</name> </module> <module> <label>Language</label> <enabled config:type="boolean">false</enabled> <name>firstboot_language</name> </module> <module> <label>Welcome</label> <name>firstboot_welcome</name> </module> <module> <label>Root Password</label> <enabled config:type="boolean">true</enabled> <name>inst_root</name> </module> </modules> </workflow> </workflows>
下記は上記を設定した場合に表示される最初の画面です:
詳しくは yast2-firstboot パッケージに含まれる firstboot.xml ファイルの例をお読みください。
既定の /etc/YaST2/firstboot.xml ファイルを編集する代わりに、異なる場所に独自のファイルを配置して、そのパスを /etc/sysconfig/firstboot 内の FIRSTBOOT_CONTROL_FILE で指定する方法もあります。
スクリプトのカスタマイズ
既定で用意されているステップでは、すべての要件に合わせることはできません。そのような場合でも、独自の ycp ダイアログを作成する必要はありません。
firstboot の設定の終わりでは、実行すべきシェルスクリプトを設定することができます。スクリプトは /usr/share/firstboot/scripts 内に配置するか、もしくは /etc/sysconfig/firstboot の SCRIPT_DIR で独自の場所を指定する必要があります。なお、スクリプトはファイル名のアルファベット順に実行されます。
AutoYaST のサポート
firstboot の処理を自動インストールの一環で実行するように設定することもできます。このように設定することで、 AutoYaST のプロファイル内でほとんどのものに対して既定値を指定し、残りのごくわずかの部分だけにユーザ入力を求めたりすることもできます。
自動インストールの一環として実行する場合は、下記に示す変更を実施する必要があります:
- /etc/sysconfig/firstboot を必要に合わせて修正してください。 sysconfig エディタなどで、 AutoYaST 設定モジュールの System セクションを設定します。
- 独自の firstboot.xml ファイルを用意して、 /etc/sysconfig/firstboot 内の FIRSTBOOT_CONTROL_FILE で指定します。
- Firstboot を有効にしてください。 GUI では AutoYaST 設定モジュールの Misc/Firstboot セクションで設定できるほか、下記のように AutoYaST プロファイル内にセクションを追加してもかまいません:
<firstboot> <firstboot_enabled config:type="boolean">true</firstboot_enabled> </firstboot>
参照
システムの設定や配置にかかわる様々な方法の紹介です:
独自の firstboot ステップを定義したい場合は、 YaST ドキュメンテーション をお読みください。
この記事は yast2-firstboot パッケージに同梱されている文書 (/usr/share/doc/packages/yast2-firstboot 内) をベースにしています。この文書にはより詳しい説明が書かれていますが、この記事は最も重要な箇所のみを抜粋しています。