IBM Cloud Docs
カスタムWindows®イメージの作成

カスタム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®イメージを作成します。

  1. Windows 2016Windows 2019、または Windows 2022 オペレーティング・システム ISO の評価版をダウンロードできます。

  2. 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 フォーマットをサポートしていません。

  3. プロビジョニング するか、 IBM Cloud VPC内の既存の RHEL サーバーにアクセスして、必要な virtio-win ドライバーを取得します。

    1. IBM Cloud VPCの RHEL サーバーで、以下のコマンドを実行して virtio-win パッケージをインストールします。

      yum install virtio-win
      

      この例では、virtio-win パッケージが RHEL バージョン 8 にインストールされます。 返される出力は次の例のようになる。

      Installed:
        virtio-win-1.9.24-2.el8_5.noarch
      
    2. /usr/share/virtio-win ディレクトリーにある virtio-win の ISO にアクセスします。

      cd /usr/share/virtio-win/
      
    3. Windows® カスタムイメージに使用するために、安全なコピーを使用して virtio-win ISO ファイル、例えば virtio-win-1.9.24.iso をコピーします。

    • ® クライアントで ISO ファイルをコピーするには、winSCP を使ってください。
    • SCP を使用して、 Linux または macOS クライアントで ISO ファイルをコピーします。
    1. ISO ファイルをマウントして開きます。

    2. 関連するすべての virtio ドライバーをそれぞれのオペレーティング・システムの virtio-win.iso ファイルからコピーし、それらのドライバーを Drivers という名前のフォルダーに入れてから、 Drivers フォルダーをオペレーティング・システムの ISO フォルダーにコピーします。

    3. Windows Assessment and Deployment Toolkit(ADK)をダウンロードします。 oscdimg.exe ユーティリティーを取得するには、デプロイメント・ツールのみをインストールします。

    4. 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
      
  4. VirtualBox を使用して、ステップ 3 で作成したブータブル Windows® ISO を使用して、ステップ 2 で作成した VHD イメージで仮想サーバーを作成します。 詳細については、Oracle VM VirtualBox ユーザー マニュアルを参照してください。

    VirtualBox 以外の方法でカスタムイメージを作成する場合 (VMware など)、カスタムイメージからそのハイパーバイザー固有のドライバーをすべて削除する必要があります。

  5. ストレージ設定で、ステップ3で作成したWindows®インストール起動可能ISOを追加します。

  6. サーバーを起動し、Windows® のインストールを開始します。

  7. オペレーティング システムのエディション(標準/データ センター)とデスクトップ エクスペリエンス(デスクトップ エクスペリエンスあり/デスクトップ エクスペリエンスなし)を選択します。

  8. 「Drive 0 (ドライブ 0)」 を選択して、インストールを続行します。

  9. インストールが完了したら、仮想サーバーをシャットダウンし、インストール ISO を削除します。 インストール ISO の削除に関する警告は無視してかまいません。

  10. デフォルトのWindows®アップデータを使用して、Windowsアップデートをダウンロードしてインストールします。 使用可能な更新がなくなるまで、更新をダウンロードしてインストールするプロセスを繰り返します。

リカバリイメージでvirtio-winドライバを利用可能にする

Windows® イメージを作成したら、virtio-win ドライバがリカバリイメージで使用可能であることを確認します。 このステップでは、トラブルシューティングやレスキューモードでリカバリイメージを使用できるようにします。

必要な virtio ドライバ vioscsi.infviostor.inf をダウンロードしたら、以下の手順でドライバをリカバリイメージで使用できるようにします。

  1. reagentc /info コマンドを使ってリカバリーイメージを見つける。

    • リカバリイメージが別のリカバリパーティションにある場合は、diskpart ユーティリティを使ってドライブ文字を割り当て、ドライブの非表示を解除します。 個別のリカバリ・パーティションが存在しない場合は、これらの手順は必要ありません。 次の例は、パーティション 3、ドライブ R、設定 id=07 の場合です。

      diskpart
      select disk 0
      list part
      select part 3
      assign letter R
      set id=07
      exit
      
  2. リカバリーイメージを変更するには、reagentc /disable を使ってリカバリーモードを無効にします。

  3. リカバリーイメージをマウントするディレクトリを作成する。

    md C:\mount\winre
    
  4. リカバリイメージをマウントディレクトリにコピーする。

    xcopy /h R:\Recovery\WindowsRE\Winre.wim C:\mount\
    
  5. attrib -s -h -r C:\mount\Winre.wim を使ってリカバリーイメージを見えるようにします。

  6. dism /Mount-Image /ImageFile:c:\mount\Winre.wim /index:1 /MountDir:c:\mount\winre を使ってリカバリーイメージの内容をマウントする。

  7. vioscsiviostor ドライバーをリカバリーイメージに追加する。 以下の例では、virtio ドライバがドライブ E にあると仮定しています。 vioscsiviostor ドライバの対応する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"
    
  8. すべてのドライバーを追加したら、リカバリーイメージを作成する準備が整いました。

    Dism /Image:c:\mount\winre /Cleanup-Image /StartComponentCleanup
    Dism /Unmount-Image /MountDir:c:\mount\winre /Commit
    
  9. リカバリーイメージを最適化する。

    Dism /Export-Image /SourceImageFile:c:\mount\WinRE.wim /SourceIndex:1 /DestinationImageFile:c:\mount\winre-optimized.wim
    
  10. リカバリーイメージを、ステップ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
      
  11. reagentc /enable を使ってリカバリーイメージを有効にします。

  12. reagentc /info でリカバリーモードが有効になっていることを確認する。

必要な virtio ドライバを含むリカバリイメージがセットアップされます。

2.仮想サーバーのカスタマイズ

VirtualBoxを使用して作成した仮想サーバーをカスタマイズするには、以下の手順を実行します。

  1. Cloudbase-Init インストール・パッケージ から cloudbase-init をインストールして構成します。

  2. 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
    
  3. 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
    
  4. Unattend.xml ファイル (C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\Unattend.xml) を変更し、 PersistAllDeviceInstalls 値を false に設定します。

  5. コマンド・プロンプトから以下のコマンドを使用して、 Sysprep を実行します。

    C:\Windows\System32\Sysprep\Sysprep.exe /oobe /generalize /shutdown "/unattend:C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\Unattend.xml"
    
  6. 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 インフラストラクチャーにサーバーをデプロイできます。

インポートされたイメージから新規仮想サーバーを作成した後、その仮想サーバーにアクセスする前に、その仮想サーバーを停止してから始動します。

  1. IBM Cloud コンソールで、ナビゲーションメニュー メニューアイコン インフラストラクチャ VPCアイコン コンピュート>仮想サーバーインスタンス をクリックします。
  2. 「仮想サーバー・インスタンス」 ページで、「アクション」アイコン 「その他のアクション」アイコン をクリックします。