さくらVPSでUbuntu 10.10から11.04にdo-release-upgradeしたらgrubプロンプトへと叩き落とされた場合の対処

徹夜明けの午後に見るgrubプロンプトはちょっと胃に来ますよね。というわけでさくらVPSのカスタムOSインストールで入れたUbuntu 10.04 LTSを11.10まで引き上げようとしたときにハマった部分のメモ。
10.04から10.10へ上げるときにgrubをアップデートするかどうか尋ねられ、このときにターゲットを /dev/vda にしてきちんとアップデートすればgrubプロンプトを目にすることなく11.10へたどりつけるらしい(参考:さくら VPS で Ubuntu 10.04 (LTS) から 11.10 にアップグレードするには - Tosshi Note)。

でもアップデートせずに進んでも10.10は起動できてしまう。ただし、そのまま10.10→11.04に上げて再起動すると、シリアルコンソールから救出するハメになる。最初からやり直すのは面倒だと思ったら以下の手順で。

※下記はパーティショニングで "Guided - use entire disk" を選択した場合の例。

set root=(hd0,1)
linux /vmlinuz root=/dev/vda1 ro
initrd /initrd.img
boot

するとブートするのでログインしてから

sudo grub-install /dev/vda
sudo update-grub

以上。

ちなみに最終的な(11.10へ上げた段階での) /etc/default/grub は以下のようにしてあります(シリアルコンソールOK)。

# 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=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
#GRUB_CMDLINE_LINUX_DEFAULT="splash quiet"
GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0,115200n8"
GRUB_CMDLINE_LINUX=""

GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"

# 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"