사용자 지정 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® 이미지를 만들 수 있습니다.
-
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
)을 복사합니다.
- winSCP를 사용하여 ® 클라이언트에서 ISO 파일을 복사합니다.
- SCP를 사용하여 Linux 또는 macOS 클라이언트에서 ISO 파일을 복사하십시오.
-
ISO 파일을 마운트하고 여십시오.
-
각 운영 체제의
virtio-win.iso
파일에서 모든 관련 virtio 드라이버를 복사하고 드라이버를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
-
-
3단계에서 만든 부팅 가능한 Windows® ISO를 사용하여 2단계에서 만든 VHD 이미지로 가상 서버를 만들려면 VirtualBox를 사용하세요. 자세한 내용은 Oracle VM VirtualBox 사용 설명서를 참조하세요.
VirtualBox 이외의 방법을 사용하여 사용자 지정 이미지를 만들려면(예: VMware) 사용자 지정 이미지에서 해당 하이퍼바이저와 관련된 모든 드라이버를 제거해야 합니다.
-
저장소 설정에서 3단계에서 만든 Windows® 설치 부팅 가능한 ISO를 추가합니다.
-
서버를 시작하고 Windows® 설치를 시작합니다.
-
운영 체제의 에디션(표준/데이터 센터)와 데스크톱 경험(데스크톱 경험 포함 또는 데스크톱 경험 제외)를 선택합니다.
-
드라이브 0 을 선택하고 설치를 계속하십시오.
-
설치가 완료되면 가상 서버를 종료하고 설치 ISO를 제거하십시오. 설치 ISO 제거에 대한 경고를 무시할 수 있습니다.
-
기본 Windows® 업데이터를 사용하여 Windows 업데이트를 다운로드하고 설치합니다. 사용 가능한 업데이트가 없을 때까지 업데이트 다운로드 및 설치 프로세스를 반복하십시오.
복구 이미지에서 가상 윈 드라이버를 사용 가능하게 만들기
Windows® 이미지를 생성한 후 복구 이미지에서 가상 윈 드라이버를 사용할 수 있는지 확인합니다. 이 단계에서는 복구 이미지를 사용하여 문제를 해결하거나 복구 모드에서 이미지를 사용할 수 있는지 확인합니다.
필요한 가상화 드라이버 vioscsi.inf
및 viostor.inf
를 다운로드한 후 다음 단계에 따라 복구 이미지에서 드라이버를 사용할 수 있도록 설정합니다.
-
reagentc /info
명령을 사용하여 복구 이미지를 찾습니다.-
복구 이미지가 별도의 복구 파티션에 있는 경우
diskpart
유틸리티를 사용하여 드라이브 문자를 할당하고 드라이브 숨기기를 해제합니다. 별도의 복구 파티션이 없는 경우에는 이러한 단계가 필요하지 않습니다. 다음 예는 드라이브가R
인 파티션3
의 경우이며,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
드라이버를 복구 이미지에 추가합니다. 다음 예제에서는 버티오 드라이버가 드라이브 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
을 사용하여 복구 모드가 활성화되어 있는지 확인합니다.
필요한 가상화 드라이버가 포함된 복구 이미지로 이미지가 설정됩니다.
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 버킷의 페이지에서 업로드을 클릭합니다. 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 인프라에서 서버를 배치할 수 있습니다.
가져온 이미지에서 새 가상 서버를 작성한 후 가상 서버에 액세스하기 전에 가상 서버를 중지한 후 시작하십시오.
- IBM Cloud 콘솔에서 탐색 메뉴
인프라 > 인프라
> 컴퓨팅 > 가상 서버 인스턴스를 클릭합니다.
- 가상 서버 인스턴스 페이지에서 조치 아이콘
을 클릭하십시오.