CO-CONV サポート

文章番号21-007

CO-Spray クライアント イメージへの機能更新プログラム (Feature Update) 適用手順

公開
2021年06月09日
対象製品
  • CO-Spray のすべてのバージョン

概要

CO-Spray で配信した端末には、通常の更新手順で Windows の機能更新プログラム (Feature Update) を適用することはできません (CO-Spray では Windows の VHD Native Boot の機能を用いているため)。この制限を回避するために、Hyper-V の仮想マシンに CO-Spray が管理するディスクイメージを割り当て Windows を起動し、仮想マシン上で Windows の Feature Update を適用する手順を紹介します。

このドキュメントでは、Hyper-V に CO-Spray のディスクイメージを割り当てる操作から、Feature Update が完了したディスクイメージを CO-Spray の管理下に置くまでの一連の操作を説明します。

前提条件

  • クライアントは UEFI (GPT) で構成された環境であること
  • ディスクイメージは vhdx 形式であること

事前準備

Windows サーバー上に Hyper-V を導入します。

CO-Spray サーバーとは別のサーバーに導入してもかまいませんが、別のサーバーに導入した場合には、ディスクイメージを Hyper-V を導入したサーバーにコピーする手間が発生します。

構成

このあとの「手順」で実行するコマンドには、次の構成を基にした値を使用しています。 ご利用の環境に合わせて適宜読み替えて、操作してください。

設定
Feature Update するディスクの名前 DiskA
Feature Update するディスクの最新バージョン番号 5
CO-Spray ディスクイメージ管理フォルダ C:\Disks
Feature Update するディスクの管理フォルダ C:\Disks\DiskA
Feature Update するディスクのファイル名(最新バージョン) C:\Disks\DiskA\DiskA.5.vhdx

手順

Hyper-V サーバーで以下の操作を行います。

1. 更新作業用の vhdx の作成

CO-Spray で利用しているイメージの差分を作成します。

1-1. Diskpart を起動する

管理者権限でコマンドプロンプトを起動して、diskpart コマンドを実行します。

> diskpart

1-2. 更新作業用の差分ディスクを作成する

create vdisk コマンドを実行して更新作業用の差分ディスクを作成します

DISKPART> create vdisk file=C:\Disks\DiskA\hyperv.vhdx parent=C:\Disks\DiskA\DiskA.5.vhdx 
  • file= には更新作業用の差分のディスクとして新規作成する vhdx ファイルを絶対パスで記述します。
  • parent= には CO-Spray が管理するディスクイメージの最新の差分ディスクを絶対パスで指定します。

コマンド実行後、下記のメッセージが表示されることを確認します。

 100% 完了しました
DiskPart により、仮想ディスク ファイルが正常に作成されました。

1-3. 更新作業用ディスクをマウントする

attach vdisk コマンドを実行して、更新作業用ディスクをマウントします。

DISKPART> attach vdisk

コマンド実行後、下記のメッセージが表示されることを確認します。

  100% 完了しました

DiskPart により、仮想ディスク ファイルがアタッチされました。

1-4. ディスクが GPT フォーマットであることを確認する

list disk コマンドを実行して、ディスクが GPT フォーマットであることを確認します。

 DISKPART> list disk
  ディスク      状態           サイズ   空き   ダイナ GPT
  ###                                          ミック
  ------------  -------------  -------  -------  ---  ---
  ディスク 0    オンライン       200 GB   1024 KB
* ディスク 1    オンライン         40 GB  1024 KB        *

attach したディスクの GPT の列に * マークがついていれば GPT です。

1-5. NTFS パーティションのドライブレターを確認する

マウントした更新作業ディスクの NTFS パーティションのドライブレターを確認します。

※ このあとの工程でこの情報が必要となります。

list partition コマンドを実行して、 プライマリパーティションを確認します。

DISKPART> list partition

コマンド実行後、下記のメッセージが表示されます。

  Partition ###  Type                Size     Offset
  -------------  ------------------  -------  -------
  Partition 1    予約                 128 MB    17 KB
  Partition 2    プライマリ               40 GB   128 MB

プライマリパーティションを選択します。

DISKPART> select  partition 2

detail partition コマンド を実行します。

DISKPART> detail partition 

コマンド実行後、下記のメッセージが表示されます。

パーティション 2
種類     	: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
隠し属性 	: いいえ
必要     	: いいえ
属性     	: 0000000000000000
オフセット (バイト): 17825792

  Volume ###  Ltr Label    	Fs	Type    	Size 	Status 	Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
* Volume 2 	E            	NTFS   Partition 	40 GB  正常

NTFS パーティションに割り当てられているドライブレターをメモしておきます

以上で更新作業用ディスクの作成は完了です。

2. EFI パーティションの作成

CO-Spray が管理するディスクイメージには EFI パーティションがないため、このままでは Hyper-V で起動することができません。 以下の手順を実施して、EFI パーティションの vhdx ファイル (efi.vhdx) を作成します。

1-1. Diskpart を起動する

管理者権限でコマンドプロンプトを起動して、diskpart コマンドを実行します。

> diskpart

2-2. EFI 用のディスクを作成する

DISKPART> create vdisk file=C:\Disks\DiskA\efi.vhdx maximum=2048

  100% 完了しました

DiskPart により、仮想ディスク ファイルが正常に作成されました。

2-3. 作成したディスクをマウントする

DISKPART> attach vdisk

  100% 完了しました 

DiskPart により、仮想ディスク ファイルがアタッチされました。

2-5. GPT フォーマットにする

DISKPART> convert gpt

DiskPart は選択されたディスクを GPT フォーマットに正常に変換しました。

2-5. EFI パーティションを作成する

EFI パーティションを作成して、FAT32 でフォーマットします。

DISKPART> create partition efi size=1024

DiskPart は指定したパーティションの作成に成功しました。

DISKPART> format quick fs=fat32

  100% 完了しました

DiskPart は、ボリュームのフォーマットを完了しました。

2-6. ドライブレターを設定して diskpart を終了する

作成した パーティションに対して、空いているドライブレターを設定し、diskpart を終了します。

ここでは、S: を設定しています。 これ以降の手順では、EFI パーティションには S: ドライブが割り当てられているものとして説明しますので、これとは違うドライブレターを使用した場合には、適宜読み替えてください。

DISKPART> assign letter=S

DiskPart はドライブ文字またはマウント ポイントを正常に割り当てました。

DISKPART> exit
DiskPart を終了しています...

2-7. EFI のパーティションでブートできるようにする

bcdboot コマンドを実行し、Windows が起動できるように EFI を設定します。

下記コマンド実行例の、第一引数の E:\ の部分には 手順 1-6 で確認した更新作業ディスクの NTFS パーティションに設定されたドライブレターを記述してください。 /s の後ろには、EFI パーティションに設定したドライブレターを記述してください。

> bcdboot E:\Windows /l ja-jp /s S: /f all
ブート ファイルは正常に作成されました。

以上で EFI の設定は完了です。

2-8. ドライブレターの削除と vdisk のアンマウント

引き続き、手順 2-6 で割り当てたドライブレターを削除して、マウントした vdisk のアンマウントを行います。

再度 disk part に入ります。

> diskpart
DISKPART> 

EFI パーティションに割り当てたドライブレターの割り当てを外します。

DISKPART> select volume S

ボリューム X が選択されました。

DISKPART> remove letter S

更新作業ディスクをアンマウントします。
select vdisk file では 作業 vhdx を指定してください。

DISKPART> select vdisk file=C:\Disks\DiskA\hyperv.vhdx
DISKPART> detach vdisk 

EFI パーティション用 ディスクをアンマウントします。
select vdisk file では EFI パーティション用 vhdx を指定してください。

DISKPART> select vdisk file=C:\Disks\DiskA\efi.vhdx
DISKPART> detach vdisk 

3. 仮想マシンの作成

Hyper-V において更新作業を実施するための仮想マシンを作成します。

メニューの [操作] > [新規] > [仮想マシン] で仮想マシンを追加します。
仮想マシンの種類は、ディスクイメージの作成手順により異なります。

  • 仮想マシンの世代: 第 2 世代
  • 起動メモリ: 4096 MB 以上を推奨
  • 仮想ハードディスク:
    • 手順1. で作成した 更新作業用 vhdx (hyperv.vhdx)
    • 手順2. で作成した EFI パーティション用 vhdx (efi.vhdx)

仮想マシンに対して、以下の設定を行います。

  • セキュリティ設定: セキュアブートを無効にする
  • ブート順序: ハードドライブ efi.vhdx を最上位にする
  • プロセッサ数: 2 以上を推奨

4. Feature Update を実施する

  1. 仮想マシンを起動する
  2. Feature Update を実施する (何度か自動で再起動されます)
  3. Feature Update 完了後、OS のバージョンを確認し、仮想マシンをシャットダウンする
  4. 仮想マシンからディスクの割り当てを解除する
  5. EFI 用の vdisk を削除する
    エクスプローラーなどから操作して efi.vhdx を削除する

5. CO-Spray に新バージョンとして設置する

5-1. 更新作業用ディスクの vhdx ファイルを読み取り専用にする

エクスプローラーで、hyper.vhdx ファイルを右クリックして [プロパティ] を開く。 [全般] タブの [属性][読み取り専用] にチェックをいれて [OK] をクリックする。

5-2. 更新作業用ディスクを CO-Spray に登録する

更新作業用ディスク (hyperv.vhdx) を CO-Spray のディスク イメージ管理フォルダのディスク名のフォルダ内に移動します。

更新作業用ディスク (hyperv.vhdx) の vhdx ファイルのファイル名を変更します。 ディスク名の後の番号には、最新のバージョン番号を設定します。

(例) ディスク名が DiskA、Feature Update 実行前の最新バージョンが 5 であった場合

  • (変更前)hyperv.vhdx
  • (変更後)DiskA.6.vhdx

5-3. 新しく作成されたバージョンが配信されるように設定する

CO-Spray コンソールにおいて、新しく作成されたバージョンが配信されるように設定します。

6. 端末にイメージを配信する

端末に 手順5. で登録した新バージョンを配信し、問題なく起動できることを確認します。