起動とは、コンピュータを起動するプロセスを指し、ハードウェアボタンを押すか、ソフトウェアコマンドを使用して初期化できます。ご覧のとおり、CPUをオンにすると、メインメモリ内のソフトウェアにアクセスできなくなります。起動プロセスで必要なソフトウェアが読み込まれるため、コンピュータでオペレーティングシステムを起動できます。
この記事では、Linuxの起動プロセスと、それがどのように機能するかを知ることが不可欠である理由を深く理解します。
注 :使用するオペレーティングシステムによって、起動プロセスは少し異なります。記事の中で違いがどこにあるかについて説明します。
Linuxの起動プロセスを知ることはどのように役立ちますか?
たとえば、PCの前に座って、作業(またはゲーム)を開始する準備をして、CPUの電源ボタンを押したとします。しかし、これは何ですか?コンピュータの電源が入っておらず、奇妙なビープ音が鳴っています。
この状況では、技術者に電話することができます。つまり、問題を修正するには少なくとも2時間ほど待つ必要があり、費用がかかります。または、自分で修正することもできますが、これを行うには、起動プロセスを完全に理解する必要があります。
Linuxの起動プロセスを知っていると役立つシナリオがいくつかあります。
- コンピュータの電源を入れることはできません。
- コンピュータの電源がオンになっていますが、空白の画面しか表示されません。
- コンピュータが起動ループでスタックしています。電源がオンになり、ループでオフになります。
- オペレーティングシステムがロードされていません。
Linuxの起動プロセスを理解することで、システムの何が問題になっているのかをすばやく診断してトラブルシューティングし、修正することができます。
これに加えて、起動プロセスを知っていると、それをカスタマイズすることもできます。これにより、はるかに基本的なレベルでPCを制御できるようになります。
Linuxブートプロセス
Linuxブートプロセス、またはその他のブートプロセスは、オペレーティングシステムにアクセスできるように、最終的にPCをロードする一連のイベントです。現在、Linuxでは、ブートプロセスに6つの異なる段階があります。これらは次のとおりです。
- BIOS
- MBR
- GRUB
- カーネル
- 初期化
- ランレベルプログラム
コンピュータがどのように起動するかを理解するために、これらの6つの段階を詳しく説明します。
注 :この6段階のブートプロセスにはいくつかの例外があります。一部のLinuxディストリビューションは、カスタマイズされた起動シーケンスを提供することを好みます。そうは言っても、ここで説明する内容は、歴史的にLinuxで使用されており、現在でも多くの主要なLinuxディストリビューションで使用されています。
#1。 BIOS
BIOSはBasicInputOutputSystemの略です。コンピュータを起動すると、BIOSが呼び出され、HDDまたはSSDが正しく機能しているかどうかを確認するためにいくつかの整合性チェックが実行されます。
この後、BIOSはブートローダープログラムを検索し、それをメモリにロードしてから実行します。ブートローダープログラムは、MBR –マスターブートレコード内にあります。
現在、MBRは必ずしもHDDまたはSSD内にロードする必要はありません。 Linuxのライブインストール中に使用されるUSBスティックまたはCD-ROMにある場合もあります。ブートローダープログラムをメモリにロードした後、BIOSはそれに制御を渡し、ブートプロセスの次のステップに進みます。
#2。 MBR
上で説明したように、MBRはマスターブートレコードの略です。非常に古いシステムの場合は、GRUBまたはLILOに関する情報が含まれています。
MBRの機能は、GRUBブートローダーをロードして実行し、ブートプロセスを続行することです。
MBRは、ブータブルディスクの最初のセクターにあります。通常、これは / dev / hdaにあります。 、または / dev / sda 。この場所は、HDD、SSD、ペンドライブ、またはCDのいずれから起動する場合でも、ほとんどハードウェアに依存します。
#3。 GRUB
GRUBは、GNU GRUB(GNU Grand Unified Bootloader)と呼ばれることが多く、最新のLinuxシステムの主要なブートローダーです。
PCの電源を入れると、最初に表示されるのはGRUBスプラッシュ画面です。一時的に画面に表示されたままになり、いくつかのオプションを含むシンプルなメニューが表示されます。システムに複数のカーネルイメージがインストールされている場合は、このメニューにそれらが表示されます。
次に、キーボード(マウスはサポートされていません)を使用して、システムを起動するカーネルを選択できます。
デフォルトでは、最新のカーネルが選択されます。アクションがない場合(つまり、キーボードでカーネルを選択しない場合)、システムは自動的にデフォルトのカーネルで起動します。
使用しているLinuxディストリビューションとその古さによって、GRUBファイルの場所は異なる場合があります。 /boot/grub/grub.confの下にある可能性が最も高いです。 または/etc/grub.conf 。
grub.confのサンプルコンテンツを簡単に見てみましょう。 ファイル。
default=0 timeout=10 splashimage=(hd0,0)/grub/splash.xpm.gz # section to load Linux title Red Hat Enterprise Linux (2.4.21-1.ent) root (hd0,0) kernel /vmlinuz-2.4.21-1 ro root=/dev/sda2 initrd /initrd-2.4.21-1.img # section to load Windows title Windows rootnoverify (hd0,0) chainloader +1
注 : grub.confの場所が見つからない場合 システム上のファイルの場合、Linuxディストリビューションのドキュメントを検索するか、Google検索を実行すると、ファイルの場所がわかります。
grub.confの機能の詳細については ファイル、この記事を読むことができます。
システムを起動するカーネルを選択したら、次の段階に進みます。
#4。カーネル
つまり、カーネルはLinuxオペレーティングシステム(および他のOS)のコアであり、システム内のすべてを完全に制御します。
GRUBがカーネルを選択すると、 grub.confで指定されているルートファイルシステムがマウントされます。 ファイル。マウントされた後、カーネルは / sbin / initを実行します プログラム。
これは常に、システムの起動中に実行される最初のプログラムです。これは、このプログラムのプロセスID(PID)を確認することで確認できます。このプログラムは、常に1に設定されます。
次に、実際のファイルシステムがマウントされるまで、カーネルはInitial RAM Disk – initrdを使用して一時的なルートファイルシステムを作成します。 。これには1、2秒もかかりません。
#5。初期化
これで、システムは実行レベルのプログラムの実行を開始する準備が整いました。最初に、通常このパスの下にあるinitファイルにアクセスする必要があります– / etc / inittab 。このファイルは、Linuxの実行レベルを決定するために必要です。
そうは言っても、最近のLinuxシステムのほとんどは、代わりに実行レベルを選択するために「systemd」に移行しています。これは、「systemd」を理解するのに役立つ詳細な記事です。
#6。ランレベルプログラム
ランレベルプログラムは、あるLinuxディストリビューションから別のディストリビューションに変わります。そのため、使用しているLinuxディストリビューションによっては、実行レベルのプログラムのバッチがまったく異なる場合があります。
各実行レベルにはそれぞれのディレクトリがあり、実行レベルに固有のプログラムは対応するディレクトリの下にあります。そのため、前のディレクトリに対応する実行レベルのプログラムが最初に実行され、次に残りが昇順で実行されます。
以下は、6つの異なる実行レベルに対応するディレクトリの通常のリストです。
- 実行レベル0– /etc/rc0.d/
- 実行レベル1– /etc/rc1.d/
- ランレベル2– /etc/rc2.d/
- ランレベル3– /etc/rc3.d/
- 実行レベル4– /etc/rc4.d/
- 実行レベル5– /etc/rc5.d/
- 実行レベル6– /etc/rc6.d/
注 :ディレクトリの正確な場所は、Linuxディストリビューションによって異なります。ランレベルのディレクトリが見つからない場合は、OSのドキュメントを確認するか、Googleでクイック検索を行ってください。
ランレベルディレクトリの下にあるさまざまなプログラムを調べてみると、一部のプログラムが「K」または「S」で始まっていることがわかります。ここで、Kは「キル」を意味し、Sは「スタート」を意味します。 「開始」プログラムはシステムの起動プロセス中に実行されますが、「強制終了」プログラムはシステムのシャットダウン中に実行されます。
結論
つまり、これはLinuxのブートプロセスの概要です。これまでに、OSとデスクトップにアクセスする前に、システムが6つの異なる段階をどのように通過するかについての基本的な理解が必要です。
これがお役に立てば幸いです。問題が発生した場合は、コメントセクションに質問を残していただければ、できるだけ早くご連絡いたします。
それまでは、Linuxを使い始めている場合は、OSをよりよく理解し、OSをより上手に使い始めるのに役立つ、Linuxに関する初心者向けガイド、ハウツー、チュートリアルがたくさんあります。