Advanced Ubuntu Administration and Management Best Practices
Ubuntu Server の運用項目を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
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/grubGRUB 設定を反映する
/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 rebootcat /proc/cmdline
uname -r
systemctl --failedHugePages や 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 確認までをセットにすることが重要です。

