要点
- Grubを「最後に選択したエントリを保存する」よう設定すれば、Windowsの自動再起動やアップデート後に再びWindowsが起動するようになります。短い手順で済み、元に戻すバックアップ手順も含みます。
概要
デュアルブート環境では、Grub(GNU GRUB)がブートメニューと既定の起動エントリを管理します。Windowsはアップデートなどで再起動を繰り返すことが多く、その度にGrubの既定エントリに戻ってしまうと不便です。Grubに「最後に起動したエントリを保存」させる設定を加えれば、再起動後も同じOSが起動されます。本記事では安全なバックアップ手順、設定の変更、変更反映、元に戻す手順、よくある問題と代替案を網羅します。
重要: 本稿はルート権限(sudo)が必要な操作を含みます。実行前に必ずバックアップを取り、コマンドは正確に入力してください。
前提知識(1行定義)
- Grub: ブート時にOSを選ぶプログラム。設定ファイルは /etc/default/grub と /etc/grub.d にあります。
バックアップ(最初に行う)
まず現在のGrub設定を丸ごとバックアップします。端末を開き、ホームにバックアップ用フォルダを作ります。
mkdir -p ~/grub-backup
重要なファイルをコピーします。
cp /etc/default/grub ~/grub-backup/
cp -a /etc/grub.d ~/grub-backup/
- ~/grub-backup/grub は /etc/default/grub のバックアップです。
- ~/grub-backup/grub.d/ は /etc/grub.d のディレクトリコピーです。
これで変更を行って問題が起きても元に戻せます。
Grubを編集して「最後のエントリを保存」する
端末で /etc/default/grub をテキストエディタで開きます。GUI用途なら gedit、CLIなら nano などを使えます。例:
sudo nano /etc/default/grub
ファイル内の次の行を探します。
GRUB_DEFAULT=0
これを次のように変更します。
GRUB_DEFAULT=saved
その直後に以下の行を追加します(存在しなければ新規で)。
GRUB_SAVEDEFAULT=true
保存してエディタを閉じます(nano なら Ctrl+O → Enter → Ctrl+X)。
補足: なぜこれで動くか(短い説明)
GRUB_DEFAULT=saved は、grub が /boot/grub/grubenv に保存された最後の選択を既定として読むことを意味します。GRUB_SAVEDEFAULT=true を有効にすると、ユーザーがブートメニューで選んだ項目を次回に保存します。
その他の小さな調整(ユーザー体験向上)
同じ /etc/default/grub ファイル内で、よく使う調整は以下の通りです。
タイムアウト(メニューが表示される秒数)の変更
GRUB_TIMEOUT=5
- 既定は 5 秒。もっとゆっくりなら 10〜15、速くしたいなら 3 に変更してください。
メニューをデフォルトで隠す(Shift 押下で表示)
シンプルに起動したい場合は、以下の設定を検討します。
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=3
この設定では通常メニューが表示されませんが、起動時に Shift キー(BIOS/UEFI によっては Esc や別のキー)を押すと表示できます。環境によって動作が異なるので、必ず手元でテストしてください。
Windowsの『高速スタートアップ』に注意
Windowsの高速スタートアップ(Fast Startup)が有効だと、完全にシャットダウンされずに再起動挙動が変わることがあります。デュアルブートではこの機能をオフにするとトラブルを減らせます。
Grub設定の反映(更新)
編集後の設定をGrubに反映させます。多くのディストリビューションでは以下が使えます。
sudo update-grub
一部のディストリビューションでは上記が無く、代わりに次のコマンドです。
sudo grub-mkconfig -o /boot/grub/grub.cfg
これらのコマンドは /etc/default/grub と /etc/grub.d の内容から新しい /boot/grub/grub.cfg を生成します。
変更を反映したら再起動して、Windowsを選んでからWindowsが自動で再起動する更新や操作を試して、意図どおり最後に選んだOSに戻るか確認してください。
バックアップから元に戻す方法(ロールバック)
もし何か問題が起きた場合は、先ほど保存したバックアップを使って元に戻せます。端末で次のように実行します。
sudo cp ~/grub-backup/grub /etc/default/grub
sudo cp -a ~/grub-backup/grub.d /etc/
その後、再び grub を更新します。
sudo update-grub
# または
sudo grub-mkconfig -o /boot/grub/grub.cfg
これで編集前の状態に戻ります。
よくある問題と対処法(トラブルシューティング)
- 起動後にGrubメニューがまったく表示されない
- UEFI環境で Secure Boot が有効だと制約があります。必要なら Secure Boot を一時無効にするか、署名済みブートローダを使ってください。
- update-grub が見つからない
- ディストリビューションの違いです。代替コマンドは sudo grub-mkconfig -o /boot/grub/grub.cfg です。
- Windowsが勝手に既定になってしまう
- Windowsの高速スタートアップを無効化、あるいはWindows側での再起動ループや自動修復の設定を確認してください。
- EFIとBIOS(レガシー)の混在
- 両環境が混在しているとブートローダのインストール先が混乱します。どちらのモードでインストールされているか確認(efibootmgr など)してください。
いつこの方法が効かないか(反例)
- Grub以外(例: rEFInd、systemd-boot)をメインで使っている場合はこの手順は当てはまりません。
- ブートがWindows側で完全に管理されていて、Grubが起動順に入っていない場合。
- ハードウェアやファームウェアのバグで設定が保存されない極めて稀なケース。
代替アプローチ(短い比較)
- rEFInd: UEFI向けの視覚的で検出力の高いブートマネージャ。設定は比較的直感的。
- systemd-boot: 軽量でシンプル。ESP(EFI System Partition)を直接使う構成が中心。
選択のヒント: UEFIのみ・シンプル重視なら systemd-boot、複数OSやカスタムカーネルを頻繁に扱うなら rEFInd、既にGrubが動いているなら今回の小変更が最も手軽です。
管理者・ユーザー別チェックリスト
- 一般ユーザー(変更前)
- 重要ファイルをバックアップ
- ~/grub-backup を作成
- /etc/default/grub のコピーを取得
- 管理者(設定適用時)
- GRUB_DEFAULT=saved と GRUB_SAVEDEFAULT=true を追加
- GRUB_TIMEOUT を確認
- sudo update-grub で反映
- 再起動して動作確認
- 問題発生時
- バックアップから復元
- Secure Boot と UEFI 設定を確認
コマンドチートシート
# バックアップ
mkdir -p ~/grub-backup
cp /etc/default/grub ~/grub-backup/
cp -a /etc/grub.d ~/grub-backup/
# 編集(例)
sudo nano /etc/default/grub
# 反映
sudo update-grub
# または
sudo grub-mkconfig -o /boot/grub/grub.cfg
# 復元
sudo cp ~/grub-backup/grub /etc/default/grub
sudo cp -a ~/grub-backup/grub.d /etc/
sudo update-grub
テストケース(確認項目)
- Grub設定を変更し update-grub を実行する。
- Windowsを選択して起動し、Windows更新で再起動を発生させる。
- 再起動が終わった後、期待どおりWindowsが起動するか確認する。
- メニューが隠れる設定をした場合は、起動時に Shift を押してメニューが表示されるかテストする。
セキュリティと注意点
- Secure Boot の設定や署名の有無は注意点です。署名されていないカスタムブートローダを使うと Secure Boot により起動が阻害されることがあります。
- パーティション操作やESPの変更はデータ損失リスクを伴うため慎重に。必要なら事前に外部メディアにバックアップを取ってください。
まとめ
Grub を「最後に選択したエントリを保存する」設定にすると、Windowsの再起動/アップデート後も期待したOSが起動されやすくなります。手順は、設定ファイルの編集、update-grub(または grub-mkconfig)で反映、そして必要に応じてバックアップからの復元です。環境やファームウェア(UEFI/BIOS)、Secure Boot によって挙動が変わる点に注意してください。
あなたの環境ではどの方法がうまくいきましたか?コメントで教えてください。