at posts/single.html

さくらVPSのUbuntuがリブート後に起動しなくなった

さくらVPSの障害でサーバが落ちていたんだけど、復旧後にOSが起動しないとさくらサポートさんから連絡があった。

障害の解消後、弊社にてご利用のVPSサーバのOS起動を確認させていただいたところ、ブートローダ GRUB が正しく動作せず、起動完了しない問題があることを確認しました。原因として、以前に kernel等のアップデートを行っていただいた際に、GRUB の更新に失敗していた可能性が考えられます。

GRUBを再インストールすることで復旧できる可能性がございますが、ご利用中のOSはVPSサービス標準インストールのOSとは異なると見受けられ、弊社では対応を致しかねます。申し訳ございません。

VPSコントロールパネルの「リモートコンソール」機能にて、VPSサーバのコンソールを直接操作していただくことが可能です。大変申し訳ございませんが、お客さまにて内容をご確認いただけますようお願いいたします。

うちのVPSサーバはUbuntu10.04をインストールした後に、12.04までアップデートしている。その途中でアップデートに失敗していてGRUBに爆弾を抱えていた状態だったんだろう。そういえば12.04にアップデートした後に、一度も再起動していない。VNCコンソールから接続して状況を確認すると、ブート直前で止まってる。

ことがGRUBだけに、下手をすると二度と起動しなくなる。ドキドキしながら類似の事例を探すと、レスキューモードでGrubリカバリというページが見つかった。

sakuraVPS 上の CentOS 5 で yum update 後 reboot したらGRUBエラーでサーバが復帰しなくなった際、sakura のサポートセンターから案内された復旧手順。

さくらVPSのカスタムOSインストール機能を使って、レスキューモードからGRUBを再インストールするというもの。OSの違いはあるものの、参考になりそう。

レスキューモードで復旧

さくらVPSのコントロールパネルへ移動し、カスタムOSインストールへ。Ubuntu12.04が提供されていたので、これを選択する。(Ubuntu12.04のCD-ROMを挿入してマシンを再起動するイメージ)

さくらVPSでGRUB再インストール(1)

Ubuntu12.04のインストーラが起動するので、レスキューモードを選択。ネットワークの設定をして進めると、レスキューモードのメニューが表示される。 サーバのディスクが見えているので、 /dev/vda1 をルートとして選択。

さくらVPSでGRUB再インストール(2)

次に何をするかを選択。最終的には Reinstall GRUB boot loader を選べばいいんだけど、まずは Execute shell in /dev/vda1 を選択してシェルモードでいろいろと調査をした。 parted -l コマンドでパーティション情報を確認したり。

さくらVPSでGRUB再インストール(3)

GRUBのインストール先を聞かれるので /dev/vda と入力する。

さくらVPSでGRUB再インストール(4)

これでGRUBの再インストールが完了。再起動すると無事にサーバが起動した。心臓に悪いね。

参考

関連する日記