【 grub2-set-default/grub-set-default 】コマンド――GRUB 2のデフォルト起動メニューを設定するLinux基本コマンドTips(277)

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、GRUB 2のデフォルト起動メニューを設定する「grub2-set-default/grub-set-default」コマンドです。

» 2019年01月31日 05時00分 公開
[西村めぐみ@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、GRUB 2のデフォルト起動メニューを設定する「grub2-set-default/grub-set-default」コマンドです。

grub2-set-default/grub-set-defaultコマンドとは?

 「grub2-set-default」は、GRUB 2(GNU GRand Unified Bootloader 2)のデフォルト起動メニューを設定するコマンドです。

 GRUB 2は、Linux環境でよく使われているブートローダーです。従来のGRUB(GRUB Legacy)とは異なり、GRUB 2ではメニューエントリーが自動生成されるようになり、編集用のコマンドが用意されているなどの変更が施されています。

 「grub2-set-default」コマンドは、CentOS 7以降などで利用可能です。Ubuntu 18.04 LTSでも「GRUB 2」を使用しますが、コマンド名は「grub-set-default」と異なります。コマンドの利用方法はgrub2-set-defaultと同じです。

 なお、次回の起動時のみ有効になるよう、GRUB 2の起動メニューを指定したい場合は、「grub2-reboot/grub-reboot」コマンド(第276回)を使用します。



grub2-set-default/grub-set-defaultコマンドの書式

grub2-set-default [オプション] メニュー

※[ ]は省略可能な引数を示しています。Ubuntu 18.04 LTSでのコマンド名はgrub-set-default、メニューは文字列または0から始まる番号で指定





grub2-set-default/grub-set-defaultの主なオプション

長いオプション 意味
--boot-directory=ディレクトリ GRUBイメージのディレクトリを指定する(デフォルトは/bootで、/boot下のgrubとgrub2ディレクトリが対象になる。grub-set-defaultコマンドのデフォルトは/boot/grub)


デフォルトの起動メニューを指定する

 「grub2-set-default メニュー」で起動メニューを指定します。メニューは文字列でも指定できますが、0から始まる番号で指定するのが簡単でしょう(画面1)。

 画面2では、grub2-set-defaultコマンドでデフォルトのメニューを番号で指定してから、rebootコマンドで再起動しています。

 grub2-set-defaultコマンドの実行にはroot権限が必要です。sudoコマンド(第68回)などを利用してください。

コマンド実行例

grub2-set-default 2

(次回は2番(0から数えるので上から3番目となる)で起動)(画面2


画面1 画面1 GRUB 2の起動メニュー例
画面2 画面2 GRUB2のデフォルト起動メニューを指定したところ


現在の設定を確認する

 現在の起動メニューは/etc/grub2.cfgで設定されています。また、どのメニューから起動するかは「grub2-editenv list」で確認できます。

 画面3では、grepコマンドの「-w」オプションで、「menuentry」という単語が使われている箇所を検索しています(※1)。

※1 CentOSの場合、GRUB 2の起動メニューの内容はCentOS Wiki「2. How to Define the Default Entriesに詳しい。



 menuentryは「0」から始まります。awkコマンド(第115回第120回)を使用すると、番号付きのリストで表示できます(画面4)。

コマンド実行例

grep -w menuentry /etc/grub2.cfg

(メニューエントリーを表示)(画面3

awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

(メニューエントリーを番号付きで表示)(画面4


画面3 画面3 grub2.cfgからmenuentryを含む行を検索したところ
画面4 画面4 menuentryを分かりやすく表示したところ

 Ubuntu 18.04 LTSの場合、現在のメニューエントリーは/boot/grub/grub.cfgにあり、現在の設定は「grub-editenv list」で確認できます(画面5)。

画面5 画面5 Ubuntu 18.04 LTSでメニューエントリーや設定を表示したところ


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『Accessではじめるデータベース超入門[改訂2版]』『macOSコマンド入門』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。