かつて山市良と呼ばれたおじさんのブログ

セイテクエンジニアのブログ  かつて山市良と呼ばれたおじさんのブログ  vol.77 Azure VMのインプレースアップグレードに挑戦(前編)|Windows Server 2025大特集(14)

 

 

vol.77 Azure VMのインプレースアップグレードに挑戦(前編)|Windows Server 2025大特集(14)

2025年01月23日配信
2025年04月22日更新
執筆者:山内 和朗

 このブログの「ラボ環境 on Azureを作る」シリーズ(vol.13~)では、Azure MarketplaceのWindows Server 2022 Datacenter英語版イメージ(Microsoft/Windows Serverオファーのプラン)を、入れ子になった仮想化をサポートするVMシリーズ/サイズAzure仮想マシン(VM)にデプロイして、Hyper-Vベースのラボ環境を構築しました。今回は、Azure上にある既存のラボ環境のベースのオペレーティングシステム(OS)を、Windows Server 2025 Datacenterにアップグレードすることに挑戦します。

追記) さらに新しいインストールメディア(ISOイメージ)を使用すれば、今回のアップグレード失敗は解消している可能性があります。

 

意外に知られていない? Azure VMもインプレースアップグレードできること

 

 Azure VMは、以前はOSのインプレースアップグレード(設定を引き継いでのアップグレードインストール)をサポートしていなかったと記憶していますが、現在はそうではありません。Windows Serverの場合は、以下のドキュメントに従って作業することで、Windows Server 2008(64ビット)以降のVMを後継バージョンにインプレースアップグレードすることができます。この方法では、Azure VM専用のアップグレードディスクを使用して、そのディスクをVMに接続し、ディスク内の「setup.exe」を使用してアップグレードを実施します。アップグレードに使用するインストールメディアは、Visual StudioサブスクリプションやMicrosoft 365管理センターから入手できるインストール用ISOイメージとは異なるので注意してください。

In-place upgrade for VMs running Windows Server in Azure|Azure(Microsoft Learn)
Azure で Windows Server を実行している VM のインプレース アップグレード|Azure(Microsoft Learn)

 この記事の執筆時点では、Azure VMのWindows Serverでは、以下のアップグレードパスがサポートされています(ドキュメントの更新日は米国時間2024年11月7日)。

 

アップグレード元 アップグレード先

Windows Server 2008(64ビット)、Windows Server 2008 R2

Windows Server 2012
Windows Server 2012、Windows Server 2012 R2 Windows Server 2016
Windows Server 2012 R2、Windows Server 2016 Windows Server 2019
Windows Server 2016、Windows Server 2019 Windows Server 2022

 

 このドキュメントにはまだ反映されていませんが、このドキュメントに記載されている手順を参考に作業してみたところ、Windows Server 2025に無事アップグレードすることができました。今回と次回は、その失敗と成功の記録です。ちなみに、Windows Server 2025は、製品としてのアップグレードパスが拡大され、Windows Server 2012 R2以降からのインプレースアップグレードがサポートされています。

Windows Server のアップグレードの概要|Windows Server(Microsoft Learn)

万が一に備えてOSディスクを復元可能にしておく(重要)

 

 まず、万が一にもインプレースアップグレードに失敗したときに備えて(すぐにその万が一に遭遇することになります)、Azure VMまたはOSディスクのバックアップを作成しておきます。その方法はいくつかあります。Azure VMの「キャプチャ」機能を利用したイメージまたは復元ポイントの作成、「スナップショット」を使用したマネージドOSディスクのスナップショットの作成、Azure VM用のAzure Backupを使用したVMのバックアップなどです。今回は、スナップショットを利用しました。それには、Azure Marketplaceで「スナップショット」を検索し、Azure VMと同じリソースグループ/リージョンを選択し、スナップショットの種類として「フル」を、ソースの種類として「ディスク」を、ソースディスクとしてアップグレード対象のAzure VMのOSディスクを選択します(画面1)。スナップショットを利用した理由は、存在は知りながらもまだ使ったことがなく、興味があったからです。

 

画面1 アップグレード対象のAzure VMのOSディスクのスナップショットを作成する
画面1 アップグレード対象のAzure VMのOSディスクのスナップショットを作成する

 

アップグレード用の「WindowsServer2025UpgradeDisk」を作成する

 

 Azure VMのインプレースアップグレードには、専用のアップグレードメディアをマネージドディスクとして準備する必要があります。その方法は、前掲の手順に示されたPowerShellスクリプトの変数(リソースグループ名など)を書き換え、Azure Cloud Shellで実行するだけという簡単なものです。しかし、ドキュメントにはWindows Server 2025のことはまだ言及されていません。試しに、「2022Upgrade」の部分を「2025Upgrade」に置き換えて実行してみたところ、既にAzureには「server2025Upgrade」SKUイメージが利用可能になっていることがわかりました(画面2)。そして、Windows Server 2025へのアップグレードに必須の「WindowsServer2025UpgradeDisk」ディスクを作成することができました(画面3)。

 

画面2 2024年12月後半時点で、既に3つのバージョンの「server2025Upgrade」が利用可能になっていることが分かった。その最新のもの(26100.2605.241207)を使用してディスクを作成する
画面2 2024年12月後半時点で、既に3つのバージョンの「server2025Upgrade」が利用可能になっていることが分かった。その最新のもの(26100.2605.241207)を使用してディスクを作成する
2025年1月23日追記) 1月22日にさらに新しいバージョン「26100.2894.250113」が利用可能になりました。 

 

画面3 Windows Server 2025へのアップグレードに必須となる「WindowsServer2025UpgradeDisk」ディスクの作成に成功
画面3 Windows Server 2025へのアップグレードに必須となる「WindowsServer2025UpgradeDisk」ディスクの作成に成功

 

 「WindowsServer2025UpgradeDisk」ディスクの作成のために実行したPowerShellのコードを以下に示します。最初の3行を環境に合わせて書き換えて実行してください。

$resourceGroup = "VMのリソースグループ名"
$location = "リージョン(例: japaneast)"
$zone = ""

$diskName = "WindowsServer2025UpgradeDisk"
$sku = "server2025Upgrade"
$publisher = "MicrosoftWindowsServer"
$offer = "WindowsServerUpgrade"
$managedDiskSKU = "Standard_LRS"

$versions = Get-AzVMImage -PublisherName $publisher -Location $location -Offer $offer -Skus $sku | sort-object -Descending {[version] $_.Version }
$latestString = $versions[0].Version

$image = Get-AzVMImage -Location $location -PublisherName $publisher -Offer $offer -Skus $sku -Version $latestString

if ($zone){
    $diskConfig = New-AzDiskConfig -SkuName $managedDiskSKU -CreateOption FromImage -Zone $zone -Location $location
} else {
    $diskConfig = New-AzDiskConfig -SkuName $managedDiskSKU -CreateOption FromImage -Location $location
}

Set-AzDiskImageReference -Disk $diskConfig -Id $image.Id -Lun 0
New-AzDisk -ResourceGroupName $resourceGroup -DiskName $diskName -Disk $diskConfig

プレーンテキストで表示

 

早速、インプレースアップグレード! でもその前に...

 

 アップグレード対象のAzure VMのデータディスクとして、今作成した「WindowsServer2025UpgradeDisk」ディスクをアタッチします。VMを開始したら、いよいよインプレースアップグレードを実行できます(画面4)。

 

画面4 Azure VMのデータディスクとして「WindowsServer2025UpgradeDisk」をアタッチして、VMを開始する
画面4 Azure VMのデータディスクとして「WindowsServer2025UpgradeDisk」をアタッチして、VMを開始する

 その前に、ラボ環境のAzure VMは表示言語とシステムロケールを日本語化しています。Azureで提供されているアップグレード用メディアは、おそらく英語版です(ローカライズ版であるはずはありません)。そこで、念のため、表示言語とシステムロケールを「日本語(日本)」から、「English(United States)」に切り替えました(画面5)。

 

画面5 アップグレードインストールの実行前に、表示言語とシステムロケールを「English(United States)」に戻しておいた
画面5 アップグレードインストールの実行前に、表示言語とシステムロケールを「English(United States)」に戻しておいた

 お待たせしました。これでようやくインプレースアップグレードを開始できます。コマンドプロンプト(cmd.exe)を開いたら、VMにアタッチした「WindowsServer2025UpgradeDisk」のドライブの「Windows Server 2025」フォルダーに移動して、ドキュメントに書かれている「setup.exe」のコマンドラインを実行し、「Windows Server Setup」を開始します。途中、「Select Image」のページで、現在実行中のエディション/インストールの種類に合わせてイメージを選択し(今回は「Windows Server 2025 Datacenter (Desktop Experience)」)、インストールを続行します(画面6)。あとは、VMが再起動してインストールが完了するのを待つだけです。

 

画面6 ドキュメントに書かれている「Setup.exe」のコマンドラインを実行して、イメージを選択する

画面6 ドキュメントに書かれている「Setup.exe」のコマンドラインを実行して、イメージを選択する 


 インストールが進むと、リモートデスクトップ接続は切断されます。以後、自動接続されることはありません。切断中の状況は、Azureポータルの「ヘルプ|ブート診断」のスクリーンショットを更新して確認する必要があります(画面7)。Azure VMのローカルコンソールに対話的にアクセスする手段は提供されていません。そのため、アップグレードに失敗した場合、OSディスクの状態をバックアップから戻してロールバックしない限り、2度とリモートデスクトップ接続することはできなくなります。

画面7 インストール開始後1時間で99%に。その後いくら待っても99%のまま。どうやら失敗したようだ
画面7 インストール開始後1時間で99%に。その後いくら待っても99%のまま。どうやら失敗したようだ

 そして、インプレースアップグレードの結果はどうなったのかというと、開始から1時間ほどで「Working on updates 99%」まで到達しましたが、その後、いくら待っても先に進みません。リモートデスクトップ接続はできませんし、トラブルシューティング用の「シリアルコンソール」にはシャットダウン中のためSACコンソールを利用できないと言われます。VMを強制的に停止して、開始しても、また「Working on updates 99%」の状態になります。つまり、インプレースアップグレードは万が一(一が一?)の失敗に終わりました。

 もしかすると、もう少し辛抱強く待てば最後まで進んだのかもしれません。しかし、インプレースアップグレードが99%(日本語では「更新プログラムを構成しています  99%」)で失敗する問題は、vol.72で経験済みです。その経験を生かして最終的にはアップグレードを成功させることができました(画面8)。次回はその成功への道筋を示します。 

画面8 2回目のインプレースアップグレードの挑戦は無事成功。この画面は、アップグレード後に再び日本語化したもの
画面8 2回目のインプレースアップグレードの挑戦は無事成功。この画面は、アップグレード後に再び日本語化したもの

 

 

Windows Server 2025大特集(1)|...|(9)|...|(14)次回へ続く>

 

blog_yamanxworld_subscribe

blog_yamanxworld_comment

blog_yamanxworld_WP_ws2025

最新記事