まず、Linuxシステムの起動プロセス
Linuxシステムの起動プロセスについて、次のようにステップに分けます。
POSTパワーオンセルフテスト - > BIOS(ブートシーケンス) ) - >対応する起動時にMBR(ブートローダー)をロードします - >メインブート設定はBootLoaderをロードします - >カーネル初期化 - > initrd> /etc /initプロセスは/etc /inittabをロードします。プロセスのフローチャートは次のとおりです。
次に、詳細なブートプロセス
(1)、
- POST電源投入時の自己診断:コンピュータ<ホストが電源を投入すると、電源が落ち、システムはセルフテスト(POST-power on self
- テスト)を開始します。これは主にコンピュータのハードウェアを検出するためのものです。 CPU、メモリ、マザーボード、グラフィックスカード、CMOSおよびその他のデバイスのような機器は不良です。
- ハードウェア障害の場合、それは2つのケースで扱われます:深刻な障害(致命的な障害)の場合、これは本当です。さまざまな初期化操作が完了していない場合、
- はプロンプトや信号を出すことはできません;重大でない障害の場合は、プロンプトまたは警告音を鳴らすいいえ、)ユーザプロセスを待って、障害がない場合、POSTは自分の
- リレータスク、テールBIOSプロセスへの作業の転送を完了します。
(2)、
- BIOS:コンピュータの電源投入時のセルフテストの後に最初に読む場所はBIOS(基本入出力システム)です。
- 、BIOSはマザーボードのチップセットと関連設定、例えばCPUとインターフェースデバイスの通信周波数、ブートデバイスの検索順序、ハードディスクのサイズ、そして
- タイプ、システム時間を記録します。外部バス、さまざまなインターフェースデバイスのI /Oアドレス、およびCPUと通信しているIRQ割り込み情報なので、正常に起動したい場合は、まずBIOS
- を読んでください。
(3)、
- BIOSによって設定されたシステム起動プロセスによれば、テストに合格すると、起動順序に従って最初のデバイスでサポートを開始します。
- プログラムを起動します。起動デバイスには主にハードディスク、USB、SDなどが含まれます。一般的にはハードディスクを使用し、次に最初のデバイスを読み取ると最初のデバイスがハードディスクになります。
- ハードディスクのマスターブートレコード(MBR)を読むと、システムはブートエリアにインストールされている
- ブートローダに従ってコア認識作業を開始できます。 [ここに挿入:MBRプログラムは、ハードディスクパーティションの先頭にある
- のみである446バイトのブートローダを見つけるだけです。]次に、関連する設定と定義を調べます。
(4)、
- ブートローダGrubプログラムのロード
-
- このプロセスでは、Grubのブート、Grubから始めました。 2段階に分かれています。
-
- stage1:主にブートローダ
-
- stage 1.5:遷移
-
< Li> stage2:主に/boot /grub
上記のLinuxカーネルのVMLnuz、grub、initrdは/bootディレクトリにあります。
/boot /grub /では、よく知られているstage1、stage2、grubツールの設定ファイルgrub.confを見ましたが、grub.confで何が定義されているのでしょうか。 ?
(5)、カーネル
- Grubの定義によれば、grubが読み込まれた後、次の作業がカーネルに渡されます。カーネルは主にシステムのハードウェア検出とハードウェアドライバの初期化を完了するためのものです。
- そして読み書きしてルートファイルシステム(ルートスイッチ)をマウントし、そして "first chicken or first"があります卵のファイルは'です、具体的には何
- ですか?
-
- 実際のルートファイルシステム(rootfs)にアクセスするには、ルートファイルシステムにデバイスをロードする必要があります。その後、ルートファイルシステムはマウントされません。
- ルートファイルシステムをマウントしてドライバをルートファイルシステムにロードするには、どうすればいいですか?この問題を解決するために、これはinitrdファイルの使用です。
- カーネルの初期化のために、簡単な概要を説明します。
- プローブハードウェア - >ドライバのロード(initrd) - >ルートファイルシステムのマウント - > rootfs(< rootfs) /sbin /init)
(6)、
- カーネル空間に関する作業が完了し、カーネル空間のタスクがユーザ空間に移り始め、カーネル空間が通過します間接initrd(micro
- linux)はユーザー空間では/sbin /initを超えているため、gurbはカーネルをinitrdで起動し始めます。
-
- initrd:lib、bin、sbin、usr、proc、sys、var、dev、bootなどを含む仮想ファイルシステム。
- 実際のところ内部のディレクトリはtrue /rightにちょっと似ていることがわかりますので、仮想ルートファイルシステムと呼びます。役割はカーネルを実際のルートファイルシステムと関連付けることです。
- 、カーネルをinitrdに移動させます。ルートファイルシステムに必要なドライバをロードし、ルートファイルシステムを読み書きモードでマウントし、
- を最初のプロセスに初期化させます。
initスクリプトの内容を次に示します。