【Ubuntu Windows10 デュアルブート】grubブートマネージャーにて前回終了したOSで再起動する

基本的に【Ubuntu 20.04 LTS】grubブートマネージャー(ブートローダー)画面ではデフォルトでUbuntuが選択されています。

Windows10再起動の際、気づいたらすでにUbuntuで再起動されてしまい、もう一度再起動しブートマネージャー画面が現れるまで待機。そしてWindows10を手動で選択。といった面倒くさい作業をしないといけない場面が多々あったため、grubのデフォルト設定を変えてみました。

環境(OS)

今回は下記の環境でデュアルブートを行っています。

  • Windows10
  • Ubuntu 20.04 LTS

手順

  1. /etc/default/grub に管理者権限でアクセス
  2. /etc/default/grub に変更を加える
  3. 上記の設定を反映させる

大まかに説明すると大体このような流れとなります。

/etc/default/grub に管理者権限でアクセス

sudo コマンドにて「vim」または「nano」を使い、設定ファイルを変更

sudo vim /etc/default/grub
sudo nano /etc/default/grub

上記コマンドのどちらかを入力し使いやすいエディタを選択

/etc/default/grubファイルに変更を加える

ファイルの記述は割と簡単でハイライトしてある部分を少し弄るだけです。

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

上記ハイライトを下記の値に変更します。

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

※下記の内容は「GRUB_DEFAULT=0」の補足説明ですので読み飛ばしても大丈夫です。

GRUB_DEFAULTの「0」はブートマネージャー起動後デフォルトで選択されるlistの順番です。因みにlistの順番は0から数えた数値となります。

当方の環境では「0がUbuntu」「2がWindows10」となっていました。

単純にデフォルトのブートOSをWindows10としたいなら、GRUB_DEFAULT=2とすれば良いでしょう。

しかし、今回は「前回終了したOSで再起動する」ことを目的としているためこのような変更となりました。

grubファイルの設定を反映させる

下記コマンドにてgrubをupdateし、設定を反映させます。

sudo update-grub

補足

GRUBの設定値についてはあまり詳しくありませんが大体下記のような感じではないかと思います。(間違いがあった場合はご指摘くださいますと幸いです。)

GRUB_DEFAULTの設定値を0や2などの数値にせずsavedとしたことで、前回起動したOSの情報が入るようになっています。

そこに「GRUB_SAVEDEFAULT=true」と記述を追加することで前回起動したOS情報の保存ができるため、前回終了したOSで再起動することが可能となります。

変更後の/etc/default/grubファイル

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'


GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

#GRUB_DEFAULT=0
#GRUB_TIMEOUT_STYLE=hidden
#GRUB_TIMEOUT=10
#GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
#GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

上記が設定変更後のgrubファイルのすべての文字列で、ハイライトは変更を加えた部分となります。

15〜20行目は初期の設定を念の為コピーし、#でコメントアウトしています。なにか不具合が出た場合はハイライトの部分を削除し、15〜20行目のコメントアウトした箇所をもとに戻せばOKかと。

関連記事

コメント

この記事へのコメントはありません。

TOP