かつて山市良と呼ばれたおじさんのブログ
セイテクエンジニアのブログ かつて山市良と呼ばれたおじさんのブログ vol.190 Azureに移行したVMのトラブル解決に役立つシリアルコンソール(その2)|Windows Server 2016 EOSまであと288日
2026年03月30日配信
2026年03月30日更新
執筆者:山内 和朗
Windows Server 2016の製品ライフサイクルとサポート終了日(End of LifeCycle《EOL》、End of Support《EOS》)である2027年1月12日までのカウントダウンが進んでいます。この連載のシーズン2ではこれまで、Azure Migrateを使用して、オンプレミスのHyper-V VMをAzure VMにリフトアンドシフトする手順を説明してきました。Azure VMに移行すると、Azure Backupを始め、関連するサービスで運用管理を強化できることはお話しましたが、前回からAzure VMの標準機能である「シリアルコンソール」について紹介しています。
前回はAzure VMのWindowsゲストをAzureシリアルコンソール用に構成する方法を説明しました。Windowsはローカルコンソールとしてシリアル(COM)ポート出力をサポートしていませんが、緊急管理サービス(Emergency Management Services《EMS》の「SAC(Serial Administration Console)」はシリアルポートにリダイレクトするトラブルシューティング用の管理コンソールを提供します。WindowsゲストではこのEMSを有効化することで、Azureシリアルコンソールを利用できるようになります。RS-232などのシリアルポート経由のシリアルコンソールはもともとUNIXの標準的なコンソール(ダム端末)として使用されていました。現在、UNIXやLinuxでは物理サーバーのヘッドレスサーバーの保守、運用のため、組み込み機器、起動トラブル時のトラブルシューティングなどの目的で使用されます。
LinuxゲストをAzureシリアルコンソール用に構成するには、GRUB設定ファイル「/etc/default/grub」に少なくとも次のように記述します(Ubuntuの場合)。なお、既定で設定されているquiet(カーネルメッセージを最小限にする)とsplash(ロゴ画面を表示する)は削除することをお勧めします。
| GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0 earlyprintk=ttyS0" |
Azureシリアルコンソールでは、Linuxのブートローダーである「GRUB」へのアクセスを可能にすることもできます。それには、GRUB設定ファイルにさらに次の行を設定します(画面1)。
| GRUB_TIMEOUT=5 #タイムアウトの秒数 GRUB_TERMINAL_OUTPUT="console serial" |

画面1 /etc/default/grubを編集する
GRUB設定ファイルを構成したら、update-grub(Ubuntuの場合)やgrub-mkconfig、grub2-mkconfig(Linuxディストリビューションによる)を実行してGRUB構成ファイル(grub.cfg)を再生成して、Linuxゲストを再起動します(画面2)。

画面2 grub-updateを実行して(Ubuntuの場合)、grub.cfgを再生成する
これで次回起動時からAzureシリアルコンソールでコンソールやGRUBにアクセスできるようになります(画面3、画面4)。なお、GRUBにアクセスするには、起動(再起動)直後にシリアルコンソールでEnter以外のキーを連打してGRUBに入ってください。タイミングがあわない場合はタイムアウトの時間を調整します(30秒など)。

画面3 起動時のカーネルメッセージが表示され、完全に起動するとlogin: プロンプトが表示されるので、OSにログインして作業する

画面4 起動(再起動)直後にEnter以外のキーを押すとGRUB>プロンプトやGRUBメニューにアクセスできるので、シングルユーザーモードで起動して作業することもできる
Hyper-V VMはシリアルポート(COM1およびCOM2)を備えており、Windowsの名前付きパイプ(¥¥.¥pipe¥パイプ名)にリダイレクトすることができます。この機能を利用すれば、Hyper-V環境でWindowsゲストやLinuxゲストのシリアルコンソール接続を事前に構成し、テストすることができます。Azure VMに移行する前に構成しておけば、Azure Migrateでのテスト移行や移行時の接続性の問題をトラブルシューティングできます。また、EMSのSACは操作が独特なので、操作方法を事前に確かめることができますし、EMSのSACでできることを確認することができます。
第1世代VMの場合は、VMの設定の「COM1」または「COM2」で名前付きパイプへのリダイレクトを設定することができますが、第2世代VMの設定はこのインターフェイスを備えていません(画面5)。

画面5 シリアルポート(COM1、COM2)の設定をGUIでできるのは第1世代VMのみ
VMの世代に関係なく、PowerShellのSet-VMCOMPortコマンドレットを使用すれば、名前付きパイプを設定することができます(画面6)。
| Set-VMCOMPort -VMName <VM名> -Number 1(または2) -PATH \\.\pipe\<任意のパイプ名> |
名前付きポートには、PuTTYなどのシリアルポート対応の端末ソフトウェアを使用して接続することができます(画面7)。
Download PuTTY: latest release (x.x)|chiark.greenend.org.uk
画面6 Set-VMCOMPortコマンドレットでVMのシリアルポート(-Number 1はCOM1)を名前付きパイプにリダイレクトするように設定する

画面7 PuTTYを使用して名前付きパイプ(スピード115200)にシリアル接続する
参考:
Linux 用 Azure シリアル コンソール|Azure(Microsoft Learn)
シリアル コンソールを使用して GRUB とシングル ユーザー モードにアクセスする|Azure(Microsoft Learn)
シーズン1目次|シーズン2(1)|・・・|(13)|(14)|(15)|(16)|(17)|(18)|(19)|(20)|(21)|(22)|(23)