このチュートリアルでは、Ubuntuまたはその他のLinuxディストリビューションでgrubを更新する方法を学習します。また、このgrub更新プロセスがどのように機能するかについても1つか2つ学びます。
grubを更新する方法
Ubuntuおよび他の多くのLinuxディストリビューションは、update-grubと呼ばれる便利なコマンドラインユーティリティを提供します。
grubを更新するには、sudoを使用してターミナルでこのコマンドを実行するだけです。
sudo update-grub
次のような出力が表示されます:
[email protected]:~$ sudo update-grub
[sudo] password for abhishek:
Sourcing file `/etc/default/grub'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.0.0-37-generic
Found initrd image: /boot/initrd.img-5.0.0-37-generic
Found linux image: /boot/vmlinuz-5.0.0-36-generic
Found initrd image: /boot/initrd.img-5.0.0-36-generic
Found linux image: /boot/vmlinuz-5.0.0-31-generic
Found initrd image: /boot/initrd.img-5.0.0-31-generic
Found Ubuntu 19.10 (19.10) on /dev/sda4
Found MX 19 patito feo (19) on /dev/sdb1
Adding boot menu entry for EFI firmware configuration
done
update-grub2と呼ばれる同様のコマンドが表示される場合があります。 update-grubとupdate-grub2の間で心配したり混乱したりする必要はありません。これらのコマンドは両方とも同じアクションを実行します。
約10年前、grub2が導入されたばかりのときに、update-grub2コマンドも導入されました。現在、update-grub2はupdate-grubへの単なるシンボリックリンクであり、両方ともgrub2構成を更新します(grub2がデフォルトであるため)。
update-grubコマンドが見つかりませんか?その場合の対処方法は次のとおりです
Linuxディストリビューションでupdate-grubコマンドを使用できない可能性があります。
その場合はどうしますか?このようなLinuxディストリビューションでgrubをどのように更新しますか?
慌てる必要はありません。 update-grubコマンドは、「grub-mkconfig-o/boot/grub/grub.cfg」を実行してgrub2構成ファイルを生成するための単なるスタブです。
つまり、任意のLinuxディストリビューションで次のコマンドを使用してgrubを更新できます。
sudo grub-mkconfig -o /boot/grub/grub.cfg
もちろん、update-grubコマンドを覚えるのは上記のコマンドよりもはるかに簡単であり、これが最初に作成された理由です。
update-grubはどのように機能しますか?
Linuxディストリビューションをインストールすると、(通常は)grubブートローダーをインストールするように求められます。
grubの一部がMBR/ESPパーティションにインストールされます。残りのgrubは、Linuxディストリビューションの/ boot/grubディレクトリにあります。
そのマニュアルページによると、update-grubは/bootディレクトリを調べることで機能します。 vmlinuz-で始まるすべてのファイルはカーネルとして扱われ、grubメニューエントリを取得します。また、検出されたカーネルと同じバージョンで検出されたramdiskイメージのinitrd行が追加されます。
また、os-proberを使用する他のオペレーティングシステムのすべてのディスクパーティションを調べます。他のオペレーティングシステムが見つかった場合は、それらをgrubメニューに追加します。
grubを更新する必要があるのはなぜですか?
grubを更新する必要がある場合、いくつかのシナリオが考えられます。
grub構成ファイル(/ etc / default / grub)を変更して、デフォルトの起動順序を変更したり、デフォルトの起動時間を短縮したとします。グラブを更新しない限り、変更は有効になりません。
別のシナリオは、同じシステムに複数のLinuxディストリビューションがインストールされている場合です。
たとえば、Intel NUCには、2つのディスクがあります。最初のディスクにはUbuntu19.10があり、次にUbuntu18.04をインストールしました。 2番目のOS(Ubuntu 18.04)も独自のgrubをインストールし、grub画面はUbuntu18.04grubによって制御されるようになりました。
2番目のディスクにMXLinuxをインストールしましたが、今回はgrubをインストールしませんでした。既存のgrub(Ubuntu 18.04で制御)にすべてのOSエントリを処理させたい。
このシナリオでは、Ubuntu 18.04のgrubを更新して、MXLinuxを表示できるようにする必要があります。
上の画像でわかるように、grubを更新すると、18.04にインストールされているさまざまなLinuxカーネルと、異なるパーティションにあるUbuntu19.10およびMXLinuxが見つかります。
MX Linuxでgrubを制御する場合は、grub-installコマンドを使用してMX Linuxにgrubをインストールすると、MXLinuxのgrubがgrub画面の制御を開始します。要点はわかりますよね?
Grub CustomizerなどのGUIツールを使用すると、grubに変更を加えるためのより簡単な方法です。
最後に…
当初は、簡単なヒントとして短い記事にするつもりでした。しかし、それから私はそれに関連するいくつかのことを説明して、(比較的)新しいLinuxユーザーが単なるコマンド以上のものを学ぶことができるようにすることを考えました。
気に入りましたか?質問や提案はありますか?コメントを残してください。