GRUB Linux Bootloaderは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ステップを起動し、次にMaster Boot Record(MBR)でブートローダーを検索します。
MBRは任意のハードディスクの最初のセクタにある情報です。MBRに保存されている情報は、OSをデバイスのRAMにロード(ブート)します。
この記事は主にMBR側に焦点を当てています。ただし、MBRの他にもGUIDパーティションテーブルを使用するGPTもあります。GPTは、MBRディスクが最大で4つのプライマリパーティションしか保持できないのに対して、4つ以上のパーティションを作成する予定がある場合はより良いです。
以下のスクリーンショットでは、ブートプロセスのダイアグラムが表示されます。Ubuntu GRUBが選択したカーネルをメインメモリ(RAM)にロードします。カーネルがロードされた後、ユーザーはデバイスにログインできます。

Ubuntu GRUBとLILOブートローダーの比較
Linuxワールドには3つの主要なブートローダーがあります:LILO、GRUB、およびGRUB2。GRUB2はLinuxディストリビューションでの最新かつ主要なブートローダーです。GRUB2はこのチュートリアルで最も使用され、デフォルトのUbuntuブートローダーですが、LILOはまだLinuxで存在しています。このセクションでは、それらがどのように対立しているかを学びます。
他のLinuxブートローダーは市場でも利用可能であり、GNU GRUBはメモリ管理とオブジェクト指向フレームワークのサポートが優れています。もう一つはSYSLINUXという軽量なブートローダーです。
GRUBは複数のオペレーティングシステムを起動することができますが、LILOは1つのOSしか起動できません。

Ubuntu GRUBはWindows、Linux、Unix、macOS、BSD、Solarisと互換性がありますが、LILOは主にLinuxオペレーティングシステムをサポートしています。
LILOの設定ファイルを更新する場合、MBRにLILOを再インストールする必要があります。GRUBの設定を変更する場合は再インストールが不要です。
異なるカーネルやリカバリーモードの選択
このセクションでは、破損したカーネルからデバイスをリカバリーする際にカーネルを選択する方法を示します。
A kernel works as an interface between hardware and software. It controls all the processes that users run on the device.
以下はOracle VirtualBoxでVMを使用してカーネルを選択する手順です。
1. Oracle VirtualBoxを使用してUbuntuデバイスコンソールに直接ログインします。
2. 以下のようにシャットダウンコマンドを使用してUbuntuマシンを再起動します。
デバイスが再起動すると、Ubuntu GRUBの読み込み中にShiftキーを押し続けると、GRUBブートローダーメニューが表示されます。何も選択しない場合、GRUBはデフォルトのカーネルでシステムを起動し、ブートプロセスを進めます。
デフォルトのカーネル以外の異なるカーネルでブートする必要がある場合や、ファイルの破損やカーネルの正しく読み込まれないなど、システム内で問題が発生した場合には、Ubuntuの詳細オプションを選択する必要があります。

4. Ubuntuの詳細オプションを選択すると、Ubuntu GRUBメニューが表示されます。メニューには、選択できるさまざまなカーネルオプションが表示されます。オプションを選択しない場合は、最初に表示されたカーネルがデフォルトで読み込まれます。
以下の画像で確認できるように、各カーネルには2つの追加オプションがあります: upstartとrecovery。
- (upstart):イベントベースの/sbin/initデーモンの代替であり、起動時にタスクとサービスの起動を処理し、シャットダウン時に停止し、システムが実行中の間にそれらを監視します。/sbin/init。
- (recovery mode):システム内の障害からカーネルを回復するためのモード。

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

デフォルトのオペレーティングシステムの設定
これで、GRUBについてもう少し詳しくなったので、いくつかのGRUB構成オプションを調整します。まず、デフォルトで読み込まれるオペレーティングシステムを設定します。
1. お気に入りのSSHクライアントを使用してUbuntuデバイスにログインします。
2. 以下に示すように、awk
コマンドを実行してGRUBブートメニューエントリをリストアップします。このawk
コマンドは、/boot/grub/grub.cfgに格納されているすべてのエントリを表示します。ファイルの内容は端末に表示されます。行に注意してください。行に関連する番号が必要ですが、これは0から始まります。つまり、Ubuntu
行は0
で、Ubuntu, with Linux 4.4.0-210-generic
は1
です。

3. 次に、GRUB構成ファイルを編集します。ファイルを編集するにはvi
を使用できますが、必要に応じて好きなエディタを使用してください。
今度は、GRUB_DEFAULT
の値を設定します。そのためには、実行したawk
コマンドが必要です。これがOSのエントリです。 GRUB_DEFAULT
を0
に設定すると、GRUBブートメニューエントリの最初のOSがデフォルトで起動します。 1
に設定すると、デバイスはデフォルトで2番目のOSエントリを起動します。以下のスクリーンショットでは、最初のOSエントリUbuntuがデフォルトで起動するように設定されています。
デフォルトでは、GRUBはブートメニューで待機せず、即座に起動を開始します(0秒)。
GRUB_TIMEOUT
の値を変更することで、この待機時間を変更できます。値が5
の場合、ブートメニューは5秒間表示され、システムの起動時にロードするOSを選択できます。

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

Ubuntu GRUBでの背景画像の設定
GRUBの構成は地味である必要はありません。GRUBに少し味を加えるために、GRUBメニューに背景画像を追加できます。GRUB_BACKGROUND
オプションを使用してGRUBに画像を設定できます。以下の手順に従ってGRUBをカスタマイズしてください。
1. vi
または好みのテキストエディタでGRUB構成ファイルを編集し、以下に示すようにGRUB_BACKGROUND
行を追加します。このチュートリアルでは、画像はUBUNTU
という名前のユーザーホームフォルダに保存されています。GRUBはrootとして実行されるため、ファイルシステム全体の画像にアクセスできます。変更を加えたら、構成ファイルを保存してください。
ファイルshanky.jpegの画像はすでにシステムにありました。背景画像として使用したいファイル名でその名前を置き換えてください。
2. 次に、GRUB構成ファイルの変更を行った後、update-grub
コマンドを実行します。

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

GRUBでのデュアルブート
UbuntuのGRUBの最も優れた機能の1つは、デバイスの起動時にWindowsとLinuxの間を選択できることです:一般的にはデュアルブートとして知られています。デュアルブートにより、LinuxとWindowsを1つのデバイスで併用でき、複数のOSで作業するITエンジニアの生活が楽になります。
2021年初頭現在、自動的に追加のオペレーティングシステムメニューエントリを追加するデフォルトのos_prober
スクリプトは無効化されています。これは、自動OS検出に関する潜在的なセキュリティ懸念があるためです。インストールされているOSシステムを把握している場合、この機能を以下のコマンドで再度有効にできます。
デバイスでデュアルブートを構成したら、マシンを起動するときにGRUBメニューに似た画面が表示されるはずです。

結論
このチュートリアルでは、GRUBとは何かを学び、記事ではGRUBのブートプロセスについて紹介しました。
また、いくつかのUbuntu GRUB構成を調整する方法、異なるカーネルをロードする方法、さらにデュアルブートについても学びました。
GRUBの音の知識を得たので、どのような構成オプションを変更しますか?