セイテクエンジニアのブログ かつて山市良と呼ばれたおじさんのブログ vol.72 物理サーバーのインプレースアップグレード(失敗のち成功)|Windows Server 2025大特集(9)
2025年01月06日配信
執筆者:山内 和朗
この連載の「Windows Server 2025大特集」ではこれまで、Hyper-V仮想マシン(VM)やAzure VMの仮想環境を用いてWindows Server 2025を試用してきました。物理環境での検証が必要な場合は「ネイティブブートVHDX」の環境を利用しました。本番環境のWindows Server 2025への移行については、もうしばらく様子を見るつもりですが、この連載の「ラボ環境 in オンプレを作る」シリーズで構築したWindows Server 2022 Hyper-Vベースのラボ環境を、Windows Server 2025に移行することが当面の目標です。
私の自宅には、以前の仕事(個人事業)で使用していたWindows Server 2022の検証/テスト用物理サーバーが1台あります。現在の仕事では使用していませんが、Windowsのさまざまなバージョンを、サポートが終了したものを含めて、VMとして保持しており、昔のバージョンではどうだったか確認するためなどに、たまに使用しています。サポート期間中のバージョンについては、毎月にWindows Updateは欠かしていません。
会社のラボ環境をWindows Server 2025に移行する前に、経験を積むために、まず、自宅の物理サーバーをWindows Server 2025にインプレースアップグレードしてみようと考えました。
Hyper-V VMにWindows Server 2025を新規インストールし、そのイメージ(VHDXファイル)を使用して物理サーバーを起動する「ネイティブブートVHDX」については、以下の回で紹介しました。
vol.67 VMのゲストOSイメージで物理サーバーを起動して評価する|Windows Server 2025大特集(4)
このネイティブブートVHDXの起動環境をアップグレード対象の物理サーバーに用意し、ネイティブブートVHDXを使用して、Windows Server 2025を物理サーバーで起動してみます。その目的は、物理サーバーに存在するデバイスのデバイスドライバーが問題なく動作することを確認するためです。物理サーバーの元々のC:ドライブのボリュームに任意のドライブ文字を割り当ててマウントし、その(Windows Server 2022インストールの)「¥Windows¥System32¥DriverStore」を検索して、エラーとなっているデバイスのデバイスドライバーのインストールを試み、すべてのエラーが解消することを確認します(画面1)。なお、「¥Windows¥System32¥DriverStore」のコピーを保存しておけば、この物理サーバーへのWindows Server 2025の新規インストールにも役立ちます。
画面1 ネイティブブートVHDXを使用してWindows Server 2025をアップグレード対象の物理サーバーで起動し、Windows Server 2022にインストールされたデバイスドライバーを使用して、すべてのデバイスのエラーが解消することを確認する
ネイティブブートVHDXの環境での動作確認が終わったら、ネイティブブートVHDXの環境を削除し、元々インストールされていたWindows Server 2022(Datacenterデスクトップエクスペリエンス)で起動します。インプレースアップグレードはアップグレード対象のWindows Serverが稼働している状態から実施する必要があります。ただしその前に、万が一に備えてシステムのバックアップを作成しておきましょう。例えば、Windows Server標準の「Windows Serverバックアップ」を使用して、ベアメタル回復用のバックアップをUSB接続の外部ハードディスクに作成しておきます(画面2)。バックアップが完了したら、いよいよインプレースアップグレードを実行します。
画面2 インプレースアップグレード前にベアメタル回復用バックアップ+「Hyper-V Host Component」(VMは容量が大きいため)をバックアップしておく
Windows Server 2025のインストールメディアはISOメディアで提供されているため、書き込み可能なDVDメディアやUSBフラッシュドライブを使用して物理的なインストールメディアを用意しなければならないと思っている人もいるかもしれませんが、そんな必要はありません。エクスプローラーでISOイメージをローカルドライブにマウントし、ドライブルートにある「Setup.exe」を実行してインストールを開始すればよいのです(画面3)。
インプレースアップグレードの手順については、以下の記事をご覧ください。
vol.66 旧バージョンからのアップグレード(Hyper-Vサーバー編)|Windows Server 2025大特集(3)
画面3 インストールメディアのISOイメージをローカルマウントして、ルートにある「Setup.exe」を実行する
ファイルのコピーが始まり、再起動が開始され、約1時間ほどで「更新プログラムを構成しています 99%」まで進みました。しかし、その後、何時間経過しても「99%」のまま変化がありません(画面4)。電源ボタンを長押しして強制的にリセットしても、再び「更新プログラムを構成しています 99%」でスタックしてしまう状況になりました。
画面4 「更新プログラムを構成しています 99%」から全く進まない状態に
インプレースアップグレードは失敗したとあきらめ、電源ボタンの長押しを2回して(強制的に起動を2回失敗させ)、自動修復を走らせました。その後開始する「Windows回復環境(WinRE)」から「トラブルシューティング|イメージでシステムを回復」を実行し、バックアップをリストアして(30分程度)、元の状態に戻しました(画面5)。
画面5 強制的に起動を2回失敗させ、自動修復からWinREに入り、「イメージでシステムを回復」を実行
vol.66では、Hyper-V VMのWindows Server 2022 Hyper-V環境を問題なくインプレースアップグレードできました。しかし、私個人の物理サーバー環境では、同じ方法でのアップグレードインストールを複数回試しましたが「更新プログラムを構成しています 99%」で必ずスタックしてしまいます。WinREのコマンドプロンプトを開き、インストール先の「¥Windows¥Panther」にある「Setupact.log」や「Setuperr.log」を確認しましたが、原因は特定できませんでした。
Windows アップグレード ログ ファイル|Windows(Microsoft Learn)
現時点で考えられる代替手段としては、Windows Server 2025を新規インストールしてVMを移行する方法です。新規インストール後にHyper-Vの役割を有効化し、同じ名前で仮想スイッチを作成した上で、OSとは別ボリュームに存在するVMをインポートして構成バージョンをアップグレードするのです。インストールメディアの更新版(例えば、Virual Studioサブスクリプションでは数か月ごと、または毎月インストールメディアの更新版が提供されます)の提供を待って再確認し、それでもだめな場合は、この代替策でWindows Server 2025に移行しようかと考えました。
しかし、ダメ元でvol.66で紹介したコマンドラインからの自動アップグレード(Datacenterデスクトップエクスペリエンスの場合は、.¥setup.exe /auto upgrade /dynamicupdate disable /eula accept /pkey XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /imageindex 4)を試してみたところ、2時間後にはWindows Server 2025のデスクトップ環境が表示されていることに気付きました。
理由はわかりませんが、インプレースアップグレードは成功したようです(画面6)。「デバイスマネージャー」で確認する限り、デバイスの認識に問題ありません。「イベントビューアー」にも異常なイベントは見当たりません。コンピューター名が「WS2022HV01」だったので、「WS2025HV01」に変更し、Windows Updateを実行して最新状態にしました。しばらく様子を見て問題がなければ、VMの構成バージョンのアップグレードを行い、完全にWindows Server 2025環境への移行を完了する予定です。
画面6 コマンドラインからの自動アップグレードインストールはなぜか成功
ちなみに、vol.67ではドメインコントローラーのインプレースアップグレードが失敗に終わりました。今回のことがあったので、コマンドラインからのアップグレードの方法を試してみたところ、残念ながらやはり失敗(ブルースクリーン《BSoD》のループ)に終わりました。