101.2標準
トラブルシューティングのため、通常のPID 1プログラムではなく、指定した実行ファイルを初期プロセスとして起動する。
ブート時のカーネル引数を編集する。
使用する引数はどれか。
× 不正解
init=はカーネルが通常のinitの代わりに実行するプログラムのパスを指定する。利用時は通常のサービス管理や終了処理がない点に注意する。
詳細解説
誤り
pid1=/bin/sh標準的なカーネルコマンドラインのinit指定ではない。
標準の指定名ではない。
誤り
shell=/bin/shログインシェルの指定ではなく、PID 1の実行パスを渡す必要がある。
ログインシェル指定とは異なる。
正しい
init=/bin/shカーネルが初期ユーザー空間のプログラムとして指定パスを実行する。
正解。指定パスを初期プロセスにする。
誤り
exec=/bin/shこの目的の標準カーネル引数ではない。
この用途の標準引数ではない。
実際に確かめる
一時的な検証環境で実行できる例です。
grep -o 'init=[^ ]*' /proc/cmdline || echo 'default init path is in use'期待される結果
init=を指定していればその値。通常起動ではdefault init path is in use理解のポイント
- init=はPID 1の代替
- ブートローダーで一時編集可能
- 通常管理機能が失われる
確認時の注意
- 確認環境: Linux / カーネルコマンドライン
基礎のおさらい
回復用途
init=/bin/sh等は復旧に使えるが、通常のマウントやサービス管理が行われない。
責任
PID 1はプロセス回収や正常な終了にも特別な責任を持つため、代替時は注意する。
問題IDKP-101-143
確認環境Linux / カーネルコマンドライン
最終技術確認2026-08-12
誤り・権利侵害を報告