WSK를 사용하여 기본 VM 이미지 만들기
이 연습에서는 Windows System Kit의 다양한 구성 요소를 사용하여 VM에서 기준 팩터리 OS 이미지를 빌드하는 방법을 보여줍니다. 기능 매니페스트 및 이미지 구성 파일을 사용하여 이미지를 구성하는 방법을 보여 줍니다.
이 랩을 실행하려면 다음이 필요합니다.
- 기술자 PC:
- Windows System Kit가 설치됨
- Hyper-V 관리자가 설치됨
- 샘플 드라이버(선택 사항)
- 샘플 UWP 앱(선택 사항)
Windows 시스템 키트 ISO를 탑재합니다.
SetImagGenEnv.cmd를 관리자 권한으로 실행하여 이미지 빌드 환경을 엽니다.SetImagGenEnv.cmd는 탑재된 WSK의 루트에 있습니다.작업 영역 만들기
먼저 작업 영역을 만듭니다. 작업 영역은 이미지를 만드는 데 필요한 파일의 컬렉션입니다. 작업 영역을 만들 때 아키텍처, 제품, 레이아웃, 부팅 유형 및 이미지 유형을 선택해야 합니다. 선택한 항목에 따라 Windows System Kit는 이미지 구성의 시작점으로 사용되는 OEMInput 파일이 있는 작업 영역을 만듭니다. 이 랩에서는 VM에 배포할 수 있는 팩터리 OS 이미지를 빌드합니다.
PrepWSKWorkspace "C:\Workspace" -Product FactoryOS -VM참고
이 랩 전체에서 보게 될 %WSKWorkspaceRoot% 변수는
prepwskworkspace를 실행할 때 자동으로 설정됩니다. Windows System Kit 환경을 닫았다가 다시 열면 작업 영역 폴더로 이동하고SetWSKWorkspaceRoot.cmd를 실행하여 작업 영역 루트를 설정할 수 있습니다.이미지에 드라이버 추가(선택 사항)
작업 영역을 만들 때 Windows System Kit에서
OEMDriversFM.xml라는 파일을 만들었습니다. 이 파일을 사용하면 이미지에 포함할 드라이버를 정의할 수 있습니다. Windows System Kit에서 생성된OEMDrivers.xml파일에는 추가 드라이버에 대한 정보가 포함되어 있지 않습니다. 샘플 드라이버가 있는 경우 다음을 추가하려고 합니다.드라이버 .inf 파일 및 관련된 모든 지원 파일(.cab, .sys 등)을 복사합니다
C:\Workspace\DCHUDrivers.스크립트를 실행하여 OEMDriversFM.xml을 자동으로 업데이트합니다.
UpdateWSKDriversFM
드라이버를 선택 사항으로 표시하는 방법 및 새 앱 FM을 생성하는 방법을 포함하여 드라이버 추가에 대한 자세한 내용은 드라이버 기능 매니페스트를 참조하세요.
이미지에 앱 추가
작업 영역을 만들 때 Windows System Kit에서
OEMAppsFM.xml라는 파일을 만들었습니다. 이 파일은 이미지에 특정 앱을 추가하는 데 필요한 항목을 정의합니다. 샘플 파일은 계산기 앱을 이미지에 선택적 기능으로 추가하도록 구성됩니다. 이미지 구성 파일에는 이미 계산기 앱과 해당 종속성이 포함되어 있습니다. 추가 앱을 추가하는 방법은 다음과 같습니다..appx 번들, 해당 라이선스 파일 및 모든 종속성을
%WSKWorkspaceRoot%\Apps폴더에 복사합니다.빌드 환경에서 다음을 실행합니다.
UpdateWSKAppsFMApps폴더에 있는 앱을 포함하는 업데이트된 OEMAppsFM.xml 파일이 있습니다.UpdateWSKAppsFM를 실행할 때 추가된 애플리케이션이 선택 사항으로 표시되지 않습니다. 선택 사항이 되도록 하려면 XML 파일을 편집하고 선택적으로 원하는 앱에 대해Optional = True를 설정합니다.선택 사항으로 설정되지 않은 앱은 이미지에 포함됩니다(FM 파일이 이미지 구성 파일에 포함되어 있는 한). 앱을 선택 사항으로 설정하고 이미지 구성 파일에 추가하려는 경우 해당 ID를
AppXOptionalPackages섹션에 추가해야 합니다. 계산기 앱을 추가하는 방법은 다음과 같습니다(작업 영역을 빌드할 때 선택 사항으로 설정되었으므로).OEMAppsFM.xml의 항목을 확인합니다.<PackageFile Optional="true" ID="Microsoft.WindowsCalculator_8wekyb3d8bbwe" LicenseFile="Microsoft.WindowsCalculator_8wekyb3d8bbwe.xml" Name="Microsoft.WindowsCalculator_8wekyb3d8bbwe.appxbundle" Path="$(mspackageroot)\Appx\Calculator"/>ID(Microsoft.WindowsCalculator_8wekyb3d8bbwe)를 참고하여 앱을 추가하는 데 사용합니다.ID를 복사하여 이미지 구성 파일에 붙여넣습니다. 다음과 같이 표시됩니다.<AppXOptionalPackages> <!-- Add optional APPX packages here. --> <AppXID>Microsoft.WindowsCalculator_8wekyb3d8bbwe</AppXID> </AppXOptionalPackages>이미지 구성 파일을 저장입니다.
이미지에서 더 많은 앱을 사용할 수 있도록 하려면 앱 기능 매니페스트를 참조하세요.
이미지 구성 파일에 기능 매니페스트 포함
작업 영역을 만들 때 Windows System Kit는 자동으로
OEMAppsFM.xml및OEMDriversFM.xml를 포함되는 이미지 구성 파일을 만들었습니다. 추가 기능 매니페스트를 만드는 경우 이미지 구성 파일의AdditionalFMs요소 아래에 추가해야 합니다. 이렇게 하면 기능 매니페스트에 정의된 기능을 이미지에 추가할 수 있습니다. 이미지 구성 파일에 있는 모든 기능은 기능 매니페스트에 정의됩니다. 이미지 구성 파일에 기능 매니페스트를 추가하면 해당 기능 매니페스트에 정의된 모든 기능을 이미지에 추가할 수 있습니다.XML 편집기에서 이미지 구성 파일을 열고
OEMAppsFM.xml및OEMDriversFM.xml가 나열되어 있는지 확인합니다. 이러한 FM에 포함된 앱 및 드라이버는optional로 지정되지 않는 한 이미지에 자동으로 포함됩니다. 기능 매니페스트에서 기능을 선택 사항으로 표시하는 방법에 대해 자세히 알아볼 수 있습니다.이미지 구성 파일을 엽니다. 파일에 나열된 다음 FM이 표시됩니다. 앱 및 드라이버에 대한 기능 매니페스트가 나열되지 않으면 다음과 같이 표시되도록 추가합니다.
<AdditionalFMs> <!-- You MUST include GenericDeviceFM.xml and FOSNonProductionFM.xml! --> <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\GenericDeviceFM.xml</AdditionalFM> <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\FOSNonProductionFM.xml</AdditionalFM> <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\HardwareValidationFM.xml</AdditionalFM> <!-- Add OEM FMs here. --> <AdditionalFM>%WSKWorkspaceRoot%\FMFiles\OEMAppsFM.xml</AdditionalFM> <AdditionalFM>%WSKWorkspaceRoot%\FMFiles\OEMDriversFM.xml</AdditionalFM> </AdditionalFMs>이미지 만들기
다음 명령을 실행하여 이미지를 빌드합니다. 작업 영역을 설정할 때 이미지를 VM으로 설정합니다. 그러면 Workspace.Output이라는 폴더에 VM이 빌드됩니다.
BuildWSKImage %WSKWorkspaceRoot%\FactoryOS_Development_AMD64_UEFI_SpacesGPT_VM.xml참고
여기서 참조하는 xml 파일은 작업 영역을 빌드할 때 선택한 옵션에 따라 다를 수 있습니다. 이 명령을 실행할 때 오류가 발생하면 파일 이름이 올바른지 확인합니다.
중요
동일한 이름의 .FFU 이미지 또는 가상 하드 디스크가 이미 포함된 이미지를 대상 폴더에 생성하려고 하면 다음 오류로 인해 이미지 생성이 실패합니다.
imageapp : ERROR : ThreadId18164 OutputFile C:\FactoryOS.Output\FactoryOS_Development_AMD64_UEFI_SpacesGPT_Hardware.ffu already exists.이미지를 생성하기 전에 동일한 이름으로 생성된 이미지가 이미 출력 폴더에 포함되어 있지 않은지 확인합니다.
사용자가 만든 가상 하드 드라이브를 사용하는 Virtual Machine을 만듭니다. 부팅되면 장치 포털, SSH 또는 TShell을 사용하여 디바이스에 연결할 수 있습니다.