Linuxのブートプロセス(個人の理解)

簡単なLinuxのブートプロセス


 

1)BIOS POST

2)MBRのブート

3)ブートプログラムメニュー(GRUB)

4)カーネルをロード

5)仮想ファイルシステム負荷機能モジュールをロード

6)システム・プロセスを開始します

         / sbinに/ initを

                     --->の/ etc / INIT / rcs.conf --->の/ etc / rc.dの/ rc.sysinitが存在---> システム初期化
                                                    --->の/ etc / inittabの--->の/ etc / INIT / RC .confの--->の/ etc / rc.dの/ RC - >の/ etc / rcの[0-6]の.conf ---> 起動およびシャットダウンスクリプトの優先順位に従って、
                     --->の/ etc / rc.dの/地元--->ログイン画面--->システムにログインするためのユーザー名とパスワードを入力してください

詳細なLinuxのブートプロセス(Centos6.X版)


 

.BIOS POST

  • 以下のような基本的なハードウェア環境のPOST、:CPUは、HDD、メモリ、マザーボードは、開始シーケンス(デフォルトハードディスク)に応じて起動することが、次のステップは、セルフテスト動作になります

II。ブートプロセス

  • システムが起動した後、ハードディスクのシリンダ1つのレコード(MBRマスターブートプログラム)ブートプログラム(ブートローダー)MBRがメモリにロードされたときに、オペレーティングシステムのブートを起動するためには、BIOSを伝えるために制御を渡す0ヘッドからの読み取りMBR(MBR最も重要な機能は、ブートプログラムを格納することです)
  • 用語集

1)シリンダ-Cylinders:ハード・ディスク(CD-ROMなど)が複数、各ディスク表面がトラックの等しい数に分割され、ディスクが外部トラック番号からなり、0を有する、最も外側のトラックでありますシリンダを形成するトラックの同じ番号は、シリンダは、ディスクのシリンダと呼ばれ

2)-trackトラック:各ディスクは、トラック(非常に高いトラック密度ディスクと呼ばれる同心円の各々は、ディスク上の通常のトラックの数千あり、最も外側の同心円状のトラックが0であり、論理的に同心円の数を有しています)

3)セクター-sector:各トラックは、単離された複数のセグメントに分割され、各単離されたセグメントは、1つのセクタのサイズであり、セクタ固定512バイトであり、記憶ディスク{1B(バイト)=の最小単位であります8(ビット)1024バイト= 1メガバイト)、GB-TB-PB-EB-ZB-YB-BB-NB-DB}というように、下の図は、MBRのセクタ、トラック、図シリンダ論理的抽象化です(インターネットからのスクリーンショットの一部)

4)MBR(512バイトの合計セクタサイズを占有するマスターブートレコード)マスターブートプログラム、ブートプログラム(LinuxのブートローダーGRUB2)が446バイトを占めており、64バイトのパーティションテーブルを占有する(各パーティションエントリが占有最後に、なぜハードディスク最大唯一の理由4つのプライマリパーティション・ポイント)であり、16バイト、2バイトの識別の端

III。カーネルモジュールと機能をロードし(ドライバ)

  •  システムはカーネルだけである場合、システムは自動的にシングルを開始します
  • システムは、複数のコアしている場合(オペレーティングシステムなど、すでにLinuxシステムをインストールし、Windowsシステムをインストールし、これは一般的に、テストラボ環境や個人の好みで使用され、実際の生産環境はほとんど使用されません)、複数のブート・インターフェースがありますオプションは、ユーザーが自分を開始するためにどのカーネルを選択することができます
  • Linuxカーネルは、(メモリにロードされたブート・プロシージャ・コール)した後、システム/ブートディレクトリを開始するために圧縮形式で格納され、カーネルは、第1のメモリに解凍され、抽出が完了すると、カーネルは、次いで、セルフテストを実行します(Linuxカーネルは、一般的に、より自信セルフテスト)のカーネルプロセス「は/ var / log / dmesgの」ファイルに自己記録し、カーネルをブートプログラム後にロードされ、カーネル・ドライバ・ハードウェア、一般的にIDEインタフェースをロードする必要がありますハード・ディスク・ドライブは、あなたが直接呼び出すことができ、カーネルに格納されているカーネルはすべてのドライバをロードされている場合は問題がある。この時間は、カーネルが非常に大きくなります(IDEハードディスクは基本的に排除)、Linuxソリューションは、共通のドライバがカーネルにロードされています、ドライバが必要なときに呼び出し珍しい機能モジュールは、/ブーツ/ libに/ modulesファイルにロードされました。

IV。仮想ファイルシステム--initramfs

  • しかし、ここで新たな問題があり、カーネルはそれをファイル「ブート/ libに/モジュールは/」識別するためにどのようにハードディスクを認識できないのですか?(/ブートローダー経由のブートパーティションがカーネルによってロードされていない)、ここで引用したが、「仮想ファイルシステム-initramfs」基本的なドライバがカーネルにロードされている仮想ファイルシステムによってロードされ、その後、ルートディレクトリにメモリエミュレーションに解凍されファイルシステムのシミュレーションは、プログラムが必要と起動時にカーネルモジュールをロードし、実行可能なプログラムを提供することができ、例えば:USB、SATAハード・ディスク・ドライブ、RAIDドライブ(実際のハードウェアのドライバをロードし、シミュレーションのディレクトリ作成)、特定図2を参照して以下。
  • / bootパーティション内の仮想ファイルシステム(initramfsの)、あなたが見ることができる、それは圧縮ファイルです、あなたはその後、圧縮された、あなたはそれが根系に非常に似て見つけることができ、ファイル形式を表示するコマンドを使用することができ、以下では詳細な手順であります

V.は、システム・プロセスを開始します

第一プロセスシステムの起動INIT / sbinには、/、他のすべてのプロセスの親であり、このプロセスは2つの機能を有する、親プロセスによって「/etc/init/rcs.conf」を呼び出します

システムの基本的な機能(1)を呼び出す「/etc/rc.d/rc.sysinit」システム初期化(初期ネットワーク環境、吊り装置、初期ハードウェア、等)が含まれ

>コール "/etc/init/rc.conf" - - >検索--->の "/ etc / rc.dの/ RC" ディレクトリ(2)の "/ etc / inittabの" システムレベルチェックを呼び出します - - >その後、システムインタフェース開始をログに記録する前に、インストール優先起動とシャットダウンのペースを--->実行するための「/etc/rc.d/rc[0-6].conf」ファイル「/etc/rc.d/を取得しローカル「ファイル--->ログイン画面--->ユーザー名とパスワードのシステムを入力し、各ファイルの詳細なパラメータを以下に示します。

  • "/ etc / inittabの" ファイル--->レベルの実行を開始
  • 「/Etc/init/rc.conf」ファイル
  • 起動とシャットダウンの足音の優先度に応じて、「/Etc/rc.d/rc」ディレクトリと検索「/etc/rc.d/rc[0-6].conf」
  • 「/etc/rc.d/local」

上記の不十分な場合は、私の個人的な理解で、私は、変更お互いから学び、一緒に進行修正するために歓迎!

 

おすすめ

転載: www.cnblogs.com/xiaofu89120/p/11440885.html