2015年9月30日水曜日

【Microsoft Azure】BootDiagnostics(起動時の診断)を使って起動しないCentOS6のトラブルを解決してみる

今までAzureで一番(ほんとならふたつみっつあるけど)困ってたことは、起動してからログに書くまでのエラーで立ち上がらないLinux仮想マシンの問題である!

過去にCentOS6が起動しなくなったり(SCSIドライバの問題だが完全には解決してないし)、yumでアップデートしたら起動しなくなったり。

いろいろ苦労してましたが、先日機能追加されたBootDiagnosticsで起動時のログがPreviewポータルから見れるようになりまして。
https://azure.microsoft.com/en-us/blog/boot-diagnostics-for-virtual-machines-v2/

ここでは仮想マシンV2じゃないとできないような書き方ですが、仮想マシン(クラシック)でも、仮想マシンの「診断」で「Boot diagnostics」にチェックを入れて有効にすると使えます。(何度か設定が保存できなかったりしましたが...)

再起動すると、以下のように起動時のログを見ることができます。


今まで起動しなかった仮想マシンを起動すると、こんなメッセージが出ました。
ちなみに、この問題はSELinuxがらみのようです。下記のブログにありました。
http://stackoverflow.com/questions/12867591/how-to-solve-kernel-panic-not-syncing-attempted-to-kill-init-without-er

私の場合は、他のマシンでディスクをマウントして、一旦kernelをダウングレード(/etc/grub.confを編集)から起動することで対応しましたが、これでかなりまともなデバッグができるのではないかと思います。

なお、Linux仮想マシンのエージェントをちょっと設定すると、起動時のログのみならずシリアルコンソール経由で画面のログを見ることができます。
https://azure.microsoft.com/ja-jp/documentation/articles/virtual-machines-linux-agent-user-guide/

このサイトの記事を参考に、管理者権限で以下のコマンドを実行すると再起動後から有効になります。
# waagent -install
# waagent -serialconsole






0 件のコメント: