「Arch ブートプロセス」の版間の差分
(英語版と同期してgettyを翻訳して追加) |
(英語版と同期してディスプレイマネージャを翻訳して追加) |
||
48行目: | 48行目: | ||
== getty == |
== getty == |
||
[[init]] は [[Wikipedia:Virtual console|virtual terminal]] (典型的には6つ) ごとに [[getty]] を1回呼び出し、各ttyを初期化してユーザ名とパスワードを要求します。ユーザ名とパスワードが与えられると、getty はそれらを {{ic|/etc/passwd}} と {{ic|/etc/shadow}} と照合し、 [[#Login|login]] を呼び出します。あるいは、システム上にディスプレイマネージャがあれば、getty はそれを起動します。 |
[[init]] は [[Wikipedia:Virtual console|virtual terminal]] (典型的には6つ) ごとに [[getty]] を1回呼び出し、各ttyを初期化してユーザ名とパスワードを要求します。ユーザ名とパスワードが与えられると、getty はそれらを {{ic|/etc/passwd}} と {{ic|/etc/shadow}} と照合し、 [[#Login|login]] を呼び出します。あるいは、システム上にディスプレイマネージャがあれば、getty はそれを起動します。 |
||
+ | |||
+ | == ディスプレイマネージャ == |
||
+ | |||
+ | [[ディスプレイマネージャ]] は、tty の getty ログインプロンプトを置き換えるように設定できます。 |
||
+ | |||
+ | 起動後にディスプレイマネージャを自動的に初期化するには、 [[systemd]] からサービスユニットを手動で有効にする必要があります。サービス・ユニットの有効化と起動の詳細は、[[systemd#ユニットを使う]] を参照してください。 |
||
== 参照 == |
== 参照 == |
2020年8月29日 (土) 02:00時点における版
関連記事
Arch Linux を起動するためには、GRUB や Syslinux などの Linux 対応のブートローダを、Master Boot Record もしくは GUID Partition Table にインストールする必要があります。ブートローダは、ブートプロセスが始まる前にカーネルや初期 RAM ディスクをロードする仕事を行います。BIOS と UEFI で起動の流れはかなり異なっています。このページや関連するページに詳しい説明があります。
ブートプロセス
BIOS
- システムの電源が入れられ POST が実行される
- BIOS がブートに必要なシステムハードウェア (ディスクやキーボードコントローラなど) を初期化する
- (BIOS のディスク順で) 最初のディスクの最初の440バイト (Master Boot Record) が BIOS によって実行される
- BIOS から MBR ブートコードにコントロールが移り、次のステージのコードが起動する (通常はブートローダーのコード)
- 起動した(2番目の)コード(ブートローダー)はサポートと設定ファイルを読み込む
- 設定ファイルのデータに基づき、ブートローダーはカーネルと initramfs をシステムメモリ (RAM) にロードしてカーネルを起動する
UEFI
次のページを参照してください: Unified Extensible Firmware Interface#UEFI のブートプロセス
カーネル
カーネルはオペレーティングシステムのコアです。ローレベル (カーネル空間) で、マシンのハードウェアとハードウェアを使って実行されるプログラムを橋渡しします。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 プロセスとして systemd を使っています。
getty
init は virtual terminal (典型的には6つ) ごとに getty を1回呼び出し、各ttyを初期化してユーザ名とパスワードを要求します。ユーザ名とパスワードが与えられると、getty はそれらを /etc/passwd
と /etc/shadow
と照合し、 login を呼び出します。あるいは、システム上にディスプレイマネージャがあれば、getty はそれを起動します。
ディスプレイマネージャ
ディスプレイマネージャ は、tty の getty ログインプロンプトを置き換えるように設定できます。
起動後にディスプレイマネージャを自動的に初期化するには、 systemd からサービスユニットを手動で有効にする必要があります。サービス・ユニットの有効化と起動の詳細は、systemd#ユニットを使う を参照してください。