日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
LOADER_LUA(8) FreeBSD システム管理者マニュアル LOADER_LUA(8)
名称
loader_lua -- カーネルのブートストラップの最終ステージ
解説
loader_lua と呼び出されるプログラムは、FreeBSD のカーネルのブートストラッ
ププロセスの最終ステージです。IA32 (i386) アーキテクチャで、それは、BTX
クライアントです。libsa(3) に静的にリンクされて、通常、ディレクトリ /boot
に置かれます。
タスクの自動化、事前設定、または復旧手続きの補助のために使用することがで
きる、スクリプト言語を提供しています。このスクリプト言語は、大まかに 2 つ
の主要な構成要素に分かれています。小さい方は、一般ユーザによって直接使用
するために設計されたコマンドの組で、歴史的な理由のために "組み込みコマン
ド" と呼ばれます。これらのコマンドの主な目的は、ユーザの使いやすさです。
大きな要素は、Lua インタプリタです。
初期化の間に、loader_lua は、コンソールを調べて、console 変数を設定する
か、または前回のブートステージでそれを使用するなら、シリアルコンソール
(``comconsole'') にそれを設定します。複数のコンソールが選択されるなら、空
白によって区切られでリストされます。次に、デバイスは、プローブされ、
currdev と loaddev が設定され、LINES は、24 に設定されます。次に、Lua
は、初期化され、/boot/lua/loader.lua は、それが存在するなら、処理されま
す。その後、/boot/loader.conf は、利用可能であるなら、処理されます。
この時点で、autoboot が試みられていなくて、autoboot_delay が ``NO'' (大文
字小文字を区別しない) に設定されていないなら、autoboot (自動起動) が試み
られます。システムがこのポイントを超えたなら、prompt (プロンプト) が設定
され、loader_lua は、対話型モードになります。autoboot_delay が ``0'' に設
定されるときさえ、カーネルとモジュールがロードされている間に、コンソール
のキーを押すことによって、autoboot プロセスを割り込むことができることに注
意してください。これを防ぐために autoboot_delay を ``-1'' に設定します。
この場合に、loader_lua は、autoboot に失敗した場合のみ対話型モードになり
ます。
組み込みコマンド
loader_lua で、組み込みコマンドは、コマンド行からパラメータを取ります。現
在、スクリプトからこれらを呼び出す唯一の方法は、文字列で evaluate を使用
することによってです。エラー状態が起こったなら、例外は、生成され、Lua の
例外処理を使用してインターセプトすることができます。インターセプトされな
いなら、エラーメッセージが表示され、インタプリタの状態がリセットされ、ス
タックが空になり、インタプリタモードに戻ります。
コマンドは、loader_simp(8) の ``組み込みコマンド'' セクションで説明されて
います。
組み込みの環境変数
すべてのインタプリタに共通する環境変数は、loader_simp(8) の ``組み込みの
環境変数'' セクションで説明されています。
組み込みのパーサ
組み込みコマンドが実行されるとき、行の残りは、引数として取られ、通常の
Lua コマンドのために使用されない特別なパーサによって処理されます。
セキュリティ
loader_lua のコマンド行へのアクセスすることは、システムセキュリティを不正
アクセスするいくつかの方法を提供していますが、次のように制限されません:
• currdev または loaddev 変数を設定することによってリムーバブル記憶域か
らブートします。
• init_path または init_script 変数を設定することによって選択されたバイ
ナリを実行します。
• ACPI サブシステムに任意のコードを注入するために ACPI DSDT を上書きし
ます。
password (パスワード) を設定するか、または autoboot_delay を -1 に設定し
て、loader_lua コマンド行への不正なアクセスを防ぐことができます。詳細につ
いては、loader.conf(5) を参照してください。この方法を有効にするために、不
正なデバイスからのブートを防ぐためにファームウェア (BIOS または UEFI) を
設定するべきです。
MD
loader_lua が MD_IMAGE_SIZE でコンパイルされているとき、メモリディスク
(MD) を使用することができます。メモリディスクのサイズは、MD_IMAGE_SIZE に
よって決定されます。MD が利用可能であるなら、/sys/tools/embed_mfs.sh で
loader_lua にファイルシステム組み込むことができます。次に、MD がプローブ
され、初期化の間に currdev に設定されます。
現在、MD は、loader.efi(8) でのみサポートされます。
関連ファイル
/boot/loader loader_lua 自体。
/boot/defaults/loader.conf
/boot/lua/loader.lua ローダの初期化。
/boot/loader.conf
/boot/loader.conf.local loader.conf(5) で説明されているように
loader_lua の設定ファイル。
使用例
シングルユーザモードでブートします:
boot -s
カーネルをロードし、スプラッシュ画面を表示し、次に、5 秒後にオートブート
します。他の load コマンドが試みられる前に、カーネルがロードされなければ
ならないことに注意してください。
load kernel
load splash_bmp
load -t splash_image_data /boot/chuckrulez.bmp
autoboot 5
ルートデバイスのディスクユニットを 2 に設定して、次にブートします。これ
は、2 台の IDE ディスクがあるシステムで、ada1 の代りに ada2 に配線で接続
された 2 台目の IDE ディスクで必要となります。
set root_disk_unit=2
boot /boot/kernel/kernel
ZFS ファイルシステムからカーネルをロードするために使用されるデフォルトの
デバイスを設定します:
set currdev=zfs:tank/ROOT/knowngood:
エラー
次の値は、loader_lua によってスローされます:
100 組み込みの処理で何らかのタイプのエラー。
-1 Abort を実行しました。
-2 Abort" を実行しました。
-56 Quit を実行しました。
-256 テキストを解釈できません。
-257 成功させるためにはもっとテキストが必要で -- 次の実行で終了し
ます。
-258 Bye を実行しました。
-259 指定されていないエラーです。
関連項目
libsa(3), loader.conf(5), tuning(7), boot(8), btxld(8)
歴史
loader_lua は、FreeBSD 12.0 ではじめて登場しました。
FreeBSD 13.2 September 29, 2021 FreeBSD 13.2