マウント準備[編集]一部のLinuxディストリビューションでは、特定のコンピュータでのブートに必要なものだけ(ATA、SCSI、ファイルシステムのカーネルモジュールなど)を格納したカスタマイズしたinitrdイメージを生成する。その場合、ルートファイルシステムの場所や種類を実行時に判断するのではなく、initrdイメージ内に決めうちで書き込んでおくことが多い。他のディストリビューション(FedoraやUbuntuなど)はより汎用的なinitrdイメージを生成する。その場合、ルートファイルシステムのデバイス名(またはUUID)のみを使い、他の必要な情報はブート時に発見しなければならない。したがって、ルートファイルシステムをマウントするまでに以下のようなタスクが実行される。ブート処理が依存している任意のハードウェアドライバをロードしなければならない。通常、一般的なストレージ機器用カーネルモジュールをまとめてinitrdに格納しておき、ホットプラグエージェントを起動して、検出したハードウェアにマッチするモジュールを取出す。ブートスプラッシュを表示するシステムでは、画面表示関連ハードウェアを初期化し、ユーザー空間のヘルパーを使ってブート処理と同期しつつアニメーションを描画させる。ルートファイルシステムがNFSの場合、以下を行う。主要なネットワークインタフェースを起動させる。DHCPクライアントを呼び出し、必要な情報を得る。その情報からNFS共有の名前とNFSサーバのアドレスを取出す。NFS共有をマウントする。ルートファイルシステムがソフトウェアRAIDデバイスの場合、RAIDボリュームがどのデバイスにまたがっているかを知る手段がない。通常はMDユーティリティを呼び出し、全ブロックデバイスをスキャンし、必要なデバイスをオンラインにする。ルートファイルシステムが論理ボリュームの場合、LVMユーティリティを呼び出してスキャンし、ルートファイルシステムを格納しているボリュームグループを活性化させる。ルートファイルシステムが暗号化されたブロックデバイスにある場合、ヘルパースクリプトを呼び出し、ユーザーにパスフレーズを入力させるかハードウェアトークン(ICカードやUSBセキュリティドングル)を挿入させる。デバイスマッパーにより復号対象を生成する。ルートファイルシステムをマウントした状態では安全に実施できない保守タスクがあれば、ここで実行する。ルートファイルシステムを読み込み専用でマウントする。動作し続ける必要のあるプロセス(ブートスプラッシュ用ヘルパーやそのコマンドFIFO)を新たにマウントしたルートファイルシステムに移行させる。ルートファイルシステムを普通にルート(/)にマウントすると、初期化用ルートファイルシステム上のスクリプトなどを実行していたプロセスがうまくクリーンアップして終了できないため、次のような配慮が必要となる。使って両者を入れ替える。使っていたメモリを解放することができる。移動させることができない[5]。そのため、swich_root(8)コマンドにより単にその中身を空にし、真のルートファイルシステムを上書きするようにマウントする。いったシェルスクリプトがあるため、最小限のシェル(通常、/bin/ash)も含まれているし、他にも基本的なユーティリティ群(BusyBoxツールキットにあるようなもの)も格納されている。フラグなど)付きでコンパイルされ、klibcのような(このために開発された)標準Cライブラリの最小版とリンクされている[6]。オリジナルの2013-01-04時点によるアーカイブ。2009年2月28日閲覧。(日時は個人設定で未設定ならばUTC)。表示-継承ライセンスの下で利用可能です。追加の条件が適用される場合があります。詳細は利用規約を参照してください。開発者Cookieに関する声明モバイルビュ。