さくら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"