2018-11-12 :-|
_ [ブートシーケンス][initramfs][Linux]Linux のブートシーケンスとか initramfs とか
Linux のヒント: ブート時に rootfs を見つける
シーケンス図のアスキーアートは TextDiagam で作成した。
bootloader は Llinux だと GRUB が有名。bootloader はディスクのトラック0、シリンダ0、ヘッド0 の位置にある。レガシーでいう MBR です。(マスターブートレコード ‐ 通信用語の基礎知識)
OS はパーティションのうちアクティブなパーティションにあるものが使われる(?)
                          +-----+          +-----+              +-------------+              +-----+                      +-------+
                          | PC  |          | ROM |              | bootloader  |              | OS  |                      | init  |
                          +-----+          +-----+              +-------------+              +-----+                      +-------+
---------------------------\ |                |                        |                        |                             |
| POST(Power On Self Test) |-|                |                        |                        |                             |
|--------------------------| |                |                        |                        |                             |
                             |                |                        |                        |                             |
                             | load loader    |                        |                        |                             |
                             |--------------->|                        |                        |                             |
                             |                |                        |                        |                             |
                             |                | load bootsector        |                        |                             |
                             |                |----------------------->|                        |                             |
                             |                |                        |                        |                             |
                             |                |                        | extract OS and load    |                             |
                             |                |                        |----------------------->|                             |
                             |                |                        |                        | ------------------------\   |
                             |                |                        |                        |-| load kernel module    |   |
                             |                |                        |                        | | load device driver    |   |
                             |                |                        |                        | | mount root filesystem |   |
                             |                |                        |                        | | mount system file     |   |
                             |                |                        |                        | |-----------------------|   |
                             |                |                        |                        |                             |
                             |                |                        |                        | execute init                |
                             |                |                        |                        |---------------------------->|
                             |                |                        |                        |                             | -----------------------\
                             |                |                        |                        |                             |-| parse /etc/initab    |
                             |                |                        |                        |                             | | execute each command |
                             |                |                        |                        |                             | |----------------------|
                             |                |                        |                        |                             |
第384回 Initramfsのしくみ:Ubuntu Weekly Recipe - gihyo.jp … 技術評論社
- initramfs
- ルートファイルシステムをマウントするために「Initramfs」というイメージファイルを使用する。
 - カーネルはブートローダーによって起動されたあと,ルートファイルシステムをマウントする。
 - すべてのディスクドライバを組み込むとカーネルが肥大化する。
 - カーネルモジュールを使うにしてもあの日見たカーネルモジュールの名前をカーネルはまだ知らない。
 
 - そこでミニルートという仕組みを使う。
- ミニルートとしては現在 initramfs が使われる。
 - ミニルートは最低限のドライバやコマンドを詰め込んだもの。
 - ルートファイルシステムをマウントするために必要なカーネルモジュールやスクリプトが詰め込まれている。
 - ブートローダーはカーネルとミニルートをメモリに展開し、カーネルにミニルートのアドレスを教える
 - カーネルはそのアドレスをもとにミニルートをマウントし、ミニルートに含まれるスクリプトを用いてルートファイルシステムをマウントする
 
 
- mkinitramfs: initramfs を作るコマンド
 
[ツッコミを入れる]




