手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 GRUB の基本設定 – 起動パラメータと復旧手順を管理する

関連する記事

GRUB は、Ubuntu 26.04 の起動時にカーネルと起動パラメータを渡す重要な仕組みです。/etc/default/grub を変更しただけでは反映されず、update-grub/boot/grub/grub.cfg を再生成し、再起動後に確認する必要があります。

この記事では、/etc/default/grub のバックアップ、起動メニューとタイムアウト、GRUB_CMDLINE_LINUX_DEFAULT、構文確認、update-grub、再起動後確認、戻し方を扱います。起動不能につながる領域なので、変更前後の確認を省略しないことが重要です。

GRUB で扱う主な項目

  • GRUB_DEFAULT: 既定で起動するエントリです。
  • GRUB_TIMEOUT_STYLE: メニュー表示方式です。
  • GRUB_TIMEOUT: 起動待ち時間です。
  • GRUB_CMDLINE_LINUX_DEFAULT: 通常起動時に渡すカーネルパラメータです。
  • GRUB_CMDLINE_LINUX: 通常起動と recovery の両方に渡すパラメータです。

現在の設定を確認する

変更前に現在の /etc/default/grub と、実際に起動したカーネルパラメータを確認します。

grep -nE '^GRUB_' /etc/default/grub
cat /proc/cmdline
uname -r

バックアップを取得する

/etc/default/grub を変更する前にバックアップを取ります。GRUB は起動に関わるため、戻せる状態を先に作ります。

sudo cp -a /etc/default/grub /etc/default/grub.bak.$(date +%Y%m%d%H%M%S)
ls -l /etc/default/grub*

起動メニューとタイムアウトを設定する

サーバー用途では、通常は起動待ち時間を短くします。一方、リモートコンソールや復旧作業を重視する環境では、メニューを表示して数秒待つ設定も検討します。

sudo sed -i -E 's/^GRUB_DEFAULT=.*/GRUB_DEFAULT=0/' /etc/default/grub
sudo sed -i -E 's/^GRUB_TIMEOUT_STYLE=.*/GRUB_TIMEOUT_STYLE=hidden/' /etc/default/grub
sudo sed -i -E 's/^GRUB_TIMEOUT=.*/GRUB_TIMEOUT=0/' /etc/default/grub

カーネルパラメータを設定する

カーネルパラメータは GRUB_CMDLINE_LINUX_DEFAULT に設定します。以下はコンソール出力を tty0 にする最小例です。KVM、HugePages、IOMMU などの設定を加える場合は、用途ごとに値の意味を確認します。

sudo sed -i -E 's/^GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT="console=tty0"/' /etc/default/grub
sudo sed -i -E 's/^GRUB_CMDLINE_LINUX=.*/GRUB_CMDLINE_LINUX=""/' /etc/default/grub

設定ファイルの構文を確認する

/etc/default/grub は shell 形式の設定ファイルです。引用符の閉じ忘れなどがあると update-grub で問題になります。

sudo sh -n /etc/default/grub
grep -nE '^GRUB_' /etc/default/grub

GRUB 設定を反映する

/etc/default/grub を変更したら、update-grub を実行して /boot/grub/grub.cfg を再生成します。

sudo update-grub

生成結果を確認する

update-grub 後に、生成された /boot/grub/grub.cfg に意図したパラメータが含まれているか確認します。

grep -n 'console=tty0' /boot/grub/grub.cfg || true
grep -n 'menuentry ' /boot/grub/grub.cfg | head

再起動後に確認する

GRUB の変更は再起動後に初めて効くものがあります。再起動後に /proc/cmdline を確認し、実際のカーネルパラメータを見ます。

sudo reboot
cat /proc/cmdline
uname -r
systemctl --failed

HugePages や IOMMU を設定する場合

HugePages や IOMMU は GRUB のカーネルパラメータで設定することがあります。値を追加する場合は、既存のパラメータを上書きしないように全体を確認してから変更します。

grep -n '^GRUB_CMDLINE_LINUX_DEFAULT=' /etc/default/grub
cat /proc/cmdline
grep -i huge /proc/meminfo || true
dmesg | grep -i iommu || true

戻す場合

起動パラメータに問題がある場合は、バックアップから /etc/default/grub を戻し、update-grub を再実行します。起動できない場合に備えて、リモートコンソールやレスキューモードの利用手段も確認しておきます。

sudo cp -a /etc/default/grub.bak.YYYYMMDDHHMMSS /etc/default/grub
sudo sh -n /etc/default/grub
sudo update-grub

復旧時に見る項目

  • リモートコンソールで GRUB メニューを表示できること。
  • 直前に追加したカーネルパラメータを一時的に外して起動できること。
  • /etc/default/grub のバックアップが残っていること。
  • レスキューモードや Live ISO から root ファイルシステムをマウントできること。
  • update-grub 後の /boot/grub/grub.cfg を確認していること。

確認項目

  • /etc/default/grub の変更前バックアップを取っていること。
  • sudo sh -n /etc/default/grub が通ること。
  • sudo update-grub がエラーなく完了すること。
  • 再起動後に cat /proc/cmdline で反映を確認していること。
  • 起動不能時の復旧手段を事前に用意していること。

まとめ

Ubuntu 26.04 の GRUB 設定は、/etc/default/grub の変更、構文確認、update-grub、再起動後確認を一連の作業として扱います。起動パラメータはサーバーの起動可否に直結するため、バックアップ、復旧手段、実際の /proc/cmdline 確認までをセットにすることが重要です。

関連する記事
Ubuntu 26.04 GRUB の基本設定 – 起動パラメータと復旧手順を管理する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る