日本語 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_SIMP(8) FreeBSD システム管理者マニュアル LOADER_SIMP(8) 名称 loader_simp -- カーネルのブートストラップの最終ステージ 解説 loader_simp と呼ばれるプログラムは、FreeBSD のカーネルのブートストラップ プロセスの最終的な段階です。IA32 (i386) アーキテクチャでは、それは、BTX クライアントです。それは、libsa(3) に静的にリンクされ、通常、ディレクトリ /boot に置かれます。 それは、タスク、事前の設定、または復旧手続の補助を自動化するために使用す ることができるスクリプト言語を提供しています。このスクリプト言語は、2 つ の主要な要素におおまかに分割されます。小さいものは、歴史的な理由のために "組み込みコマンド" と呼ばれる通常のユーザによって直接使用するために設計さ れたコマンドの集合です。これらのコマンドの背景の主要な動因は、使い勝手の 良さです。 初期設定の間に、loader_simp は、コンソールをプローブし、console 変数を設 定するか、または以前のブートステージがそれを使用したなら、それを、シリア ルコンソール (``comconsole'') に設定します。複数のコンソールが選択される なら、それらは、空白によって区切られてリストされます。次に、デバイスは、 プローブされ、currdev と loaddev が設定され、LINES は、24 に設定されま す。その後に、利用可能であるなら、/boot/loader.rc が処理されます。これら のファイルは、ディスクに可能な変更を行い、それらを処理する前にメモリにそ れらのすべてを読み込む include コマンドを通して処理されます。 この時点で、autoboot が試みられていなかったなら、autoboot_delay が、(大文 字と小文字を区別せずに) ``NO'' に設定されないなら、autoboot が試みられま す。システムがこの時点を過ぎるなら、prompt が、設定され、loader_simp は、 対話型モードとなります。歴史的に autoboot_delay が ``0'' に設定されるとき でさえ、カーネルとモジュールがロードされている間にコンソールのあるキーを 押すことによって、ユーザは、autoboot プロセスを割り込みすることができるこ とに注意してください。ある場合には、そのようなふるまいが望ましくないかも しれません、それを防ぐには、autoboot_delay に ``-1'' を設定し、この場合 に、loader_simp は、autoboot が失敗した場合にだけ、対話モードを保証しま す。 組み込みコマンド loader_simp において、組み込みコマンドは、コマンド行からパラメータを取り ます。現在、スクリプトからそれらを呼び出す唯一の方法は、文字列で evaluate を使用することです。エラーの場合に、エラーメッセージが表示され、インタプ リタの状態がリセットされ、スタックが空になり、インタプリタモードが復元さ れます。 利用可能な組み込みコマンドは、次の通りです: autoboot [seconds [prompt]] ユーザによって割り込まれないなら、多くの秒の後にシステムのブート ストラップに進みます。キーを押すことによって割り込まれない限り、 システムがまさにブートされようとしているユーザに警告しているカウ ントダウンプロンプトを表示します。カーネルは、必要であるなら、最 初にロードされます。デフォルトは、10 秒です。 bcachestat ディスクキャッシュ使用法に関する統計値を表示します。デバッグだけ のためです。 boot boot kernelname [...] boot -flag ... 必要であるなら、カーネルをロードして、システムのブートストラップ に直ちに進みます。あらゆるフラグまたは引数は、カーネルに渡されま すが、カーネル名が提供されるなら、それらは、カーネル名に先行しな ければなりません。 echo [-n] [<message>] 画面にテキストを表示します。-n が指定されないなら、改行が印刷 (表 示) されます。 heap メモリ使用の統計値を表示します。デバッグの目的だけのためです。 help [topic [subtopic]] /boot/loader.help から読み込むヘルプメッセージを表示します。特別 なトピック index は、利用可能なトピックをリストしています。 include file [file ...] スクリプトファイルを処理します。各ファイルは、次々と完全にメモリ に読み込まれ、次に、その行のそれぞれは、コマンド行インタプリタに 渡されます。何かのエラーがインタプリタによって返されるなら、 include コマンドは、他のファイルを読み込まずに、直ちにアボート し、エラー自体を返します (「エラー」を参照)。 load [-t type] file ... カーネル、カーネルローダブルモジュール (kld)、ディスクイメージ、 またはタイプ type であるようなタグ付けされた不透明な内容のファイ ルをロードします。カーネルとモジュールは、a.out または ELF 形式の いずれかとなりえます。ロードされるファイルの名前の後に渡されるあ らゆる引数は、そのファイルに引数として渡されます。カーネルに、 ファイルに裏打ちされた md(4) ディスクを作成させるために、md_image タイプを使用します。これは、一時的な rootfs からブートするために 役に立ちます。現在、引数を渡すことは、カーネルに対して動作しませ ん。 load_geli [-n keyno] prov file 与えられたプロバイダ名のための geli(8) 暗号化キーファイルをロード します。キーインデックスを keyno を通して指定することできるか、ま たは 0 をデフォルトとします。 ls [-l] [path] ディレクトリ path のファイルのリスト、または path が指定されない なら、ルートディレクトリのファイルのリストを表示します。-l が指定 されるなら、ファイルのサイズも表示します。 lsdev [-v] ZFS プールと同様に、モジュールをロードすることができるデバイスの すべてをリストします。-v が指定されるなら、zpool status 出力に似 ている形式で ZFS プール情報を含んで、詳細が印刷 (表示) されます。 lsmod [-v] ロードされたモジュールを表示します。-v が指定されるなら、詳細が表 示されます。 lszfs filesystem プールの ZFS ファイルシステムの階層構造を調査するために使用するこ とができる ZFS 拡張コマンド。filesystem の直接の子供をリストしま す。ファイルシステムの階層構造は、プールと同じ名前でファイルシス テムでルートにされます。 more file [file ...] 各 LINES ごとに表示を停止して、指定されたファイルを表示します。 pnpscan [-v] プラグアンドプレイのデバイスをスキャンします。これは、現在のとこ ろ機能的ではありません。 read [-t seconds] [-p prompt] [variable] 指定されるなら、variable にそれを格納して、端末から入力の行を読み 込みます。-t でタイムアウトを指定することができますが、最初に押さ れたキーでキャンセルされます。また、プロンプトは、-p フラグを通し て表示されます。 reboot 直ちに、システムをリブートします。 set variable set variable=value ローダの環境変数を設定します。 show [variable] 指定された変数の値、または variable が指定されないなら、すべての 変数とそれらの値を表示します。 unload メモリからすべてのモジュールを削除します。 unset variable 環境変数から variable を削除します。 ? 利用可能コマンドをリストします。 組み込みの環境変数 set と unset 組み込みコマンドを通して、環境変数を設定して、未設定にするこ とができ、show 組み込みコマンドの使用を通して対話的に調べられるそれらの値 を持つことができます。また、「組み込みパーサ」に記述されているように、そ れらの値をアクセスすることができます。 これらの環境変数は、システムがブートされた後に、あらゆるシェルによって継 承されないことに注意してください。 わずかの変数は、loader_simp によって自動的に設定されます。他の変数は、 loader_simp またはブート時にカーネルの振る舞いに影響するかもしれません。 いくつかのオプションは、値を必要としますが、他は、単に設定されていること によって振る舞いを定義します。組み込み変数の両方のタイプは、以下に説明さ れています。 autoboot_delay autoboot がブートの前に待つ秒数。設定オプションは、 loader.conf(5) に説明されています。 boot_askname カーネルがブートされるとき、ルートデバイスの名前のためにユーザ にプロンプトを出すようにカーネルに指示します。 boot_cdrom CD-ROM からルートファイルシステムをマウントすることを試みるよう にカーネルに指示します。 boot_ddb ブートされるとき、初期設定を続行するのではなく、DDB デバッガを 開始するようにカーネルに指示します。 boot_dfltroot 静的にコンパイルされたルートファイルシステムをマウントするよう にカーネルに指示します。 boot_gdb デフォルトでカーネルデバッガのために gdb リモートモードを選択し ます。 boot_multicons ブートの初期にカーネルで複数のコンソールのサポートを有効にしま す。実行しているシステムで、conscontrol(8) ユーティリティによっ てコンソールの設定を操作することができます。 boot_mute コンソールがミュート (音を消) されるとき、すべてのカーネルのコ ンソール出力は、抑制されます。実行中のシステムで、コンソールの ミュート状態は、conscontrol(8) ユーティリティによって操作するこ とができます。 boot_pause デバイスをプローブ (検出) している間に、各行は、印刷 (出力) さ れた後に一時停止します。 boot_serial 内部のコンソールが存在するときにさえ、シリアルコンソールの使用 を強制します。 boot_single カーネルがマルチユーザのスタートアップを開始することを防止しま す。代わりに、カーネルがデバイスのプローブを終了したとき、シン グルユーザモードに、入ります。 boot_verbose この変数を設定することによって、特別のデバッグ情報は、ブート フェーズの間にカーネルによって印刷 (表示) されます。 bootfile ブート可能なカーネルのためにセミコロンで区切られた検索パスのリ スト。デフォルトは、``kernel'' です。 comconsole_speed シリアルコンソールの速度を定義します (i386 と amd64 のみ)。以前 のブートステージがシリアルコンソールが使用中であることを示して いるなら、この変数は、コンソールのシリアルポートの現在の速度に 初期化されます。そうでなければ、loader_simp がコンパイルされた とき、BOOT_COMCONSOLE_SPEED 変数を使用して上書きされないなら、 9600 に設定されます。comconsole_speed 変数の変更は、直ちに有効 となります。 comconsole_port コンソール UART にアクセスするために使用される基本 I/O ポートを 定義します (i386 と amd64 のみ)。変数が設定されていないなら、 loader_simp のコンパイルの間に BOOT_COMCONSOLE_PORT 変数によっ て上書きされないなら、想定する値は、PC ポート COM1 に対応する 0x3F8 です。comconsole_port 変数の設定は、コンソールの位置のた めのカーネルへのヒントを提供するために自動的に hw.uart.console 環境変数を設定します。ローダコンソールは、変数 comconsole_port が設定された直後に、変更されます。 comconsole_pcidev シリアルコンソール UART として使用される、'単純な通信' クラスの PCI デバイスの位置を定義します (i386 と amd64 のみ)。変数の構文 は、'bus:device:function[:bar]' で、ここで、すべてのメンバは、 16 進数の値を示す 0x 接頭辞を指定できる、数値でなければなりませ ん。bar メンバは、オプションで、省略されるなら、0x10 と仮定され ます。bar は、デコードされた I/O 空間でなければなりません。変数 comconsole_pcidev を設定することは、自動的に変数 comconsole_port を選択された bar の基本とヒント hw.uart.console に設定します。ローダコンソールは、変数 comconsole_pcidev が設定 された直後に変更されます。 console 現在のコンソールまたは (複数の) コンソールを定義します。複数の コンソールが、指定できます。その場合に、最初にリストされたコン ソールは、ユーザランドの出力のためのデフォルトのコンソールにな ります (例えば、init(8) から)。 currdev カーネルのローダへのデフォルトのデバイスを選択します。構文は、 次の通りです: loader_device: または zfs:dataset: 例: disk0p2: zfs:zroot/ROOT/default: dumpdev カーネルダンプのためのデバイスを設定します。捕獲されるブートの 初期のステージの間に起こるカーネルパニックを許可して、 rc.conf(5) からの対応している dumpdev ディレクティブが処理され る前に、デバイスが設定されることを保証するために、これを使用す ることができます。 init_chroot init(8) を参照してください。 init_exec init(8) を参照してください。 init_path カーネルが初期のプロセスとして実行しようと試みるバイナリのリス トを設定します。最初に一致するバイナリが、使用されます。デフォ ルトのリストは、``/sbin/init:/sbin/oinit:/sbin/init.bak: /rescue/init'' です。 init_script init(8) を参照してください。 init_shell init(8) を参照してください。 interpret Forth の現在の状態がインタプリタであるなら、値 ``OK'' がありま す。 LINES ページャによって使用される画面の行の数を定義します。 module_path ロード (load) コマンドまたは依存関係によって暗黙に必要とされる 名前が付けられたモジュールを検索するディレクトリのリストを設定 します。この変数のためのデフォルト値は、 ``/boot/kernel;/boot/modules'' です。 num_ide_disks ブート時にルートディスクを見つけることでのいくつかの問題に対す る回避方法として IDE ディスクの数を設定します。これは、 root_disk_unit を支持して非推奨となっています。 prompt loader_simp のプロンプトの値。デフォルトは、``${interpret}'' で す。変数 prompt が未設定であるなら、デフォルトのプロンプトは、 `>' です。 root_disk_unit ルートディスクのためのディスクユニット番号を検出するコードが、 例えば、SCSI と IDE ディスクの混合によって、混乱するなら、また は、連続してギャップがある IDE ディスク (例えば、主要なスレーブ がない) が、混乱するなら、ユニット番号は、この変数を設定するこ とによって強制することができます。 rootdev デフォルトで currdev の値は、カーネルがブートされるとき、ルート ファイルシステムを設定するために使用されます。rootdev を明示的 に設定することによって、これを上書きすることができます。 他の変数は、カーネルの調整変数のパラメータを上書きするために使用されま す。次の調整変数が利用可能です: efi.rt.disabled 適用可能であるなら、カーネルの UEFI 実行時サービスを無効に します。実行時サービスは、カーネルが UEFI 環境でブートされ る場合のみ、利用可能で使用されます。 hw.physmem システムが使用する物理的なメモリの量を制限します。デフォル トで、サイズは、バイト単位ですが、k, K, m, M, g と G の接尾 辞も受け付けられ、それぞれキロバイト、メガバイト、とギガバ イトを示します。無効の接尾辞は、カーネルによって無視されて いる変数の結果となります。 hw.pci.host_start_mem, hw.acpi.host_start_mem 他に強制するものが無いとき、メモリの開始アドレスを制限しま す。デフォルトは、0x80000000 で、少なくともメモリのサイズを 設定し、他のリソースと衝突しないようにすべきです。通常、PCI ブリッジは、メモリ開始アドレスを強制するので、PCI ブリッジ がないシステムでのみこの変数を設定する必要があります (そし て、変数は、ブリッジが、このアドレスを強制しないときのみ使 用されます)。 hw.pci.enable_io_modes いくつかの BIOS によってオフのままにされるか、またはデバイ スドライバによって正しく有効にされない PCI のリソースを有効 にします。調整変数は、デフォルトで ON (1) に設定しますが、 これは、いくつかの周辺機器で問題を起こすかもしれません。 kern.maxusers 多くの静的に割り付けられるシステムテーブルのサイズを設定し ます。この調整変数のためにどのように適切な値を選択するかの 説明については、tuning(7) を参照してください。設定されると き、この調整変数は、カーネルのコンパイル時設定ファイルで宣 言された値を置き換えます。 kern.ipc.nmbclusters 割り付けられる mbuf クラスタの数を設定します。値は、カーネ ルがコンパイルされたとき、決定されたデフォルトより下に設定 することができません。 kern.ipc.nsfbufs 割り付けられる sendfile(2) のバッファの数を設定します。 NSFBUFS を上書きします。すべてのアーキテクチャが、そのよう なバッファを使用するわけではありません。詳細については、 sendfile(2) を参照してください。 kern.maxswzone 1 MB のメタデータごとのほぼ 200 MB のスワップ空間の割合で、 システムがサポートすることができるスワップの最大の量を直接 管理する、スワップのメタデータを保持するために使用される KVM の量を制限します。この値は、KVA 空間のバイト単位で指定 されます。値が提供されないなら、システムは、システムに存在 する物理的なメモリの量の 8 倍に相当するスワップの量を扱うた めに十分なメモリを割り付けます。 理論的な制限に到達する前に、システムが空間を使い果たすかも しれないことを意味する、スワップのメタデータを断片化するか もしれないことに注意してください。したがって、理論的な最大 のほぼ半分より多くのスワップを設定しないように注意するべき です。 スワップのメタデータのための空間を使い果たすことは、回復不 能な状態のシステムとなるかもしれません。したがって、バッ ファキャッシュまたは kern.ipc.nmbclusters のような他のリ ソースのための KVM 予約を大幅に拡張する必要があるなら、単 に、このパラメータを変更するべきです。カーネルオプション VM_SWZONE_SIZE_MAX を修正します。 kern.maxbcache バイト単位に指定されるバッファキャッシュによって使用される 予約される KVM の量を制限します。デフォルトの最大値は、i386 で 200MB、と amd64 で 400MB です。このパラメータは、バッ ファキャッシュが大きなメモリのマシン設定で KVM を非常に多く 消費することを防止するために使用されます。スワップゾーンま たは kern.ipc.nmbclusters のような他のリソースのための KVM 予約を大きく拡張する必要があるなら、このパラメータのみを調 整します。NBUF パラメータは、この制限を上書きするすることに 注意してください。VM_BCACHE_SIZE_MAX を修正します。 kern.msgbufsize カーネルメッセージバッファのサイズを設定します。バッファを 調べるか、またはそれをファイルにダンプする機会の間に大量の トレースデータが集められる必要がないなら、96KB のデフォルト の制限で通常十分です。カーネルオプション MSGBUF_SIZE を上書 きします。 machdep.disable_mtrrs i686 MTRR の使用を無効にします (x86 のみ)。 net.inet.tcp.tcbhashsize TCBHASHSIZE のコンパイル時の設定値、またはデフォルトの 512 のプリセットを上書きします。2 のべき乗でなければなりませ ん。 twiddle_divisor カーネルとモジュールをロードする間に、表示される `twiddle' (ひねる) I/O 進捗インジケータの出力を抑圧します。これは、書 き込まれるこれらの文字を待つために費される時間が、多くの秒 まで追加することができるところで、遅いシリアルコンソールで 役に立ちます。デフォルトは、1 (フルスピード) です。2 の値 は、半分の速度でスピンします、その他。 vm.kmem_size カーネルメモリのサイズ (バイト) を設定します。これは、カー ネルがコンパイルされたとき、決定される値を上書きします。 VM_KMEM_SIZE を修正します。 vm.kmem_size_min vm.kmem_size_max カーネルによって自動的に割り付けられるカーネルメモリの (そ れぞれ) 最小と最大の量を設定します。これらは、カーネルがコ ンパイルされたとき、決定された値を上書きします。 VM_KMEM_SIZE_MIN と VM_KMEM_SIZE_MAX を変更します。 ZFS 機能 loader_simp は、loader(8) がデバイスの指定を参照するところであろうとも使 用することができる、ZFS ファイルシステムを指定するための次の形式をサポー トしています: zfs:pool/filesystem: ここで、pool/filesystem は、zfs(8) に記述されるように ZFS ファイルシステ ム名です。 /etc/fstab が、ルートファイルシステムのためのエントリがなく、 vfs.root.mountfrom が設定されないが、currdev が、ZFS ファイルシステムを参 照しているなら、loader_simp は、ルートファイルシステムとして、そのファイ ルシステムを使用するようにカーネルに指示します。 セキュリティ loader_simp のコマンド行へのアクセスは、セキュリティ侵害があるシステムの セキュリティのいくつかの方法を提供し、含んでいますが、制限されません: • リムーバブル記憶域からブートします。 loader.rc の無条件のブートによって loader_simp コマンド行への権限のないア クセスを防止することができます。これが効果的であるために、それは、権限の ないデバイスからブートすることを防止するために、ファームウェア (BIOS また は UEFI) も設定するべきです。 関連ファイル /boot/loader_simp loader_simp 自体。 /boot/loader.rc スクリプトは、起動時に loader_simp によって実行しま す。 使用例 シングルユーザモードでブートします: boot -s カーネル、splash 画面と、次に 5 秒で autoboot をロードします。カーネル は、あらゆる他の load が試みられる前に、ロードされなければならないことに 注意してください。 load kernel load splash_bmp load -t splash_image_data /boot/chuckrulez.bmp autoboot 5 ルートデバイスのディスクユニットを 2 に設定し、次にブートします。これは、 ada1 の代わりに、ada2 に接続された 2 番目の IDE ディスクがある、2 つの IDE ディスクがあるシステムで必要とされます。 set root_disk_unit=2 boot /boot/kernel/kernel ZFS ファイルシステムからカーネルをロードするために使用されるデフォルトの デバイスを設定します: set currdev=zfs:tank/ROOT/knowngood: エラー 次の値が loader_simp によって与えられます: 100 組み込みコマンドの処理におけるあらゆるタイプのエラー。 -1 実行された Abort。 -2 実行された Abort"。 -56 実行された Quit。 -256 インタプリットされるテキストの範囲外です。 -257 成功するために、より多くのテキストが必要です -- 次の実行で終 了します。 -258 実行された Bye。 -259 特定されないエラー。 関連項目 libsa(3), loader.conf(5), tuning(7), boot(8), btxld(8) 歴史 loader_simp は、FreeBSD 3.1 ではじめて登場しました。 作者 loader_simp は、Michael Smith <msmith@FreeBSD.org> によって書かれました。 FreeBSD 13.2 September 29, 2021 FreeBSD 13.2