ウェブサイト検索

Linux ブート プロセスのさまざまな段階に関する基本ガイド


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

このガイドでは、Linux OS の電源投入時からログイン時までに実行されるさまざまな手順を説明します。このガイドでは、GRUB2 ブートローダーと < Strong>systemd init は、現在、最新の Linux ディストリビューションの大多数で使用されています。

起動プロセスには次の 4 つの手順が必要ですが、これについては後で詳しく説明します。

  • BIOS 整合性チェック (POST)
  • ブート ローダー (GRUB2) のロード
  • カーネルの初期化
  • すべてのプロセスの親である systemd を起動します。

1. BIOS 整合性チェック (POST)

通常、ブート プロセスは、PC がすでにシャットダウンされている場合にユーザーが電源オン ボタンを押すか、GUI またはコマンド ラインを使用してシステムを再起動すると初期化されます。

Linux システムの電源が投入されると、BIOS (基本入出力システム) が起動し、電源投入時自己テスト (POST) が実行されます。 )。これは、大量の診断チェックを実行する整合性チェックです。

POST は、HDD または SSDキーボードRAM< などのコンポーネントのハードウェア操作性を調査します。USB ポート、その他のハードウェア。一部のハードウェア デバイスが検出されない場合、または破損した HDD や SSD などのデバイスに誤動作がある場合は、介入を促すエラー メッセージが画面に表示されます。

場合によっては、特に RAM モジュールが欠落している場合にビープ音が鳴ることがあります。ただし、予期したハードウェアが存在し、予期したとおりに機能している場合は、起動プロセスは次の段階に進みます。

2. ブートローダー (GRUB2)

POST が完了し、海岸に人がいないと、BIOSMBR (マスター ブート レコード) を調べて、ブートローダーとディスクのパーティション情報。

MBR は、ハード ドライブの最初のセクターにある 512 バイトのコードで、通常は /dev/sda または /dev/hda はハードドライブのアーキテクチャに応じて異なります。ただし、MBR が Linux のライブ USB またはDVD インストール上に存在する場合があることに注意してください。

Linux には、LILOGRUBGRUB2の 3 つの主なタイプのブートローダーがあります。 GRUB2 ブートローダーは、最新の Linux ディストリビューションの最新かつ主要なブートローダーであり、時間の経過とともに時代遅れになった他の 2 つを除外するという決定を伝えています。

GRUB2 は、GRand Unified Bootloader バージョン 2 の略です。BIOS が grub2 ブートローダーを見つけると、それが実行され、メイン メモリ ( > ラム)。

grub2 メニューを使用すると、いくつかのことができます。使用する Linux カーネルのバージョンを選択できます。システムを数回アップグレードしている場合は、異なるカーネル バージョンがリストに表示される場合があります。さらに、キーボードのキーを組み合わせて押すことで、一部のカーネル パラメータを編集することもできます。

また、複数の OS がインストールされているデュアルブート設定では、grub メニューを使用してどの OS を起動するかを選択できます。 grub2 設定ファイルは /boot/grub2/grub2.cfg ファイルです。 GRUB の主な目的は、Linux カーネルをメイン メモリにロードすることです。

3. カーネルの初期化

カーネルは Linux システムの中核です。 PC のハードウェアと基盤となるプロセスをインターフェイスします。カーネルは、Linux システム上のすべてのプロセスを制御します。選択した Linux カーネルがブートローダーによってロードされると、タスクを実行する前に圧縮バージョンから自己解凍する必要があります。自己解凍時に、選択されたカーネルはルート ファイル システムをマウントし、一般にinit と呼ばれる/sbin/init プログラムを初期化します。

Init は常に最初に実行されるプログラムであり、プロセス ID または PID 1 が割り当てられます。これは、さまざまなデーモンを生成し、/etc/ ファイルで指定されているすべてのパーティションをマウントする init プロセスです。 fstab ファイル。

次にカーネルは、実際のルート ファイルシステムがマウントされるまでの一時的なルート ファイルシステムである初期 RAM ディスク (initrd) をマウントします。すべてのカーネルは、初期 RAM ディスク イメージとともに /boot ディレクトリにあります。

4.Systemdの起動

カーネルは最終的に、古いSysV init を置き換えるSystemd をロードします。 Systemd はすべての Linux プロセスの母であり、いくつか例を挙げると、ファイル システムのマウント、サービスの開始と停止などを管理します。

Systemd は、/etc/systemd/system/default.target ファイルを使用して、Linux システムが起動する必要がある状態またはターゲットを決定します。

  • (GUI を備えた) デスクトップ ワークステーションの場合、デフォルトのターゲット値は 5 で、これは古い SystemV init の実行レベル 5 に相当します。
  • サーバーの場合、デフォルトのターゲットは SysV init の実行レベル 3 に対応するmulti-user.target です。

systemd ターゲットの内訳は次のとおりです。

  • poweroff.target (ランレベル 0): システムの電源をオフまたはシャットダウンします。
  • rescue.target (ランレベル 1): レスキュー シェル セッションを起動します。
  • multi-user.target (ランレベル 2、3、4): システムを非グラフィカル (コンソール) マルチユーザー システムに設定します。
  • graphical.target (ランレベル 5): ネットワーク サービスでグラフィカル マルチユーザー インターフェイスを使用するようにシステムを設定します。
  • reboot.target (ランレベル 6): システムを再起動します。

システム上の現在のターゲットを確認するには、次のコマンドを実行します。

systemctl get-default

ターミナルで次のコマンドを実行すると、あるターゲットから別のターゲットに切り替えることができます。

init runlevel-value

たとえば、init 3 はシステムを非グラフィック状態に設定します。

init 6 コマンドはシステムを再起動し、init 0 コマンドはシステムの電源をオフにします。これら 2 つのターゲットに切り替える場合は、必ずsudo コマンドを呼び出してください。

systemd がすべてのデーモンをロードし、ターゲットまたは実行レベルの値を設定すると、起動プロセスは終了します。この時点で、Linux システムにアクセスするためのユーザー名とパスワードの入力を求められます。