セイテクエンジニアのブログ かつて山市良と呼ばれたおじさんのブログ vol.30 VHD(x)に対するオフラインパッチ|続・ラボ環境 on Azure(2)
2024年07月25日配信
執筆者:山内 和朗
Windows Updateはトラブルが無ければよいのですが、トラブルが発生してしまうとその解決に多くの時間がとられる場合があります。まれに原因不明のインストール失敗、ダウンロードとインストールが何時間も進まない、再起動後のクラッシュのループ、クラッシュのループからの自動回復失敗といったケースに遭遇することがあります。トラブルシューティングの方法はいくつかありますが、あまり知られていないオフラインパッチを紹介します。
前回は、「Windows回復環境(Windows Recovery Environment≪Windows RE、WinRE≫」または「Windowsプレインストール環境(Windows Preinstallation Environment≪Windows PE、WinPE≫」からの手順を紹介しましたが、今回はHyper-V仮想マシン(VM)のオフラインパッチです。VMを起動することなく、仮想ハードディスク(VHDまたはVHDX)に直接オフラインパッチします。
WindowsおよびWindows Serverは、VHDやVHDX(以下、VHD(x))をローカルドライブとしてマウントすることができます。オフラインパッチは第3のOS環境から行うものですが、Hyper-V VMの場合は、そのVMをホストしているWindowsやWindows Server(Hyper-Vホスト)がすぐに利用できる第3のOS環境です。もちろん、VHD(x)を別のマシンにコピーして、そこでオフラインパッチすることもできますが、VHD(x)はサイズが大きいので、Hyper-Vホストで行うのが最も効率的です。
VHD(x)をローカルマウントする方法はいたって簡単です。VHD(x)ファイルをダブルクリックするか、VHD(x)ファイルの右クリックメニューから「マウント」を選択します(VMにチェックポイントがある場合は、チェックポイントを削除して親ディスクに結合した上で)。すると、ローカルの空いているドライブ文字に、ドライブとして自動的にマウントされます。
あとは、あらかじめダウンロードしておいた更新プログラムのMSUパッケージを以下のコマンドラインを実行してオフラインのWindowsイメージに適用します。WinREやWinPEから実行するのとは異なり、/ScratchDirの指定は不要です。
DISMコマンドが成功したら、エクスプローラーでマウント先の右クリックメニューから「取り出し」マウントを選択して、マウントを解除すれば完了です(画面1、画面2)。Hyper-V VMを起動すれば、更新されたイメージでゲストOSが起動します。
画面1 Hyper-V VMのVHD(x)をHyper-Vホストのローカルにマウントする
画面2 マウント先のドライブを指定して、DISMコマンドで更新プログラムのMSUパッケージを適用し、マウントを解除する
次のように、VHD(x)のマウントから更新プログラムの適用、マウント解除までのすべてをコマンドラインで操作することも可能です。
「vol.18 ラボ環境 on Azureを作る(6) - VMテンプレートを作成する」では、Hyper-V VMをSysprepを実行して一般化したイメージをエクスポートし、VMテンプレートを作成する方法を紹介しました。オフラインパッチを利用すれば、一般化したイメージに対して更新プログラムをインストールすることができます。つまり、オフラインパッチの方法を知っていれば、Sysprepを何度も実行しなくても、テンプレートのイメージを最新の状態に維持することができるのです。また、サーバーの機能の追加や削除もオフラインで実施することが可能です。
サーバーの機能の追加や削除を行うには、DISMコマンドの/Get-Packagesでパッケージ名とその状態(有効/無効)を調べ、/Add-Packageまたは/Remove-Packageを実行します。
次の例は、Windows Server 2022のテンプレートのイメージに「Telnetクライアント」を追加し、「Azure Arc Setup」(Windows Server 2022に2023年10月の累積的な更新プログラムで追加された新しい機能、デスクトップエクスペリエンスで既定で有効)を削除します(画面3、画面4)。
画面3 VMテンプレート(Windows Server 2022)から、「Telnetクライアント」を追加し、「Azure Arc Setup」を削除
画面4 オフラインで更新されたVMテンプレートをHyper-Vにインポートすると、「Telnetクライアント」が有効で、「Azure Arc Setup」が無効になっていることを確認できる
2024年09月02日 | vol.39 VMゲストの初期設定に役立つスクリプト|ラボ環境 in オンプレを作る(7) |
---|---|
2024年08月29日 | デモ. VMテンプレートのオフラインパッチ(動画) |
2024年08月29日 | vol.38 Hyper-V VMの管理に役立つスクリプト|ラボ環境 in オンプレを作る(6) |
2024年08月26日 | vol.37 オンプレのVMをAzureラボ環境に持ち込む|ラボ環境 in オンプレを作る(5) |
2024年08月22日 | vol.36 Azure Backupでクラウドバックアップ|ラボ環境 in オンプレを作る(4) |
2024年08月20日 | ITニュース. WinREの更新失敗の既知の問題、本当に解消したの? |
2024年08月19日 | vol.35 ローカルバックアップは超簡単|ラボ環境 in オンプレを作る(3) |
2024年08月08日 | vol.34 Windows Admin Centerの導入|ラボ環境 in オンプレを作る(2) |
2024年08月06日 | お知らせ. 定期セミナー「セイテク・シス管道場」、第2回を9月10日に開催 |
2024年08月05日 | vol.33 ラボ環境 in オンプレを作る(新シリーズスタート) |