GNU/Linux >> Linux の 問題 >  >> Linux

Ubuntu GRUB Linux ブートローダーと構成

GRUB Linux ブートローダーは、Linux で最も広く使用されているブートローダーです。熱心な Linux ユーザーはすべて、Ubuntu GRUB について学ぶことで恩恵を受けるでしょう。このチュートリアルでは、GRUB とは何か、ブート プロセスがどのように機能するかを学び、いくつかの役立つ Ubuntu GRUB 構成に飛び込みます。

詳細については、こちらをご覧ください。

前提条件

このチュートリアルを進めたい場合は、ブートローダーとして GRUB を備えた Linux デバイスがあることを確認してください。このチュートリアルは、Oracle VirtualBox 上の仮想マシンで実行される Ubuntu 18.04.5 LTS に基づいています。

Ubuntu GRUB ブート プロセスについて

GRUB は Grand Unified Boot Loader の頭字語であり、デバイスを起動するための主要かつ最も重要なコンポーネントです。 GRUB は、Linux の最も一般的なブートローダーでもあります。あなたの旅は、GRUB の起動プロセスについてもう少し知るところから始まります。

一般的な起動プロセスでは、BIOS は POST ステップを呼び出して開始し、マスター ブート レコード (MBR) でブートローダーを探します。

MBR は、ハードディスクの最初のセクタにある情報です。 MBR は、オペレーティング システムの場所を識別します。 MBR に格納された情報は、OS をデバイスの RAM にロード (起動) します。

この記事では、MBR の側面のみを扱います。ただし、GUID パーティション テーブルの略である GPT を使用してディスクを検索することもできます。 MBR ディスクは最大 4 つのプライマリ パーティションを保持できるため、5 つ以上のパーティションを作成する場合は GPT の方が適しています。

以下のスクリーンショットでは、起動プロセスの図を確認できます。選択したカーネルを Ubuntu GRUB がメイン メモリ (ランダム アクセス メモリ (RAM)) にロードすることがわかります。カーネルがロードされると、ユーザーはデバイスにログインできます。

Ubuntu GRUB と LILO ブートローダーの比較

Linux World には 3 つの主要なブート ローダーがあります :LILO、GRUB、および GRUB2。 GRUB2 は、Linux ディストリビューションの最新かつ主要なブートローダーです。 GRUB2 はデフォルトの Ubuntu ブートローダーであるため、このチュートリアルで最も使用され、実証されていますが、LILO は Linux にも存在します。このセクションでは、それらがどのように対抗するかを学びます。

メモリ管理とオブジェクト指向フレームワークの優れたサポートを備えた GNU GRUB など、他の Linux ブートローダが市場で入手可能です。もう 1 つは SYSLINUX です これは軽量のブートローダーです。

GRUB は、複数のオペレーティング システムの起動をサポートしています。一方、LILO は 1 つの OS しか起動できません。

Ubuntu GRUB は Windows、Linux、Unix、macOS、BSD、Solaris で動作しますが、LILO は主に Linux オペレーティング システムをサポートします。

LILO の構成ファイルを更新する場合は、LILO を MBR に再インストールする必要があります。 GRUB 設定を変更した場合、再インストールは必要ありません。

異なるカーネルまたはリカバリ モードの選択

このセクションでは、破損したカーネルから回復するデバイスの起動中にカーネルを選択する方法を示します。

カーネルは、ハードウェアとソフトウェアの間のインターフェイスとして機能します。ユーザーがデバイスで実行するすべてのプロセスを制御します。

Oracle VirtualBox で VM を使用してカーネルを選択する手順は次のとおりです。

1. Oracle VirtualBox を使用して Ubuntu デバイス コンソールに直接ログインします。

2. 以下に示すように、shutdown コマンドを使用して Ubuntu マシンを再起動します。

shutdown -r now

デバイスが再起動したら、Shift キーを押しながら Ubuntu GRUB をロードすると、GRUB ブートローダー メニューが表示されます。何も選択しない場合、GRUB はデフォルトのカーネルでシステムを起動し、起動プロセスを続行します。

Ubuntu の詳細オプションを選択する必要があります デフォルトのカーネル以外の別のカーネルで起動する必要がある場合。または、ファイルの破損、カーネルが正しくロードされないなど、システム内で問題が発生した場合。

4. [Ubuntu の詳細オプション] を選択したら、 Ubuntu GRUB メニューが表示されます。メニューには、選択したさまざまなカーネル オプションが表示されます。オプションを選択しない場合、最初に表示されたカーネルがデフォルトでロードされます。

以下の画像でわかるように、すべてのカーネルには、upstart と recovery という 2 つの追加オプションがあります。

  • (成り上がり): /sbin/init のイベントベースの置換 起動中のタスクとサービスの開始、シャットダウン中の停止、およびシステム実行中の監視を処理するデーモン。
  • (回復モード): システムの障害からカーネルを回復する

5. デバイスにログインすると、uname コマンドは、指定されたカーネルがロードされているかどうかを確認します。 -r オプションはカーネル名を出力します。

uname -r 

デフォルトのオペレーティング システムの設定

GRUB に慣れてきたので、いくつかの GRUB 構成オプションを微調整します。デフォルトで読み込まれるオペレーティング システムを構成することから始めます。

1. お気に入りの SSH クライアントを使用して Ubuntu デバイスにログインします。

2. awk を実行して、GRUB ブート メニュー エントリを一覧表示します。 以下に示すようにコマンドを実行します。 awk コマンドは、/boot/grub/grub.cfg に保存されているすべてのエントリを表示します .ファイルの内容が端末に表示されます。線に注意してください。前の行に関連付けられた、ゼロから始まる番号、つまり Ubuntu が必要になります。 行は 0 です と Ubuntu, with Linux 4.4.0-210-generic 1 です .

awk -F\' '/menuentry / {print $2}' /boot/grub/grub.cfg

3. 次に、GRUB 構成ファイルを編集します。 vi に頼ることができます ファイルを編集して GRUB_DEFAULT の値を変更するには 、ただし、必要に応じて好みのエディターを使用してください。

vi /etc/default/grub

ここで、GRUB_DEFAULT の値を設定します 目的の OS エントリの行番号に。 awk を思い出してください あなたが実行したコマンド?これらはOSエントリでした。 GRUB_DEFAULT を設定した場合 01 に設定すると、GRUB ブート メニュー エントリの最初の OS エントリが起動します。 、デバイスはデフォルトで 2 番目の OS エントリを起動します。以下のスクリーンショットでは、最初の OS エントリ Ubuntu デフォルトで起動するように設定されています。

デフォルトでは、GRUB はブート メニューで待機せず、0 秒ですぐにブートを開始します。 GRUB_TIMEOUT の値を変更することで、このタイムアウト設定を変更できます。 .この値は、起動開始前にメニューが表示される秒数を意味します。値が 5 の場合 、ブート メニューが 5 秒間表示され、システムの起動時にロードする OS を選択できます。

4. GRUB 構成ファイルに変更を保存したら、必ず update-grub を実行してください。 指図。 update-grub コマンドは、変更された構成ファイルを取得して、システムに適用します。

update-grub

Ubuntu GRUB での背景画像の設定

GRUB 構成は単純である必要はありません。 GRUB メニューに背景画像を追加することで、GRUB に少し趣を加えることができます。 GRUB_BACKGROUND を使用して、GRUB の背景として画像を設定できます。 オプション。 GRUB をカスタマイズするには、以下の手順に従います。

1. GRUB 構成ファイルを vi で編集します。 、または好みのテキスト エディタに GRUB_BACKGROUND を追加します。 下図のような行。このチュートリアルでは、画像は UBUNTU という名前のユーザー ホーム フォルダーに保存されます。 GRUB は root として実行されるため、ファイル システム全体でイメージにアクセスできます。変更したら、構成ファイルを保存します。

# Sytax: GRUB_BACKGROUND=/path-to-image
GRUB_BACKGROUND=/home/ubuntu/shanky.jpeg

ファイル shanky.jpeg イメージは既にシステム上にありました。その名前を、背景画像として使用するファイル名に置き換えます。

2. 次に、GRUB 構成ファイルに変更を加えた後、update-grub を実行します。 指図。

3. さらに、背景として Grub ファイルに追加した画像が意図したとおりに機能しているかどうかを確認します。確認するには、マシンを再起動して Shift キーを押します GRUB のロード中にキーを押します。以下に示すように、GRUB には背景イメージがあります。

GRUB によるデュアルブート

Ubuntu GRUB の最大の機能の 1 つは、デバイスの起動時に Windows と Linux のどちらかを選択できることです。デュアル ブートとも呼ばれます。デュアル ブートにより、Linux と Windows を 1 つのデバイスで一緒に使用できるため、複数の OS で作業する IT エンジニアの作業が楽になります。

2021 年初頭現在、デフォルトの os_prober オペレーティング システムのメニュー エントリを自動的に追加するスクリプトは、OS の自動検出に関する潜在的なセキュリティ上の問題により、無効になっていました。インストールされている OS システムを認識している場合は、次のコマンドを使用してこの機能を再度有効にすることができます。

echo GRUB_DISABLE_OS_PROBER=false|sudo tee -a /etc/default/grub && sudo update-grub

デバイスでデュアルブートを構成すると、マシンの起動時に GRUB メニューに似た画面が表示されます。

結論

このチュートリアルでは、GRUB とは何かを学び、記事では GRUB の起動プロセスを紹介しました。

また、いくつかの Ubuntu GRUB 構成を微調整する方法、異なるカーネルをロードする方法、さらにはデュアル ブートについても学びました。

GRUB について十分な知識が得られたので、変更する構成オプションにはどのようなものがありますか?


Linux
  1. Ubuntu16.04Linuxでの基本的なPHP7とNginxの構成

  2. Grub Efiエントリとブート修復?

  3. Linuxリポジトリとロギングの確認

  1. MX Linux 対 Ubuntu

  2. Linux および Ubuntu ターミナルでのコピー アンド ペースト

  3. Linux の hd0 および sda/sdb とは何ですか?

  1. デュアルブートUbuntuLinuxおよびWindows7

  2. Linuxクォータ-UbuntuとDebianでのインストールと構成

  3. Android - Ubuntu/Linux を使用して fastboot を使用してブートローダーのロックを解除します