万が一に備えて有効化しておきたい、Azure仮想マシンの「シリアルコンソール」接続Microsoft Azure最新機能フォローアップ(52)(2/2 ページ)

» 2018年06月13日 05時00分 公開
[山市良テクニカルライター]
前のページへ 1|2       

Windows仮想マシンではEMSのSACコンソールを利用

 Windowsの標準のローカルコンソールは、VGAなどのビデオ出力です。多くの人はWindowsにシリアルコンソールなんて存在しないと思っているのではないでしょうか。実は、Windows Server 2003以降は、シリアルポートに対応したアウトオブバンド管理機能として「EMS(Emergency Management Services:緊急管理サービス)」を標準で搭載しており、EMSの主要な機能として「Special Administration Console(SAC)」という特別なコンソールを備えています。

 SACコンソールでは、プロセスの一覧表示(tまたはf)、IPネットワーク情報の表示と設定(i)、コンピュータの情報表示(id)、プロセスの制御(k、l、r)、時刻の表示と設定(s)、再起動(restart)、シャットダウン(shutdown)、そして利用可能な状態であればコマンドプロンプトチャネルの作成と切り替え(cmdおよびch)が可能です。詳しくは、以下の連載記事を参照してください。

 Azure MarketplaceのWindowsイメージからデプロイした仮想マシンでは、EMSは構成されていません。そのため、「シリアルコンソール(プレビュー)」によるアクセスを可能にするために、事前にゲストOS側でCOM1を使用するようにEMSを有効化し、再起動しておく必要があります。それには、仮想マシンにRDP接続し、コマンドプロンプトで次のコマンドを実行します(画面4)。

bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200
bcdedit /ems {current} on
shutdown /r /t 0

画面4 画面4 Windows仮想マシンでCOM1を使用するようにEMSを構成し、ゲストOSを再起動する

 これで次回の仮想マシン起動時からEMSが利用可能になり、「シリアルコンソール(プレビュー)」によるアクセスも可能になります。「イベント:CMDコマンドを利用できます。」(英語環境の場合は「EVENT: The CMD command is now available.」)と表示されたら、コマンドプロンプトチャネルを作成して切り替え、Windowsのコマンドプロンプト環境にログオンできるようになります(画面5)。

画面5 画面5 「シリアルコンソール(プレビュー)」でSACコンソールにアクセスし、コマンドプロンプトチャネルを作成して、Windowsにログオンする

 コマンドプロンプト環境が利用できれば、ファイル操作、レジストリの編集(REGコマンドを使用)、ブート環境の編集(BCDEDITコマンドを使用)、サービスやプロセスの操作(NET、SC、TASKLIST、TASKKILLコマンドなど)、システム情報やイベントログの参照(WMICコマンドなど)などでトラブルシューティングを行えるでしょう。「powershell.exe」を開始すれば、さまざまなPowerShellコマンドレットを利用することもできます。

 なお、LinuxやWindowsの通常のシリアルコンソールは、電源オン後のかなり早い段階から出力を開始し、シャットダウンを開始してから電源が完全にオフになる直前まで利用可能ですが、実際に「シリアルコンソール(プレビュー)」を利用してみると、利用可能な幅はそれよりも短い印象を持ちました。そのため、仮想マシンの開始直後や再起動中などタイミングによってはトラブルシューティングには利用できない場合もあります。

[参考]シリアルコンソールはオンプレミスの仮想化環境でも活用できる

 Windows ServerのHyper-Vおよびその他の仮想化製品は、COMポートのリダイレクト機能をサポートしています。Hyper-Vの場合は、COM1またはCOM2ポートを名前付きパイプにリダイレクトすることができ、OSに対するシリアルコンソール接続やカーネルデバッグのための接続に利用することができます(画面6画面7)。

画面6 画面6 Hyper-V仮想マシンのCOMポートリダイレクトを構成して、名前付きパイプ(PuTTYを使用)経由でLinuxのシリアルコンソールおよびWindowsのSACコンソールに接続したところ
画面7 画面7 通常、SACコンソールはSTOPエラーで停止している状態やクラッシュダンプ中の状態でも接続性を提供する。Azureの「シリアルコンソール(プレビュー)」でここまでできるかは未確認

 Windows仮想マシンでSACコンソールを利用可能にする方法は、Azure仮想マシンの場合と同様です。Linux仮想マシンでシリアルコンソールを利用可能にする方法については、Azure MarketplaceのLinuxイメージからデプロイした仮想マシンの設定(CentOSの場合は/etc/default/grub)を参考にするとよいでしょう。

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(Oct 2008 - Sep 2016)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。