Difference between revisions of "Arch Boot Process (日本語)"

From ArchWiki
Jump to: navigation, search
m (ブートローダー)
m (initramfs)
Line 25: Line 25:
  
 
== initramfs ==
 
== initramfs ==
カーネルがロードされた後、カーネルは [[initramfs]] (initial RAM ファイルシステム) を解凍して、initial root ファイルシステムにします。カーネルは最初のプロセスとして {{ic|/init}} を起動します。''初期ユーザー空間''の始まりです。
+
カーネルがロードされた後、カーネルは [[mkinitcpio (日本語)|initramfs]] (initial RAM ファイルシステム) を解凍して、initial root ファイルシステムにします。カーネルは最初のプロセスとして {{ic|/init}} を起動します。''初期ユーザー空間''の始まりです。
  
 
initramfs の目的は root ファイルシステムにアクセスできる位置にシステムをブートストラップすることです (詳しくは [[FHS]] を見て下さい)。これは IDE, SCSI, SATA, USB/FW (外部ハードウェアから起動する場合) などのデバイスのために必要なモジュールがカーネルに入っていない場合 initramfs からモジュールをロードできなくてはならないということを意味しています; (プログラムやスクリプトから明示的に指定されるか [[udev]] を通すかして) 正しいモジュールがロードされると、ブートプロセスが再開されます。従って、initramfs に含めなくてはならないのは root ファイルシステムにアクセスするために必要なモジュールだけで、使用する全てのモジュールを入れる必要はありません。ほとんどのモジュールは後の init プロセス中に、udev によってロードされます。
 
initramfs の目的は root ファイルシステムにアクセスできる位置にシステムをブートストラップすることです (詳しくは [[FHS]] を見て下さい)。これは IDE, SCSI, SATA, USB/FW (外部ハードウェアから起動する場合) などのデバイスのために必要なモジュールがカーネルに入っていない場合 initramfs からモジュールをロードできなくてはならないということを意味しています; (プログラムやスクリプトから明示的に指定されるか [[udev]] を通すかして) 正しいモジュールがロードされると、ブートプロセスが再開されます。従って、initramfs に含めなくてはならないのは root ファイルシステムにアクセスするために必要なモジュールだけで、使用する全てのモジュールを入れる必要はありません。ほとんどのモジュールは後の init プロセス中に、udev によってロードされます。

Revision as of 14:55, 20 March 2013

概括 help replacing me
Arch ブートプロセスの発生順の概要。
概要
Template:Boot process overview (日本語)
関連項目
fstab
Systemd (日本語)
Autostarting

ブートローダー

システムの電源が入れられ POST が完了した後、BIOS は優先的にブートするメディアを確認してコントロールをそのデバイスの Master Boot Record (日本語) に移します。GNU/Linux マシンでは、GRUBLILO などのブートローダーが 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 (日本語) への切り替えるが推奨されています。

参照