Arch Boot Process (日本語)
| 概括 |
|---|
| Arch ブートプロセスの発生順の概要。 |
| 概要 |
| Arch Linux を起動するためには、GRUB(2), Syslinux, LILO, GRUB Legacy などの Linux 対応のブートローダを、Master Boot Record もしくは GUID Partition Table にインストールする必要があります。ブートローダは、ブートプロセスが始まる前にカーネルやイニシャルラムディスクをロードする仕事を行います。 |
| 関連項目 |
| fstab (日本語) |
| Systemd (日本語) |
| Autostarting |
Contents |
ブートローダー
システムの電源が入れられ POST が完了した後、BIOS は優先的にブートするメディアを確認してコントロールをそのデバイスの Master Boot Record に移します。GNU/Linux マシンでは、GRUB や LILO などのブートローダーが MBR からロードされます。ブートローダーはユーザーに様々なブートの選択をさせます、例えばデュアルブートセットアップの Arch Linux と Windows。Arch が選択されると、ブートローダーはカーネル (vmlinuz-linux) と initial root ファイルシステム (initramfs-linux.img) をメモリに読み込みカーネルを起動します。その際イメージのメモリアドレスが渡されます。
カーネル
カーネルはオペレーティングシステムのコアです。ローレベル (カーネル空間) で、マシンのハードウェアとハードウェアを使って実行されるプログラムを橋渡しします。CPU を効率的に利用するために、カーネルはスケジューラーを使ってどのタスクが優先的に実行されるかを決定し、多くのタスクが同時に実行されるのを可能にしています。
initramfs
カーネルがロードされた後、カーネルは initramfs (initial RAM ファイルシステム) を解凍して、initial root ファイルシステムにします。カーネルは最初のプロセスとして /init を起動します。初期ユーザー空間の始まりです。
initramfs の目的は root ファイルシステムにアクセスできる位置にシステムをブートストラップすることです (詳しくは FHS を見て下さい)。これは IDE, SCSI, SATA, USB/FW (外部ハードウェアから起動する場合) などのデバイスのために必要なモジュールがカーネルに入っていない場合 initramfs からモジュールをロードできなくてはならないということを意味しています; (プログラムやスクリプトから明示的に指定されるか udev を通すかして) 正しいモジュールがロードされると、ブートプロセスが再開されます。従って、initramfs に含めなくてはならないのは root ファイルシステムにアクセスするために必要なモジュールだけで、使用する全てのモジュールを入れる必要はありません。ほとんどのモジュールは後の init プロセス中に、udev によってロードされます。
Init プロセス
初期ユーザー空間の最終段階として、本当の root がマウントされ、initial root ファイルシステムを置き換えます。/sbin/init が実行され、/init プロセスを置き換えます。
以前は、Arch は init プロセスとして SysVinit を使っていました。現在の新しいインストールでは、systemd がデフォルトで使われます。既存の SysVinit ユーザーには systemd への切り替えが推奨されています。