Linux PCの電源を入れるたびに、一連の段階を経て、最終的にユーザー名またはパスワードの入力を求めるログイン画面が表示されます。通常の起動プロセスでは、すべてのLinuxディストリビューションが通過する4つの異なる段階があります。

このガイドでは、Linux OSの電源を入れてからログインするまでのさまざまな手順について説明します。このガイドでは、 GRUB2のみを考慮していることに注意してください。 ブートローダーとsystemd 最新のLinuxディストリビューションの大部分で現在使用されているため、init。
起動プロセスでは、次の4つの手順を実行します。これについては、後で詳しく説明します。
- BIOS 整合性チェック( POST )
- ブートローダーの読み込み( GRUB2 )
- カーネルの初期化
- systemdを開始します 、すべてのプロセスの親
1。 BIOS整合性チェック(POST)
起動プロセスは通常、ユーザーが電源オンを押すと初期化されます ボタン– PCがすでにシャットダウンされている場合–またはGUIまたはコマンドラインを使用してシステムを再起動します。
Linuxシステムの電源が入ると、 BIOS (基本入出力システム )キックインして電源投入時自己診断を実行します ( POST )。これは、多数の診断チェックを実行する整合性チェックです。
POST HDDなどのコンポーネントのハードウェア操作性を調査します またはSSD 、キーボード 、 RAM 、 USB ポート、およびその他のハードウェア。一部のハードウェアデバイスが検出されない場合、またはHDDやSSDの破損など、いずれかのデバイスに誤動作がある場合は、介入を促すエラーメッセージが画面に表示されます。
場合によっては、特にRAMモジュールがない場合に、ビープ音が鳴ります。ただし、期待されるハードウェアが存在し、期待どおりに機能している場合、起動プロセスは次の段階に進みます。
2。ブートローダー(GRUB2)
一度POST 完了し、海岸は澄んでいます。 BIOS MBRをプローブします (マスターブートレコード )ブートローダーとディスクのパーティション情報について。
MBR ハードドライブの最初のセクター(通常は/dev/sda
)にある512バイトのコードです。 または/dev/hda
ハードドライブのアーキテクチャによって異なります。ただし、 MBR ライブUSBに配置できます またはDVD Linuxのインストール。
Linuxのブートローダーには主に3つのタイプがあります: LILO 、 GRUB、 およびGRUB2 。 GRUB2 ブートローダーは、最新のLinuxディストリビューションの最新のプライマリブートローダーであり、時間の経過とともに時代遅れになった他の2つを除外するという私たちの決定を通知します。
GRUB2 GRand Unified Bootloaderの略です バージョン2。BIOS grub2ブートローダーを見つけ、実行してメインメモリ( RAM )にロードします 。
grub2 メニューを使用すると、いくつかのことができます。使用するLinuxカーネルのバージョンを選択できます。システムを数回アップグレードしている場合は、異なるカーネルバージョンが表示される場合があります。さらに、キーボードのキーの組み合わせを押すことで、いくつかのカーネルパラメータを編集することができます。

また、複数のOSがインストールされているデュアルブートセットアップでは、grubメニューを使用して、起動するOSを選択できます。 grub2構成ファイルは/boot/grub2/grub2.cfgです。 ファイル。 GRUBの主な目的は、Linuxカーネルをメインメモリにロードすることです。
3。カーネルの初期化
カーネルは、あらゆるLinuxシステムのコアです。 PCのハードウェアを基盤となるプロセスとインターフェースします。カーネルは、Linuxシステム上のすべてのプロセスを制御します。選択したLinuxカーネルがブートローダーによってロードされると、タスクを実行する前に、圧縮バージョンから自己解凍する必要があります。自己解凍すると、選択したカーネルがルートファイルシステムをマウントし、 / sbin / initを初期化します。 一般にinitと呼ばれるプログラム 。

初期化 は常に最初に実行されるプログラムであり、プロセスIDまたはPID 1が割り当てられます。これは、さまざまなデーモンを生成し、 / etc / fstabで指定されたすべてのパーティションをマウントするinitプロセスです。 ファイル。
次に、カーネルは初期RAMディスクをマウントします( initrd )これは、実際のルートファイルシステムがマウントされるまでの一時的なルートファイルシステムです。すべてのカーネルは/boot
にあります ディレクトリと初期RAMディスクイメージ。
4.Systemdの起動
カーネルは最終的にSystemdをロードします 、これは古い SysVの代替品です 初期化。 システム化 はすべてのLinuxプロセスの母であり、とりわけファイルシステムのマウント、サービスの開始と停止を管理しています。
Systemdは/etc/systemd/system/default.targetを使用します Linuxシステムを起動する必要がある状態またはターゲットを決定するためのファイル。
- デスクトップワークステーション(GUI付き)の場合、デフォルトのターゲット値は5です。これは、古いSystemVinitの実行レベル5に相当します。
- サーバーの場合、デフォルトのターゲットは multi-user.targetです。 これは、SysVinitの実行レベル3に対応します。
systemdターゲットの内訳は次のとおりです。
- poweroff.target(ランレベル0) :システムの電源を切るかシャットダウンします。
- rescue.target(ランレベル1) :レスキューシェルセッションを開始します。
- multi-user.target(ランレベル2、3、4) :システムを非グラフィカル(コンソール)マルチユーザーシステムに構成します。
- graphics.target(ランレベル5) :ネットワークサービスでグラフィカルマルチユーザーインターフェイスを使用するようにシステムを設定します。
- restart.target(ランレベル6) :システムを再起動します。
システムの現在のターゲットを確認するには、次のコマンドを実行します。
$ systemctl get-default

ターミナルで次のコマンドを実行すると、あるターゲットから別のターゲットに切り替えることができます。
$ init runlevel-value
たとえば、init3はシステムを非グラフィカル状態に構成します。
init 6 コマンドはシステムを再起動し、 init 0 システムの電源を切ります。必ずsudoコマンドを呼び出してください これら2つのターゲットに切り替えたい場合。
起動プロセスはsystemdで終了します すべてのデーモンをロードし、ターゲットまたは実行レベルの値を設定します。この時点で、Linuxシステムにアクセスするためのユーザー名とパスワードの入力を求められます。