Erstellen eines benutzerdefinierten Windows®-Images

Sie können Ihr eigenes benutzerdefiniertes Windows®-basiertes Image erstellen, um das benutzerdefinierte Image in IBM Cloud® Virtual Private Cloud. zu importieren. Anschließend können Sie das benutzerdefinierte Image verwenden, um einen virtuellen Server oder Bare-Metal-Server in Ihrer IBM Cloud® Virtual Private Cloud Infrastruktur bereitzustellen.

Vorbereitende Schritte

Es bietet sich an, mit einer Imagevorlage aus der klassischen IBM Cloud-Infrastruktur zu beginnen. Weitere Informationen hierzu finden Sie unter Virtuellen Server aus klassischer Infrastruktur migrieren. Sie können außerdem ein benutzerdefiniertes Image eines Startvolumes erstellen, das zum Zeitpunkt des Imports an einen Server angeschlossen ist. Weitere Informationen finden Sie unter Informationen zum Erstellen eines Image von einem Datenträger. Beachten Sie, dass Windows® Custom Images für LinuxONE (s390x Prozessorarchitektur) nicht unterstützt werden.

Alle benutzerdefinierten Bilder müssen die folgenden Anforderungen erfüllen:

  • Sie müssen eine einzelne Datei oder einen Datenträger enthalten.
  • Liegen im Format qcow2 oder vhd vor.
  • Die Größe darf 250 GB nicht überschreiten.
  • Vergewissern Sie sich, dass cloud-init(Linux ) oder cloudbase-init(Windows) im qcow2 Image installiert und aktiv ist.
  • Die Mindestgröße beträgt 10 GB. Für jedes Image, das kleiner als 10 GB ist, wird die Größe auf 10 GB aufgerundet.

Es ist nicht möglich, ein Image von einem verschlüsselten Startvolume zu erstellen, das nicht 100 GB groß ist.

Gehen Sie wie folgt vor, um ein benutzerdefiniertes Windows®-Image zu erstellen, das in der IBM Cloud VPC-Infrastrukturumgebung bereitgestellt wird. Die Prozedur umfasst die folgenden allgemeinen Aufgaben:

  • Verwenden Sie „ VirtualBox “, um ein Windows®-Image im VHD-Format zu erstellen.
  • Das Image mit virtIO-Treibern und Cloudbase-init anpassen

Beachten Sie die folgenden Anforderungen, bevor Sie ein benutzerdefiniertes Windows®-Image erstellen.

Virtio-win-Treiber müssen installiert sein. Microsoft® empfiehlt, dass Sie die Treiber von einer lizenzierten RHEL-Instanz der Version 8 oder 9 beziehen. Red Hat verwendet von Microsoft zertifizierte Treiber. Die empfohlene Mindestversion Red Hat des Pakets „virtio-win“ ist virtio-win-1.9.24. Die Verwendung des neuesten Pakets ist jedoch am besten.

Das ISO Red Hat virtio-win-1.9.24 enthält die folgenden spezifischen Treiberversionen.

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. Erstellen des benutzerdefinierten Windows®-Abbilds

Gehen Sie wie folgt vor, um ein benutzerdefiniertes Windows®-Image zu erstellen.

  1. Sie können die Testversion von Windows 2016, Windows 2019oder Windows 2022-Betriebssystem-ISOs herunterladen.

  2. Erstellen Sie mit dem Dienstprogramm qemu-img ein VHD-Image, auf dem Sie Windows installieren möchten. Laden Sie das Dienstprogramm qemu-img herunter und extrahieren Sie es auf Ihrem Windows-Laptop-Client. Erstellen Sie das VHD-Image in dem Ordner, in dem Sie das Dienstprogramm qemu-img extrahiert haben.

    qemu-img.exe create -f vpc Windows-2019.vhd 100G
    

    IBM Cloud® Unterstützt den Import benutzerdefinierter Images im VHD- oder „ qcow2 “-Format. VirtualBox unterstützt jedoch das Format „ qcow2 “ nicht.

  3. Rufen Sie die erforderlichen virtio-win-Treiber für Bereitstellung ab oder greifen Sie auf einen vorhandenen RHEL-Server in IBM Cloud VPCzu.

    1. Installieren Sie auf Ihrem RHEL-Server in IBM Cloud VPCdas virtio-win-Paket, indem Sie den folgenden Befehl ausführen.
       yum install virtio-win
    

    In diesem Beispiel wird das Paket virtio-win unter RHEL Version 8 installiert. Die von Ihnen zurückgegebene Ausgabe entspricht in etwa dem folgenden Beispiel.

    Installed:
      virtio-win-1.9.24-2.el8_5.noarch
    
    1. Greifen Sie auf das virtio-win-ISO-Image im Verzeichnis /usr/share/virtio-win zu.
       cd /usr/share/virtio-win/
    
    1. Verwenden Sie „secure copy“, um die virtio-win-ISO-Datei, beispielsweise virtio-win-1.9.24.iso, für Ihr benutzerdefiniertes Windows®-Image zu kopieren.

      • Verwenden Sie winSCP, um die ISO-Datei auf einen ®-Client zu kopieren.
      • Verwenden Sie „ SmartCloud Provisioning “, um die ISO-Datei auf einen Client unter Linux oder macOS zu kopieren.
    2. Hängen Sie die ISO-Datei an und öffnen Sie sie.

    3. Kopieren Sie alle relevanten virtio-Treiber aus der Datei virtio-win.iso für das jeweilige Betriebssystem, stellen Sie die Treiber in einen Ordner namens Drivers und kopieren Sie dann den Ordner Drivers in den ISO-Ordner des Betriebssystems.

    4. Laden Sie Windows Assessment and Deployment Toolkit(ADK)herunter. Installieren Sie nur die Implementierungstools, um das Dienstprogramm oscdimg.exe abzurufen.

    5. Erstellen Sie mit dem Befehl oscdimg.exe eine bootfähige Windows-ISO-Datei, die alle virtio-Treiber im Ordner Drivers enthält.

       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. Verwenden Sie VirtualBox, um einen virtuellen Server mit dem VHD-Image zu erstellen, das Sie in Schritt 2 unter Verwendung des in Schritt 3 erstellten bootfähigen Windows®-ISOs erstellt haben. Weitere Informationen finden Sie unter Oracle, VM und VirtualBox im Benutzerhandbuch.

    Wenn Sie zum Erstellen des benutzerdefinierten Images eine andere Methode als „ VirtualBox “ verwenden möchten, z. B. „ VMware “, müssen Sie alle für diesen Hypervisor spezifischen Treiber aus dem benutzerdefinierten Image entfernen.

  5. Fügen Sie in den Speichereinstellungen das bootfähige Windows®-Installations-ISO hinzu, das Sie in Schritt 3 erstellt haben.

  6. Starten Sie den Server und beginnen Sie mit der Windows®-Installation.

  7. Wählen Sie die Edition (Standard / Data Center) des Betriebssystems und Desktop Experience (mit Desktop Experience oder ohne Desktop Experience).

  8. Wählen Sie Laufwerk 0 aus und fahren Sie mit der Installation fort.

  9. Fahren Sie nach Abschluss der Installation den virtuellen Server herunter und entfernen Sie das ISO-Installationsimage. Sie können Warnungen bezüglich der Entfernung der ISO-Installation ignorieren.

  10. Verwenden Sie das standardmäßige Windows®-Update-Programm, um Windows-Updates herunterzuladen und zu installieren. Wiederholen Sie den Prozess zum Herunterladen und Installieren von Updates, bis keine Updates mehr verfügbar sind.

Bereitstellung der Virtio-Win-Treiber im Recovery-Image

Nachdem Sie Ihr Windows®-Image erstellt haben, stellen Sie sicher, dass die virtio-win-Treiber im Recovery-Image verfügbar sind. Dieser Schritt stellt sicher, dass Sie das Wiederherstellungsabbild verwenden können, um Probleme zu beheben oder um das Abbild im Rettungsmodus zu verwenden.

Nachdem Sie die erforderlichen Virtio-Treiber vioscsi.inf und viostor.inf heruntergeladen haben, führen Sie die folgenden Schritte aus, um die Treiber im Recovery-Image verfügbar zu machen.

  1. Suchen Sie das Wiederherstellungsimage mit dem Befehl reagentc /info.

    • Wenn sich das Wiederherstellungsimage in einer separaten Wiederherstellungspartition befindet, verwenden Sie das Dienstprogramm diskpart, um einen Laufwerksbuchstaben zuzuweisen und das Laufwerk freizugeben. Diese Schritte sind nicht erforderlich, wenn keine separaten Wiederherstellungspartitionen vorhanden sind. Das folgende Beispiel bezieht sich auf die Partition 3 mit dem Laufwerk R und verwendet die Einstellung id=07.
       diskpart
       select disk 0
       list part
       select part 3
       assign letter R
       set id=07
       exit
    
  2. Um das Recovery-Image zu ändern, verwenden Sie reagentc /disable, um den Recovery-Modus zu deaktivieren.

  3. Erstellen Sie ein Verzeichnis, um das Wiederherstellungsimage zu mounten.

    md C:\mount\winre
    
  4. Kopieren Sie das Wiederherstellungsimage in das Mount-Verzeichnis.

    xcopy /h R:\Recovery\WindowsRE\Winre.wim C:\mount\
    
  5. Machen Sie das Wiederherstellungsbild sichtbar, indem Sie attrib -s -h -r C:\mount\Winre.wim verwenden.

  6. Mounten Sie den Inhalt des Wiederherstellungsimages mit dism /Mount-Image /ImageFile:c:\mount\Winre.wim /index:1 /MountDir:c:\mount\winre.

  7. Fügen Sie die Treiber vioscsi und viostor in das Wiederherstellungsimage ein. Das folgende Beispiel geht davon aus, dass sich die Virtio-Treiber auf Laufwerk E befinden. Wählen Sie die entsprechende Windows®-Version für die Treiber vioscsi und viostor.

    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"
    

    Zusätzliche Speichervolumes werden als virtio-Blockgeräte dargestellt. Ihr Startvolume ist wird als SCSI-Gerät dargestellt, außer in zwei Fällen. Wenn sich Ihr Startvolume auf einem Gerät der zweiten Generation befindet Speichervolumen wird als virtio-Blockgerät dargestellt. Außerdem gilt: Wenn Ihre Instanz mit Secure Boot und einem Betriebssystem vom Typ Windows Server 2022 oder neuer läuft, ist Ihr Das Boot-Volume wird als virtio-Blockgerät dargestellt.

  8. Nachdem Sie alle Treiber hinzugefügt haben, können Sie das Wiederherstellungsimage erstellen.

    Dism /Image:c:\mount\winre /Cleanup-Image /StartComponentCleanup
    Dism /Unmount-Image /MountDir:c:\mount\winre /Commit
    
  9. Optimieren Sie das Wiederherstellungsimage.

    Dism /Export-Image /SourceImageFile:c:\mount\WinRE.wim /SourceIndex:1 /DestinationImageFile:c:\mount\winre-optimized.wim
    
  10. Kopieren Sie das Wiederherstellungsabbild mit seinen ursprünglichen Attributen an den in Schritt 1 angegebenen Speicherort.

    xcopy C:\mount\winre-optimized.wim  R:\Recovery\WindowsRE\WinEe.wim /h /r
    
    • Wenn sich das Wiederherstellungsimage in einer separaten Wiederherstellungspartition befindet, verwenden Sie das Dienstprogramm diskpart, um den zugewiesenen Laufwerksbuchstaben zu entfernen und das Laufwerk zu verbergen. Diese Schritte sind nicht erforderlich, wenn keine separaten Wiederherstellungspartitionen vorhanden sind. Das folgende Beispiel bezieht sich auf Partition 3 mit Laufwerk R.
       diskpart
       select disk 0
       list part
       select part 3
       remove letter R
       set id=27
       exit
    
  11. Aktivieren Sie das Wiederherstellungsimage mit reagentc /enable.

  12. Überprüfen Sie mithilfe von reagentc /info, ob der Wiederherstellungsmodus aktiviert ist.

Ihr Image wird mit einem Wiederherstellungsimage eingerichtet, das die erforderlichen Virtio-Treiber enthält.

2. Anpassen eines virtuellen Servers

Führen Sie die folgenden Schritte aus, um den virtuellen Server anzupassen, den Sie mit VirtualBox erstellt haben.

  1. Installieren und konfigurieren Sie cloudbase-init über das Cloudbase-Init-Installationspaket.

  2. Ändern Sie die Datei cloudbase-init.conf (C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init.conf) so, dass sie den folgenden Werten entspricht. Entfernen Sie keinen weiteren Inhalt aus der Datei.

    [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
    

    Wenn Sie beabsichtigen, eine eigene Lizenz für Ihr benutzerdefiniertes Image mitzubringen, entfernen Sie die folgenden Zeilen aus der Datei „ cloudbase-init.conf “.

    activate_windows=true
    kms_host=kms.adn.networklayer.com:1688
    
  3. Ändern Sie die Datei cloudbase-init-unattend.conf (C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init-unattend.conf) so, dass sie den folgenden Werten entspricht. Entfernen Sie keinen weiteren Inhalt aus der Datei.

    [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. Ändern Sie die Datei Unattend.xml (C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\Unattend.xml) und setzen Sie den Wert PersistAllDeviceInstalls auf false.

  5. Führen Sie Sysprep aus, indem Sie den folgenden Befehl über die Eingabeaufforderung ausführen:

    C:\Windows\System32\Sysprep\Sysprep.exe /oobe /generalize /shutdown "/unattend:C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\Unattend.xml"
    
  6. Nach der Ausführung von sysprep wird der virtuelle Server heruntergefahren. Dann können Sie fortfahren mit Schritt 4 - Erstellen einer Image-Vorlage Ihres benutzerdefinierten virtuellen Servers

3. Hochladen eines benutzerdefinierten Bildes

Verwenden Sie die folgenden Informationen, um ein angepasstes Image in IBM Cloud Object Storagehochzuladen.

Klicken Sie auf der Seite „Objekte“ Ihres „ IBM Cloud® “-Speicherbuchs unter Object Storage auf „ Hochladen “. Sie können das Plug-in „ Aspera “ für Hochgeschwindigkeitsübertragungen verwenden, um Bilder hochzuladen, die größer als 200 MB sind. Weitere Informationen zum Hochladen in IBM Cloud Object Storage finden Sie unter Daten hochladen.

Nächste Schritte

Wenn Ihr benutzerdefiniertes Windows®-Image erstellt und in IBM Cloud Object Storage verfügbar ist, können Sie das benutzerdefinierte Image in VPC importieren und ein virtuelles Server-Image für VPC einbinden. Stellen Sie sicher, dass Sie Zugriff auf IBM Cloud Object Storage erteilen, um Images zu importieren.

Wenn Sie Ihre benutzerdefinierten Bilder mit einem privaten Katalog verwalten möchten, müssen Sie das Bild zunächst in importieren und anschließend in IBM Cloud VPC einen privaten Katalog aufnehmen.

Nachdem das angepasste Image importiert wurde, können Sie es verwenden, um einen Server in Ihrer IBM Cloud® Virtual Private Cloud-Infrastruktur bereitzustellen.

Nachdem Sie einen neuen virtuellen Server aus dem importierten Image erstellt haben, stoppen und starten Sie den virtuellen Server, bevor Sie auf ihn zugreifen:

  1. Klicken Sie in der IBM Cloud Konsole auf Navigationsmenü Menüsymbol > Infrastruktur VPC-Symbol > Compute > Virtuelle Serverinstanzen.
  2. Klicken Sie auf der Seite Virtuelle Serverinstanzen auf das Symbol 'Aktionen' Symbol 'Weitere Aktionen'.