カスタムWindows®イメージの作成
Windows® ベースのカスタムイメージを作成し、IBM Cloud® Virtual Private Cloudにインポートすることができます。 その後、カスタムイメージを使用して、IBM Cloud® Virtual Private Cloud インフラストラクチャに仮想サーバーまたはベアメタルサーバーをデプロイできます。
開始前に
IBM Cloud クラシック・インフラストラクチャーのイメージ・テンプレートから開始できます。 詳しくは、クラシック・インフラストラクチャーからの仮想サーバーのマイグレーションを参照してください。 インポート時にサーバーにアタッチされるブートボリュームのカスタムイメージを作成することもできます。 詳しくは、ボリュームからのイメージの作成についてを参照してください。 Windows® カスタムイメージは LinuxONE (s390x プロセッサアーキテクチャ) ではサポートされていないことに注意してください。
すべてのカスタム画像は以下の条件を満たす必要があります
- 単一のファイルまたはボリュームを含んでいます。
- qcow2、またはvhd形式であること。
- cloud-init が有効になっているか、ESXi キックスタートを使用して起動可能であること。
- サイズは250GBを超えない。
- 最小サイズは10GB。 10 GB 未満のイメージの場合は、サイズが 10 GB に切り上げられます。
100GB以外の暗号化ブートボリューム(ボリュームからのイメージ)からイメージを作成することはできません。
IBM Cloud VPCインフラストラクチャ環境に展開するWindows®カスタムイメージを作成するには、以下の手順を使用します。 この手順には、以下のハイレベル・タスクが含まれます。
- VHD フォーマットの Windows® イメージを作成するには、VirtualBox を使用します。
- virtIO ドライバーと Cloudbase-init を使用してイメージをカスタマイズする。
Windows® カスタムイメージを作成する前に、以下の要件に留意してください。
virtio-win ドライバーをインストールする必要があります。 Microsoft®は、ライセンスされたRHELバージョン8または9のインスタンスからドライバを入手することを推奨します。 Red Hatはマイクロソフト認証のドライバを使っています。 推奨される Red Hat virtio-win パッケージの最小バージョンは virtio-win-1.9.24
です。 ただし、最新のパッケージを使用することをお勧めします。
Red Hat virtio-win-1.9.24 ISO には、以下の特定のドライバー・バージョンが含まれています。
100.84.104.19500 oem10.inf \vioprot.inf_amd64_af0659efdaba9e4b\vioprot.inf
100.90.104.21400 oem11.inf \viofs.inf_amd64_c6f785e21f3f6f80\viofs.inf
100.85.104.20200 oem12.inf \viogpudo.inf_amd64_b19dcf9947e73e5a\viogpudo.inf
100.85.104.19900 oem13.inf \vioinput.inf_amd64_4505a789e17b5f89\vioinput.inf
100.81.104.17500 oem14.inf \viorng.inf_amd64_ef304eab276a3e61\viorng.inf
100.85.104.19900 oem15.inf \vioser.inf_amd64_cb4783c018c10eba\vioser.inf
100.90.104.21500 oem2.inf \vioscsi.inf_amd64_02a46a7a223648d1\vioscsi.inf
100.90.104.21500 oem3.inf \viostor.inf_amd64_520417bbc533faba\viostor.inf
100.85.104.20700 oem4.inf \balloon.inf_amd64_afa8c93081df5458\balloon.inf
100.90.104.21400 oem5.inf \netkvm.inf_amd64_0efff05c07fcee39\netkvm.inf
100.85.104.19900 oem6.inf \pvpanic.inf_amd64_b7028360ef636f8b\pvpanic.inf
10.0.0.21000 oem9.inf \qxldod.inf_amd64_6199f9ecf2339133\qxldod.inf
1.Windows® カスタムイメージの作成
以下の手順でカスタムWindows®イメージを作成します。
-
Windows 2016、 Windows 2019、または Windows 2022 オペレーティング・システム ISO の評価版をダウンロードできます。
-
qemu-img
ユーティリティを使って、WindowsをインストールするVHDイメージを作成します。 qemu-img ユーティリティー をダウンロードし、Windows ラップトップ・クライアントに解凍します。qemu-img
ユーティリティーを解凍したフォルダーで、VHD イメージを作成します。qemu-img.exe create -f vpc Windows-2019.vhd 100G
IBM Cloud®はVHDまたはqcow2によるカスタムイメージインポートをサポートしています。 しかし、Virtual Box は qcow2 フォーマットをサポートしていません。
-
プロビジョニング するか、 IBM Cloud VPC内の既存の RHEL サーバーにアクセスして、必要な virtio-win ドライバーを取得します。
-
IBM Cloud VPCの RHEL サーバーで、以下のコマンドを実行して virtio-win パッケージをインストールします。
yum install virtio-win
この例では、virtio-win パッケージが RHEL バージョン 8 にインストールされます。 返される出力は次の例のようになる。
Installed: virtio-win-1.9.24-2.el8_5.noarch
-
/usr/share/virtio-win
ディレクトリーにある virtio-win の ISO にアクセスします。cd /usr/share/virtio-win/
-
Windows® カスタムイメージに使用するために、安全なコピーを使用して virtio-win ISO ファイル、例えば
virtio-win-1.9.24.iso
をコピーします。
- ® クライアントで ISO ファイルをコピーするには、winSCP を使ってください。
- SCP を使用して、 Linux または macOS クライアントで ISO ファイルをコピーします。
-
ISO ファイルをマウントして開きます。
-
関連するすべての virtio ドライバーをそれぞれのオペレーティング・システムの
virtio-win.iso
ファイルからコピーし、それらのドライバーをDrivers
という名前のフォルダーに入れてから、Drivers
フォルダーをオペレーティング・システムの ISO フォルダーにコピーします。 -
Windows Assessment and Deployment Toolkit(ADK)をダウンロードします。
oscdimg.exe
ユーティリティーを取得するには、デプロイメント・ツールのみをインストールします。 -
oscdimg.exe
コマンドを使用して、Drivers
フォルダー内のすべての virtio ドライバーを組み込んだブート可能な Windows ISO を作成します。C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\x86\Oscdimg> oscdimg -m -bC:\..\..\Downloads\<extracted_ISO_folder>\boot\etfsboot.com -u2 C:\..\..\Downloads\extracted_ISO_folder C:\..\..\Downloads\win2019new.iso
-
-
VirtualBox を使用して、ステップ 3 で作成したブータブル Windows® ISO を使用して、ステップ 2 で作成した VHD イメージで仮想サーバーを作成します。 詳細については、Oracle VM VirtualBox ユーザー マニュアルを参照してください。
VirtualBox 以外の方法でカスタムイメージを作成する場合 (VMware など)、カスタムイメージからそのハイパーバイザー固有のドライバーをすべて削除する必要があります。
-
ストレージ設定で、ステップ3で作成したWindows®インストール起動可能ISOを追加します。
-
サーバーを起動し、Windows® のインストールを開始します。
-
オペレーティング システムのエディション(標準/データ センター)とデスクトップ エクスペリエンス(デスクトップ エクスペリエンスあり/デスクトップ エクスペリエンスなし)を選択します。
-
「Drive 0 (ドライブ 0)」 を選択して、インストールを続行します。
-
インストールが完了したら、仮想サーバーをシャットダウンし、インストール ISO を削除します。 インストール ISO の削除に関する警告は無視してかまいません。
-
デフォルトのWindows®アップデータを使用して、Windowsアップデートをダウンロードしてインストールします。 使用可能な更新がなくなるまで、更新をダウンロードしてインストールするプロセスを繰り返します。
リカバリイメージでvirtio-winドライバを利用可能にする
Windows® イメージを作成したら、virtio-win ドライバがリカバリイメージで使用可能であることを確認します。 このステップでは、トラブルシューティングやレスキューモードでリカバリイメージを使用できるようにします。
必要な virtio ドライバ vioscsi.inf
と viostor.inf
をダウンロードしたら、以下の手順でドライバをリカバリイメージで使用できるようにします。
-
reagentc /info
コマンドを使ってリカバリーイメージを見つける。-
リカバリイメージが別のリカバリパーティションにある場合は、
diskpart
ユーティリティを使ってドライブ文字を割り当て、ドライブの非表示を解除します。 個別のリカバリ・パーティションが存在しない場合は、これらの手順は必要ありません。 次の例は、パーティション3
、ドライブR
、設定id=07
の場合です。diskpart select disk 0 list part select part 3 assign letter R set id=07 exit
-
-
リカバリーイメージを変更するには、
reagentc /disable
を使ってリカバリーモードを無効にします。 -
リカバリーイメージをマウントするディレクトリを作成する。
md C:\mount\winre
-
リカバリイメージをマウントディレクトリにコピーする。
xcopy /h R:\Recovery\WindowsRE\Winre.wim C:\mount\
-
attrib -s -h -r C:\mount\Winre.wim
を使ってリカバリーイメージを見えるようにします。 -
dism /Mount-Image /ImageFile:c:\mount\Winre.wim /index:1 /MountDir:c:\mount\winre
を使ってリカバリーイメージの内容をマウントする。 -
vioscsi
とviostor
ドライバーをリカバリーイメージに追加する。 以下の例では、virtio ドライバがドライブ E にあると仮定しています。vioscsi
とviostor
ドライバの対応するWindows®のバージョンを選択してください。Dism /image:c:\mount\winre /Add-Driver /Driver:"E:\vioscsi\2k19\amd64\vioscsi.inf" Dism /image:c:\mount\winre /Add-Driver /Driver:"E:\viostor\2k19\amd64\viostor.inf"
-
すべてのドライバーを追加したら、リカバリーイメージを作成する準備が整いました。
Dism /Image:c:\mount\winre /Cleanup-Image /StartComponentCleanup Dism /Unmount-Image /MountDir:c:\mount\winre /Commit
-
リカバリーイメージを最適化する。
Dism /Export-Image /SourceImageFile:c:\mount\WinRE.wim /SourceIndex:1 /DestinationImageFile:c:\mount\winre-optimized.wim
-
リカバリーイメージを、ステップ1に記載した元の場所に元の属性でコピーします。
xcopy C:\mount\winre-optimized.wim R:\Recovery\WindowsRE\WinEe.wim /h /r
-
リカバリイメージが別のリカバリパーティションにある場合は、
diskpart
ユーティリティを使用して割り当てられたドライブ文字を削除し、ドライブを非表示にします。 個別のリカバリ・パーティションが存在しない場合は、これらの手順は必要ありません。 次の例は、パーティション3
とドライブR
の場合です。diskpart select disk 0 list part select part 3 remove letter R set id=27 exit
-
-
reagentc /enable
を使ってリカバリーイメージを有効にします。 -
reagentc /info
でリカバリーモードが有効になっていることを確認する。
必要な virtio ドライバを含むリカバリイメージがセットアップされます。
2.仮想サーバーのカスタマイズ
VirtualBoxを使用して作成した仮想サーバーをカスタマイズするには、以下の手順を実行します。
-
Cloudbase-Init インストール・パッケージ から cloudbase-init をインストールして構成します。
-
cloudbase-init.conf
ファイル (C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init.conf
) を以下の値に一致するように変更します。 ファイルから他のコンテンツを削除しないでください。[DEFAULT] # "cloudbase-init.conf" is used for every boot config_drive_types=vfat,iso config_drive_locations=hdd,partition activate_windows=true kms_host=kms.adn.networklayer.com:1688 mtu_use_dhcp_config=false real_time_clock_utc=false bsdtar_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\bsdtar.exe mtools_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\ debug=true log_dir=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\ log_file=cloudbase-init.log default_log_levels=comtypes=INFO,suds=INFO,iso8601=WARN,requests=WARN local_scripts_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\ metadata_services=cloudbaseinit.metadata.services.configdrive.ConfigDriveService, # enabled plugins - executed in order plugins=cloudbaseinit.plugins.common.mtu.MTUPlugin, cloudbaseinit.plugins.windows.ntpclient.NTPClientPlugin, cloudbaseinit.plugins.windows.licensing.WindowsLicensingPlugin, cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin, cloudbaseinit.plugins.common.userdata.UserDataPlugin, cloudbaseinit.plugins.common.localscripts.LocalScriptsPlugin
カスタム画像に独自のライセンスを導入する場合は、
cloudbase-init.conf
ファイルから以下の行を削除してください。activate_windows=true kms_host=kms.adn.networklayer.com:1688
-
cloudbase-init-unattend.conf
ファイル (C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init-unattend.conf
) を以下の値に一致するように変更します。 ファイルから他のコンテンツを削除しないでください。[DEFAULT] # "cloudbase-init-unattend.conf" is used during the Sysprep phase username=Administrator inject_user_password=true first_logon_behaviour=no config_drive_types=vfat config_drive_locations=hdd allow_reboot=false stop_service_on_exit=false mtu_use_dhcp_config=false bsdtar_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\bsdtar.exe mtools_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\ debug=true log_dir=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\ log_file=cloudbase-init-unattend.log default_log_levels=comtypes=INFO,suds=INFO,iso8601=WARN,requests=WARN local_scripts_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\ metadata_services=cloudbaseinit.metadata.services.configdrive.ConfigDriveService, # enabled plugins - executed in order plugins=cloudbaseinit.plugins.common.mtu.MTUPlugin, cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin, cloudbaseinit.plugins.windows.createuser.CreateUserPlugin, cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin, cloudbaseinit.plugins.common.setuserpassword.SetUserPasswordPlugin, cloudbaseinit.plugins.common.localscripts.LocalScriptsPlugin
-
Unattend.xml
ファイル (C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\Unattend.xml
) を変更し、PersistAllDeviceInstalls
値をfalse
に設定します。 -
コマンド・プロンプトから以下のコマンドを使用して、
Sysprep
を実行します。C:\Windows\System32\Sysprep\Sysprep.exe /oobe /generalize /shutdown "/unattend:C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\Unattend.xml"
-
sysprep を実行すると、仮想サーバーがシャットダウンします。 その後、ステップ4 - カスタマイズした仮想サーバーのイメージテンプレートを作成する
3.カスタム画像のアップロード
以下の情報を使用して、カスタム・イメージを IBM Cloud Object Storageにアップロードします。
IBM Cloud® Object Storage バケットの Objects ページで、Upload をクリックします。 Aspera 高速転送プラグインを使用すると、200MBを超える画像をアップロードできます。 IBM Cloud Object Storage にアップロードする方法について詳しくは、データのアップロードを参照してください。
次のステップ
Windows® カスタムイメージが作成され、IBM Cloud Object Storage で利用可能になると、カスタムイメージを VPC にインポート し、VPC用の仮想サーバーイメージをオンボード することができます。 イメージをインポートするためのアクセス権限を IBM Cloud Object Storage に付与 してください。
プライベート・カタログを使用してカスタム・イメージを管理する予定の場合は、まずそのイメージを IBM Cloud VPCにインポートしてから、そのイメージをプライベート・カタログにオンボードする必要があります。
カスタム・イメージをインポートしたら、それを使用して IBM Cloud® Virtual Private Cloud インフラストラクチャーにサーバーをデプロイできます。
インポートされたイメージから新規仮想サーバーを作成した後、その仮想サーバーにアクセスする前に、その仮想サーバーを停止してから始動します。
- IBM Cloud コンソールで、ナビゲーションメニュー
インフラストラクチャ
コンピュート>仮想サーバーインスタンス をクリックします。
- 「仮想サーバー・インスタンス」 ページで、「アクション」アイコン
をクリックします。