IBM Cloud Docs
사용자 지정 Windows® 이미지 만들기

사용자 지정 Windows® 이미지 만들기

사용자 지정 Windows® 기반 이미지를 생성하여 사용자 지정 이미지를 IBM Cloud® Virtual Private Cloud로 가져올 수 있습니다. 그런 다음 사용자 정의 이미지를 사용하여 가상 서버 또는 베어메탈 서버를 IBM Cloud® Virtual Private Cloud 인프라에 배포할 수 있습니다.

시작하기 전에

IBM Cloud 클래식 인프라의 이미지 템플리트로 시작할 수 있습니다. 자세한 정보는 클래식 인프라에서 가상 서버 마이그레이션을 참조하십시오. 가져오기 시점에 서버에 첨부된 부팅 볼륨의 사용자 지정 이미지를 만들 수도 있습니다. 자세한 정보는 볼륨에서 이미지 작성 정보을 참조하십시오. Windows® 사용자 지정 이미지는 LinuxONE (s390x 프로세서 아키텍처)에서 지원되지 않습니다.

모든 사용자 지정 이미지는 다음 요구 사항을 충족해야 합니다

  • 단일 파일 또는 볼륨을 포함하고 있습니다.
  • qcow2 또는 vhd 형식이어야 합니다.
  • ESXi kickstart를 사용하여 cloud-init를 활성화하거나 부팅할 수 있어야 합니다.
  • 크기는 250GB를 초과하지 않습니다.
  • 최소 크기는 10GB입니다. 10GB미만인 이미지의 경우 크기는 10GB로 반올림됩니다.

100GB가 아닌 암호화된 부팅 볼륨(볼륨의 이미지)에서는 이미지를 만들 수 없습니다.

다음 단계에 따라 IBM Cloud VPC 인프라 환경에 배포할 Windows® 사용자 지정 이미지를 만들 수 있습니다. 프로시저에는 다음과 같은 상위 레벨 태스크가 포함됩니다.

  • VirtualBox를 사용하여 VHD 형식의 Windows® 이미지를 생성합니다.
  • virtIO 드라이버 및 Cloudbase-init를 사용하여 이미지를 사용자 정의합니다.

Windows® 사용자 지정 이미지를 만들기 전에 다음 요구 사항을 염두에 두세요.

Virtio-win 드라이버를 설치해야 합니다. Microsoft®는 라이선스가 부여된 RHEL 버전 8 또는 9 인스턴스에서 드라이버를 다운로드할 것을 권장합니다. Red Hat는 Microsoft 인증 드라이버를 사용합니다. 권장되는 최소 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 2016, Windows 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)을 복사합니다.

    • winSCP를 사용하여 ® 클라이언트에서 ISO 파일을 복사합니다.
    • SCP를 사용하여 Linux 또는 macOS 클라이언트에서 ISO 파일을 복사하십시오.
    1. ISO 파일을 마운트하고 여십시오.

    2. 각 운영 체제의 virtio-win.iso 파일에서 모든 관련 virtio 드라이버를 복사하고 드라이버를 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. 3단계에서 만든 부팅 가능한 Windows® ISO를 사용하여 2단계에서 만든 VHD 이미지로 가상 서버를 만들려면 VirtualBox를 사용하세요. 자세한 내용은 Oracle VM VirtualBox 사용 설명서를 참조하세요.

    VirtualBox 이외의 방법을 사용하여 사용자 지정 이미지를 만들려면(예: VMware) 사용자 지정 이미지에서 해당 하이퍼바이저와 관련된 모든 드라이버를 제거해야 합니다.

  5. 저장소 설정에서 3단계에서 만든 Windows® 설치 부팅 가능한 ISO를 추가합니다.

  6. 서버를 시작하고 Windows® 설치를 시작합니다.

  7. 운영 체제의 에디션(표준/데이터 센터)와 데스크톱 경험(데스크톱 경험 포함 또는 데스크톱 경험 제외)를 선택합니다.

  8. 드라이브 0 을 선택하고 설치를 계속하십시오.

  9. 설치가 완료되면 가상 서버를 종료하고 설치 ISO를 제거하십시오. 설치 ISO 제거에 대한 경고를 무시할 수 있습니다.

  10. 기본 Windows® 업데이터를 사용하여 Windows 업데이트를 다운로드하고 설치합니다. 사용 가능한 업데이트가 없을 때까지 업데이트 다운로드 및 설치 프로세스를 반복하십시오.

복구 이미지에서 가상 윈 드라이버를 사용 가능하게 만들기

Windows® 이미지를 생성한 후 복구 이미지에서 가상 윈 드라이버를 사용할 수 있는지 확인합니다. 이 단계에서는 복구 이미지를 사용하여 문제를 해결하거나 복구 모드에서 이미지를 사용할 수 있는지 확인합니다.

필요한 가상화 드라이버 vioscsi.infviostor.inf 를 다운로드한 후 다음 단계에 따라 복구 이미지에서 드라이버를 사용할 수 있도록 설정합니다.

  1. reagentc /info 명령을 사용하여 복구 이미지를 찾습니다.

    • 복구 이미지가 별도의 복구 파티션에 있는 경우 diskpart 유틸리티를 사용하여 드라이브 문자를 할당하고 드라이브 숨기기를 해제합니다. 별도의 복구 파티션이 없는 경우에는 이러한 단계가 필요하지 않습니다. 다음 예는 드라이브가 R 인 파티션 3 의 경우이며, 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 드라이버를 복구 이미지에 추가합니다. 다음 예제에서는 버티오 드라이버가 드라이브 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 을 사용하여 복구 모드가 활성화되어 있는지 확인합니다.

필요한 가상화 드라이버가 포함된 복구 이미지로 이미지가 설정됩니다.

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 버킷의 페이지에서 업로드을 클릭합니다. 200MB보다 큰 이미지를 업로드할 때는 Aspera 고속 전송 플러그인을 사용할 수 있습니다. 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. 가상 서버 인스턴스 페이지에서 조치 아이콘 추가 조치 아이콘 을 클릭하십시오.