IBM Cloud Docs
Création d'une image Windows® personnalisée

Création d'une image Windows® personnalisée

Vous pouvez créer votre propre image Windows® personnalisée pour l'importer dans IBM Cloud® Virtual Private Cloud. Vous pouvez ensuite utiliser l'image personnalisée pour déployer un serveur virtuel ou un serveur bare metal dans votre infrastructure IBM Cloud® Virtual Private Cloud.

Avant de commencer

Vous pouvez commencer par un modèle d'image de l'infrastructure IBM Cloud classique. Pour plus d'informations, voir Migration d'un serveur virtuel à partir de l'infrastructure classique. Vous pouvez également créer une image personnalisée d'un volume de démarrage qui est attaché à un serveur au moment de l'importation. Pour plus d'informations, voir A propos de la création d'une image à partir d'un volume. N'oubliez pas que les images personnalisées Windows® ne sont pas prises en charge pour LinuxONE (s390x architecture de processeur).

Toutes les images personnalisées doivent répondre aux exigences suivantes:

  • Contenir un seul fichier ou un seul volume.
  • Être au format qcow2 ou vhd.
  • Être activé pour cloud-init ou démarrer à l'aide d'ESXi kickstart.
  • La taille ne doit pas dépasser 250 Go.
  • La taille minimale est de 10 Go. Pour toute image de moins de 10 Go, la taille est arrondie à 10 Go.

Vous ne pouvez pas créer une image à partir d'un volume de démarrage crypté (image à partir d'un volume) qui ne fait pas 100 Go.

Suivez les étapes suivantes pour créer une image personnalisée Windows® à déployer dans l'environnement d'infrastructure IBM Cloud VPC. La procédure comprend les tâches de haut niveau suivantes.

  • Utilisez VirtualBox pour créer une image Windows® au format VHD.
  • Personnalisation de l'image avec Cloudbase-init et les pilotes virtIO.

Gardez à l'esprit les exigences suivantes avant de créer une image personnalisée de Windows®.

Les pilotes Virtio-win doivent être installés. Microsoft® recommande d'obtenir les pilotes à partir d'une instance RHEL version 8 ou 9 sous licence. Red Hat utilise des pilotes certifiés par Microsoft. La version minimale recommandée du package Red Hat virtio-win est virtio-win-1.9.24. Cependant, l'utilisation du package le plus récent est préférable.

L'image ISO Red Hat virtio-win-1.9.24 contient les versions de pilote spécifiques suivantes.

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. Création de l'image personnalisée de Windows

Procédez comme suit pour créer une image Windows® personnalisée.

  1. Vous pouvez télécharger la version d'évaluation de Windows 2016, Windows 2019ou Windows 2022 ISOs du système d'exploitation.

  2. Avec l'utilitaire qemu-img, créez une image VHD dans laquelle vous souhaitez installer Windows. Téléchargez l'utilitaire qemu-img et extrayez-le sur votre client Windows pour ordinateur portable. Dans le dossier où vous avez extrait l'utilitaire qemu-img, créez l'image VHD.

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

    IBM Cloud® prend en charge l'importation d'images personnalisées avec VHD ou qcow2. Cependant, Virtual Box ne prend pas en charge le format qcow2.

  3. Obtenez les pilotes virtio-win requis en mettant à disposition ou en accédant à un serveur RHEL existant dans IBM Cloud VPC.

    1. Sur votre serveur RHEL dans IBM Cloud VPC, installez le package virtio-win en exécutant la commande suivante.

      yum install virtio-win
      

      Dans cet exemple, le package virtio-win s'installe sur RHEL version 8. Le résultat obtenu est similaire à l'exemple suivant.

      Installed:
        virtio-win-1.9.24-2.el8_5.noarch
      
    2. Accédez au fichier ISO virtio-win dans le répertoire /usr/share/virtio-win.

      cd /usr/share/virtio-win/
      
    3. Utilisez une copie sécurisée pour copier le fichier ISO virtio-win, par exemple virtio-win-1.9.24.iso, que vous utiliserez pour votre image personnalisée de Windows®.

    • Utilisez winSCP pour copier le fichier ISO sur un client ®.
    • Utilisez SCP pour copier le fichier ISO sur un client Linux ou macOS.
    1. Montez et ouvrez le fichier ISO.

    2. Copiez tous les pilotes virtio appropriés du fichier virtio-win.iso pour le système d'exploitation respectif, placez les pilotes dans un dossier appelé Drivers, puis copiez le dossier Drivers dans le dossier ISO du système d'exploitation.

    3. Téléchargez le kit d'outils d'évaluation et de déploiement Windows(ADK). Pour obtenir l'utilitaire oscdimg.exe, installez uniquement les outils de déploiement.

    4. Créez une image ISO Windows amorçable qui incorpore tous les pilotes virtio dans le dossier Drivers à l'aide de la commande oscdimg.exe.

      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. Utilisez VirtualBox pour créer un serveur virtuel avec l'image VHD que vous avez créée à l'étape 2 en utilisant l'ISO Windows® amorçable que vous avez créée à l'étape 3. Pour plus d'informations, voir Oracle VM VirtualBox Manuel de l'utilisateur.

    Si vous souhaitez utiliser une méthode autre que VirtualBox pour créer l'image personnalisée, telle que VMware, vous devez supprimer de l'image personnalisée tous les pilotes spécifiques à cet hyperviseur.

  5. Dans les paramètres de stockage, ajoutez l'ISO amorçable pour l'installation de Windows® que vous avez créée à l'étape 3.

  6. Démarrez le serveur et commencez l'installation de Windows®.

  7. Sélectionnez la Edition (Standard / Data Center) du système d'exploitation et Desktop Experience (avec Desktop Experience ou sans Desktop Experience).

  8. Sélectionnez Unité 0 et poursuivez l'installation.

  9. Une fois l'installation terminée, arrêtez le serveur virtuel et supprimez l'image ISO d'installation. Vous pouvez ignorer les avertissements relatifs à la suppression de l'image ISO d'installation.

  10. Utilisez le programme de mise à jour par défaut de Windows® pour télécharger et installer les mises à jour de Windows. Répétez le processus de téléchargement et d'installation des mises à jour jusqu'à ce qu'aucune mise à jour ne soit disponible.

Mise à disposition des pilotes virtio-win dans l'image de récupération

Après avoir créé votre image Windows®, assurez-vous que les pilotes virtio-win sont disponibles dans l'image de récupération. Cette étape permet de s'assurer que vous pouvez utiliser l'image de récupération pour résoudre les problèmes ou pour utiliser l'image en mode de secours.

Après avoir téléchargé les pilotes virtio requis vioscsi.inf et viostor.inf, procédez comme suit pour rendre les pilotes disponibles dans l'image de récupération.

  1. Recherchez l'image de récupération à l'aide de la commande reagentc /info.

    • Si l'image de récupération se trouve dans une partition de récupération séparée, utilisez l'utilitaire diskpart pour attribuer une lettre de lecteur et pour démasquer le lecteur. Ces étapes ne sont pas nécessaires s'il n'existe pas de partitions de récupération distinctes. L'exemple suivant concerne la partition 3, avec le lecteur R, et utilise le paramètre id=07.

      diskpart
      select disk 0
      list part
      select part 3
      assign letter R
      set id=07
      exit
      
  2. Pour modifier l'image de récupération, utilisez reagentc /disable pour désactiver le mode de récupération.

  3. Créez un répertoire pour monter l'image de récupération.

    md C:\mount\winre
    
  4. Copiez l'image de récupération dans le répertoire de montage.

    xcopy /h R:\Recovery\WindowsRE\Winre.wim C:\mount\
    
  5. Rendez l'image de récupération visible en utilisant attrib -s -h -r C:\mount\Winre.wim.

  6. Montez le contenu de l'image de récupération en utilisant dism /Mount-Image /ImageFile:c:\mount\Winre.wim /index:1 /MountDir:c:\mount\winre.

  7. Ajoutez les pilotes vioscsi et viostor à l'image de récupération. L'exemple suivant suppose que les pilotes virtio se trouvent sur le lecteur E. Sélectionnez la version de Windows® correspondante pour les pilotes vioscsi et 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"
    
  8. Après avoir ajouté tous les pilotes, vous êtes prêt à créer l'image de récupération.

    Dism /Image:c:\mount\winre /Cleanup-Image /StartComponentCleanup
    Dism /Unmount-Image /MountDir:c:\mount\winre /Commit
    
  9. Optimiser l'image de récupération.

    Dism /Export-Image /SourceImageFile:c:\mount\WinRE.wim /SourceIndex:1 /DestinationImageFile:c:\mount\winre-optimized.wim
    
  10. Copiez l'image de récupération à son emplacement d'origine, comme indiqué à l'étape 1, avec ses attributs d'origine.

    xcopy C:\mount\winre-optimized.wim  R:\Recovery\WindowsRE\WinEe.wim /h /r
    
    • Si l'image de récupération se trouve dans une partition de récupération séparée, utilisez l'utilitaire diskpart pour supprimer la lettre de lecteur attribuée et masquer le lecteur. Ces étapes ne sont pas nécessaires s'il n'existe pas de partitions de récupération distinctes. L'exemple suivant concerne la partition 3 avec le lecteur R.

      diskpart
      select disk 0
      list part
      select part 3
      remove letter R
      set id=27
      exit
      
  11. Activez l'image de récupération en utilisant reagentc /enable.

  12. Vérifiez que le mode de récupération est activé en utilisant reagentc /info.

Votre image est configurée avec une image de récupération qui inclut les pilotes virtio nécessaires.

2. Personnaliser un serveur virtuel

Effectuez les étapes suivantes pour personnaliser le serveur virtuel que vous avez créé à l'aide de VirtualBox.

  1. Installez et configurez cloudbase-init à partir du package d'installation Cloudbase-Init

  2. Modifiez le fichier cloudbase-init.conf (C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init.conf) pour qu'il corresponde aux valeurs suivantes. Ne supprimez aucun autre contenu du fichier.

    [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
    

    Si vous avez l'intention d'apporter votre propre licence pour votre image personnalisée, supprimez les lignes suivantes du fichier cloudbase-init.conf.

    activate_windows=true
    kms_host=kms.adn.networklayer.com:1688
    
  3. Modifiez le fichier cloudbase-init-unattend.conf (C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init-unattend.conf) pour qu'il corresponde aux valeurs suivantes. Ne supprimez aucun autre contenu du fichier.

    [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. Modifiez le fichier Unattend.xml (C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\Unattend.xml) et définissez la valeur PersistAllDeviceInstalls sur false.

  5. Exécutez Sysprep à l'aide de la commande suivante à partir de l'invite de commande.

    C:\Windows\System32\Sysprep\Sysprep.exe /oobe /generalize /shutdown "/unattend:C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\Unattend.xml"
    
  6. Une fois que vous avez exécuté sysprep, votre serveur virtuel s'arrête. Ensuite, vous pouvez continuer avec Étape 4 - Création d'un modèle d'image de votre serveur virtuel personnalisé

3. Téléchargement d'une image personnalisée

Utilisez les informations suivantes pour télécharger une image personnalisée dans IBM Cloud Object Storage.

Sur la page Objets de votre IBM Cloud® Object Storage, cliquez sur Télécharger. Vous pouvez utiliser le plug-in Aspera de transfert à grande vitesse pour télécharger des images d'une taille supérieure à 200 Mo. Pour plus d'informations sur le téléchargement vers IBM Cloud Object Storage, voir Téléchargement de données.

Etapes suivantes

Lorsque votre image personnalisée Windows® est créée et disponible dans IBM Cloud Object Storage, vous pouvez importer l'image personnalisée dans VPC et concevoir une image de serveur virtuel pour VPC. Veillez à accorder l'accès à IBM Cloud Object Storage pour importer des images.

Si vous prévoyez d'utiliser un catalogue privé pour gérer vos images personnalisées, vous devez d'abord importer cette image dans IBM Cloud VPC, puis l'intégrer dans un catalogue privé.

Une fois l'image personnalisée importée, vous pouvez l'utiliser pour déployer un serveur dans votre infrastructure IBM Cloud® Virtual Private Cloud.

Après avoir créé un serveur virtuel à partir de l'image importée, arrêtez, puis démarrez le serveur virtuel avant d'y accéder:

  1. Dans la console IBM Cloud, cliquez sur Menu de navigation Icône de menu > Infrastructure Icône VPC > Compute > Instances de serveurs virtuels.
  2. Sur la page Instances de serveur virtuel, cliquez sur l'icône Actions icône Plus d'actions.