팩터리 OS 이미지 만들기
이 랩에서는 WSK(Windows System Kit)를 사용하여 팩터리 OS 이미지를 디자인하고 만드는 방법에 대해 설명합니다.
다음에 대해 설명합니다.
- 탑재된 WSK ISO에서 작업
- 드라이버 추가
- 앱 추가
- 테스트 콘텐츠 폴더 추가
- 디바이스 레이아웃 사용자 지정
- 설정 사용자 지정
- 이미지 생성
1. 필요한 항목
이 랩을 완료하는 데 필요한 항목은 다음과 같습니다.
- 기술자 PC
- Windows System Kit
- FFU를 만드는 경우:
- 이미지를 빌드하는 엔지니어링 디바이스
- 엔지니어링 디바이스용 드라이버. 드라이버가 Windows 핵심 규격인지 확인합니다.
- VHDX 이미지를 만드는 경우:
- Hyper-V가 설치된 PC. 이는 기술자 PC와 동일한 PC일 수 있습니다.
- 테스트 데이터 참고 자료가 포함된 폴더
- (선택 사항) 이미지에 포함할 앱
- (선택 사항) 이미지에 포함할 드라이버
2. WSK ISO 탑재 및 WSK 환경 시작
팩터리 OS 이미지를 만들려면 이미지를 만드는 데 필요한 패키지와 도구가 포함된 WSK가 필요합니다. WSK는 WSK ISO의 콘텐츠를 기술자 PC에 복사하거나 ISO를 네트워크 공유에서 또는 로컬로 PC에 탑재하여 사용할 수 있습니다. 이 랩에서는 로컬로 저장된 WSK ISO를 탑재하고 해당 위치에서 작업합니다.
WSK 탑재
C:\WSK라는 디렉터리를 기술자 PC에 만들고, WSK ISO를 랩 참고 자료 USB 드라이브에서 이 PC에 복사합니다.- 파일 탐색기에서 WSK ISO로 이동합니다.
- 마우스 오른쪽 단추로 ISO를 클릭하고, 탑재를 클릭합니다.
Windows System Kit 환경 열기
다음과 같이 Windows System Kit 환경을 엽니다.
- 탑재된 WSK ISO에 할당된 드라이브의 루트로 이동합니다.
- 마우스 오른쪽 단추로
SetImagGenEnv.cmd를 클릭하고 관리자 권한으로 실행합니다.
표시되는 내용은 다음과 같습니다.
**********************************************************************
** Windows System Kit image generation environment
** Version xxx.xxxxx.1001
**********************************************************************
3. 팩터리 OS 작업 영역 만들기
작업 영역은 팩터리 OS 이미지를 만드는 데 필요한 앱, 드라이버 및 기타 자산을 구성하는 데 도움이 되는 작업 디렉터리입니다.
PrepWSKWorkspace C:\FactoryWorkSpace -Product FactoryOS
참고
가상 머신을 만들려면 -vm 매개 변수를 위의 명령에 추가합니다.
PrepWSKWorkspace C:\FactoryWorkSpace -Product FactoryOS -VM
사용 가능한 모든 옵션은 PrepWSKWorkspace 구문을 참조하세요.
WSK 환경에 표시되는 내용은 다음과 같습니다.
Overwrite == Prompt. PrepOEMWorkspace will prompt for permission to overwrite an existing workspace.
Prepping C:\FactoryWorkSpace as a WSK workspace for building a FactoryOS AMD64 UEFI Hardware image....
OEMInput file C:\FactoryWorkSpace\FactoryOS_Development_AMD64_UEFI_SpacesGPT_Hardware.xml created.
Success!
위의 출력에 따라 이제 FactoryOS_Development_AMD64_UEFI_SpacesGPT_Hardware.xml이라는 OEMInput.xml 파일이 포함된 작업 영역이 C:\FactoryWorkspace에 있습니다. 이 OEMInput.xml 파일은 랩 전체에서 수정됩니다. 또한 OEMInput.xml의 경로와 파일 이름은 WSK 환경에서 echo %OEMInputFileName%을 실행하여 표시할 수 있습니다.
작업 영역을 만드는 동안 WSK에서 작업 영역에 매핑되는 %WSKWorkspaceRoot% 환경 변수가 구성되었습니다. Windows System Kit 환경을 닫았다가 다시 열면 디렉터리를 작업 영역 루트로 변경하고 SetWSKWorkspaceRoot를 실행하여 WSKWorkspaceRoot를 다시 설정해야 합니다.
4. 기능 매니페스트 정보
기능 매니페스트는 이미지에 포함하려는 앱, 드라이버 및 패키지의 파일 위치를 정의합니다. 앱과 드라이버를 추가하면 선택 사항으로 표시하는 경우를 제외하고는 기본적으로 모든 이미지에 추가됩니다.
다음 섹션에서는 기능 매니페스트를 사용하여 이미지에 포함할 앱, 드라이버 및 설정을 정의합니다.
5. 드라이버 추가
물리적 디바이스에 대한 FFU 이미지를 만드는 경우 Windows System Kit에는 호환되는 드라이버를 팩터리 OS 이미지에 더 쉽게 추가할 수 있는 스크립트가 포함되어 있습니다. 다음 스크립트에서는 작업 영역에 추가하는 드라이버를 기반으로 하는 기능 매니페스트 파일을 자동으로 만들거나 업데이트합니다.
CreateWSKDriversFM스크립트는 드라이버 기능 매니페스트를 만들고%WSKWorkspaceRoot%\DCHUDrivers폴더의 모든 드라이버를 드라이버 기능 매니페스트에 추가합니다.UpdateWSKDriversFM스크립트는%WSKWorkspaceRoot%\DCHUDrivers폴더의 모든 드라이버를 기존 드라이버 기능 매니페스트에 추가합니다. 작업 영역에는 빈 DriversFM이 포함되어 있으므로UpdateWSKDriversFM을 사용하여 드라이버를 기존 드라이버 기능 매니페스트에 추가합니다. 나중에 드라이버를 더 추가하려는 경우 드라이버를 DCHUDrivers 폴더에 추가하여 이 스크립트를 다시 실행할 수 있습니다.
드라이버를 작업 영역에 복사합니다.
xcopy /s E:\Drivers\ %WSKWorkspaceRoot%\DCHUDrivers /chrkyf여기서 E:\Drivers\는 팩터리 OS 규격 드라이버가 있는 위치입니다.
드라이버를 작업 영역의 드라이버 기능 매니페스트에 추가합니다. 작업 영역을 만들 때 빈 드라이버 기능 매니페스트인
%WSKWorkspaceRoot\FMFiles\OEMDriversFM.xml이 만들어져 OEMInput.xml에 추가되었습니다. WSK에는%WSKWorkspaceRoot%\DCHUDrivers폴더의 모든 드라이버를 드라이버 기능 매니페스트에 추가하는 스크립트가 포함되어 있습니다. 드라이버가 OEMDriversFM 기능 매니페스트에 추가되면 이미지에 포함됩니다.스크립트를 실행하여 작업 영역의 DCHU 드라이버 폴더에서 드라이버를 추가합니다.
UpdateWSKDriversFM출력:
Script will backup then append new Drivers to C:\FactoryWorkspace\FMFiles\OEMDriversFM.xml if it exists. Existing Drivers FM found. Backing up existing file to C:\Users\username\AppData\Local\Temp\WSKScriptBackups\OEMDriversFM.xml... Searching C:\FactoryWorkspace\DCHUDrivers for Drivers to add to C:\FactoryWorkspace\FMFiles\OEMDriversFM.xml... Adding C:\FactoryWorkspace\DCHUDrivers\devices.driver.display.inf to FM... … Adding C:\FactoryWorkspace\DCHUDrivers\audio.driver.inf to FM... FM file successfully created at C:\FactoryWorkspace\FMFiles\OEMDriversFM.xml. All newly found Drivers under C:\FactoryWorkspace\DCHUDrivers are now unconditionally in any image that includes C:\FactoryWorkspace\FMFiles\OEMDriversFM.xml. Remember to make apps or drivers you do not want in every image "Optional" (apps) or in a FM Feature (drivers). The previous version of C:\FactoryWorkspace\FMFiles\OEMDriversFM.xml is backed up at C:\Users\username\AppData\Local\Temp\WSKScriptBackups\OEMDriversFM.xml.텍스트 편집기에서 OEMInput.xml 파일을 열고, OEMDriversFM.xml이
<AdditionalFMs>요소에 포함되어 있는지 확인합니다. 이렇게 하면 OEMDriversFM.xml에 정의된 드라이버가 이미지에 포함됩니다. OEMInput.xml 파일의 이름이 기억할 수 없는 경우echo %WSKOEMInputFileName%을 실행하여 OEMInput.xml의 경로를 확인할 수 있습니다.<AdditionalFMs> <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\WindowsCoreProductionFM.xml</AdditionalFM> <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\FOSNonProductionFM.xml</AdditionalFM> <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\WindowsCoreNonProductionFM.xml</AdditionalFM> <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\GenericDeviceFM.xml</AdditionalFM> <!-- Add OEM FMs here. --> <AdditionalFM>%WSKWorkspaceRoot%\FMFiles\OEMAppsFM.xml</AdditionalFM> <AdditionalFM>%WSKWorkspaceRoot%\FMFiles\OEMDriversFM.xml</AdditionalFM> </AdditionalFMs>
6. 앱 추가
Windows System Kit에는 호환되는 앱을 팩터리 OS 이미지에 더 쉽게 추가할 수 있는 스크립트가 포함되어 있습니다. 이러한 스크립트는 작업 영역에 추가하는 앱에 따라 기능 매니페스트 파일을 자동으로 만들거나 업데이트합니다.
CreateWSKAppsFM스크립트는 앱 매니페스트를 만들고,%WSKWorkspaceRoot%\Apps폴더의 모든 앱을 앱 기능 매니페스트에 추가합니다.UpdateWSKAppsFM스크립트는%WSKWorkspaceRoot%\Apps폴더의 모든 앱을 기존 앱 기능 매니페스트에 추가합니다. 작업 영역에는 빈 AppsFM이 포함되어 있으므로UpdateWSKAppsFM을 사용하여 OEMInput.xml에 기본적으로 포함된 기존 앱 기능 매니페스트에 새 앱을 추가합니다.
이미지에 추가하려는 앱이 있는 경우 다음을 수행합니다.
앱을 작업 영역에 복사합니다.
Xcopy /s E:\UWP %WSKWorkspaceRoot%\Apps /chrkyf여기서 E:\UWP는 UWP 앱을 복사하는 위치입니다.
Apps폴더의 앱을OEMAppsFM.xml기능 매니페스트에 추가합니다. 앱이 OEMAppsFM 기능 매니페스트에 추가되면 이미지에 포함됩니다.UpdateWSKAppsFM몇 가지 샘플 출력은 다음과 같습니다.
Script will backup then append new Apps to C:\FactoryWorkSpace\FMFiles\OEMAppsFM.xml if it exists. Existing Apps FM found. Backing up existing file to C:\Users\administrator\AppData\Local\Temp\WSKScriptBackups\OEMAppsFM_3.xml... Searching C:\FactoryWorkSpace\Apps for Apps to add to C:\FactoryWorkSpace\FMFiles\OEMAppsFM.xml... Adding C:\FactoryWorkSpace\Apps\Dependencies\arm\Microsoft.NET.Native.Framework.1.7.appx to FM... Adding C:\FactoryWorkSpace\Apps\Dependencies\arm\Microsoft.NET.Native.Runtime.1.7.appx to FM... Adding C:\FactoryWorkSpace\Apps\Dependencies\arm\Microsoft.VCLibs.Arm.14.00.appx to FM... Adding C:\FactoryWorkSpace\Apps\Dependencies\x64\Microsoft.NET.Native.Framework.1.7.appx to FM... Adding C:\FactoryWorkSpace\Apps\Dependencies\x64\Microsoft.NET.Native.Runtime.1.7.appx to FM... Adding C:\FactoryWorkSpace\Apps\Dependencies\x64\Microsoft.VCLibs.x64.14.00.appx to FM... Adding C:\FactoryWorkSpace\Apps\Dependencies\x86\Microsoft.NET.Native.Framework.1.7.appx to FM... Adding C:\FactoryWorkSpace\Apps\Dependencies\x86\Microsoft.NET.Native.Runtime.1.7.appx to FM... Adding C:\FactoryWorkSpace\Apps\Dependencies\x86\Microsoft.VCLibs.x86.14.00.appx to FM... Adding C:\FactoryWorkSpace\Apps\HelloWorld_1.0.0.0_x64.appx to FM... FM file successfully created at C:\FactoryWorkSpace\FMFiles\OEMAppsFM.xml. All newly found Apps under C:\FactoryWorkSpace\Apps are now unconditionally in any image that includes C:\FactoryWorkSpace\FMFiles\OEMAppsFM.xml. Remember to make apps or drivers you do not want in every image "Optional" (apps) or in a FM Feature (drivers). The previous version of C:\FactoryWorkSpace\FMFiles\OEMAppsFM.xml is backed up at C:\Users\administrator\AppData\Local\Temp\WSKScriptBackups\OEMAppsFM_3.xml.OEMInput.xml 파일을 열고, OEMAppsFM.xml이
<AdditionalFMs>요소에 포함되어 있는지 확인합니다. 이렇게 하면 OEMAppsFM.xml에 정의된 앱이 이미지에 포함됩니다.다음과 같은 결과가 표시됩니다.
<AdditionalFMs> <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\WindowsCoreProductionFM.xml</AdditionalFM> <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\FOSNonProductionFM.xml</AdditionalFM> <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\WindowsCoreNonProductionFM.xml</AdditionalFM> <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\GenericDeviceFM.xml</AdditionalFM> <!-- Add OEM FMs here. --> <AdditionalFM>%WSKWorkspaceRoot%\FMFiles\OEMAppsFM.xml</AdditionalFM> <AdditionalFM>%WSKWorkspaceRoot%\FMFiles\OEMDriversFM.xml</AdditionalFM> </AdditionalFMs>참고
작업 영역을 만들 때
-VM옵션을 추가한 경우 OEMInput.xml의 이름은FactoryOS_Development_AMD64_UEFI_SpacesGPT_VM.xml이 됩니다.
7. 테스트 콘텐츠 폴더 추가
OEMInput.xml 파일의 <TestContent> 요소를 사용하면 팩터리 OS 디바이스에서 테스트를 실행하는 데 사용할 스크립트, 실행 파일 및 기타 자산과 같은 테스트 콘텐츠가 포함된 폴더를 지정할 수 있습니다.
이미지를 빌드할 때 테스트 콘텐츠 폴더를 추가하면 팩터리 OS 디바이스에서 테스트 참고 자료를 사용할 수 있고 파일을 기술자 PC에서 테스트 디바이스로 수동으로 복사하는 데 걸리는 시간을 줄일 수 있습니다.
테스트 콘텐츠 폴더를 기술자 PC의 팩터리 OS 작업 영역에 만듭니다.
md %WSKWorkspaceRoot%\TestContent테스트 참고 자료를 TestContent 폴더에 복사합니다. 이미지에는 하나의 테스트 콘텐츠 폴더만 포함될 수 있지만, 해당 폴더에는 여러 하위 폴더가 포함될 수 있습니다. 모든 테스트 참고 자료가 단일 테스트 콘텐츠 폴더에 있는지 확인합니다.
xcopy /s E:\TestContent %WSKWorkspaceRoot$\TestContent /chrkyf여기서 E:\TestContent는 테스트 콘텐츠가 포함된 폴더입니다.
테스트 콘텐츠 폴더를 OEMInput.xml 파일에 추가합니다. WSK에는 이 프로세스를 자동화하는 스크립트가 포함되어 있습니다.
AddTestContent %WSKWorkspaceRoot%\TestContent다음과 같이 폴더가 OEMInput.xml에 성공적으로 추가되었다고 표시됩니다.
Successfully saved the TestContent path in the OEMInput file.OEMInput.xml 파일을 열고,
<TestContent>요소가 포함되어 있는지 확인하고, 요소에 테스트 콘텐츠 폴더의 경로가 표시됩니다.참고
테스트 콘텐츠 폴더의 전체 경로와 파일 이름은 WSK 환경에서
echo %WSKOEMInputFileName을 실행하여 가져올 수 있습니다.<TestContent>요소는 다음과 같이 표시됩니다.<TestContent>C:\FactoryWorkspace\TestContent</TestContent>
8. DeviceLayout 및 디바이스 대상 지정
참고
VM을 만드는 경우 이 섹션을 건너뛰고 설정을 사용자 지정하는 방법을 설명하는 다음 섹션으로 이동할 수 있습니다.
DeviceLayout 사용자 지정
디바이스 레이아웃은 팩터리 OS 디바이스의 디스크 구성에 대한 청사진입니다. 이는 Microsoft, OEM 및 SV 콘텐츠가 모두 작동하여 팩터리 OS 이미지에 대한 디스크 레이아웃을 만드는 방법을 설명합니다. 디바이스 레이아웃은 XML 파일과 Windows System Kit를 사용하여 구성되어 디바이스에 특정한 디바이스 레이아웃 패키지를 생성합니다.
텍스트 편집기에서
%WSKWorkspaceRoot%\OEMCustomization\DeviceLayout\DeviceLayoutOEM.xml파일을 엽니다. 이 파일을 사용하면 사용하는 디스크의 특성을 구성할 수 있습니다.<ID> {5a585bae-900b-41b5-b736-a4cecffc34b4}를 사용하여<Store>에 대한<DevicePath>를 추가합니다. 이는 OS를 플래시할 위치입니다. 이 OS 디스크에는 Microsoft에서 구성한 파티션이 있습니다.- 샘플 HDD
<DevicePath>-<DevicePath>PciRoot(0x0)/Pci(0x1D,0x0)/Pci(0x0,0x0)/NVMe(0x1,00-00-00-00-00-00-00-00)</DevicePath> - 샘플 UFS
<DevicePath>-<DevicePath>PciRoot(0x0)/Pci(0x12,0x5)/UFS(0x0,0x0)</DevicePath>
- 샘플 HDD
- HDD의 경우 디바이스 경로의 모든 GUID를 업데이트하도록 와일드카드(
?)를 사용합니다. 예:<DevicePath>PciRoot(0x0)/Pci(0x1D,0x0)/Pci(0x0,0x0)/NVMe(0x1,??-??-??-??-??-??-??-??)</DevicePath> <SectorSize>가 디바이스와 일치하는지 확인합니다.
샘플 DeviceLayoutOEM은 다음과 같습니다.
<OEMDeviceLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/embedded/2004/10/ImageUpdate/v2"> <Stores> <Store> <Id>{5a585bae-900b-41b5-b736-a4cecffc34b4}</Id> <StoreType>Default</StoreType> <DevicePath>PciRoot(0x0)/Pci(0x1D,0x0)/Pci(0x0,0x0)/NVMe(0x1,??-??-??-??-??-??-??-??)</DevicePath> </Store> </Stores> <SectorSize>512</SectorSize> <MergeVersionTag>1</MergeVersionTag> </OEMDeviceLayout>DeviceLayoutOEM.xml를 저장하고 닫습니다.만든 레이아웃 파일을 사용하도록 OEMInput을 업데이트합니다.
- 텍스트 편집기에서 작업 영역 루트의 OEMinput.xml 파일을 엽니다.
<DeviceLayoutType>요소를 GPT_SPACES_SPLIT로 업데이트합니다.
<DeviceLayoutType>GPT_SPACES_SPLIT</DeviceLayoutType>- OEMInput.xml 파일을 저장합니다. 다음 섹션에서 더 많은 항목을 변경하므로 파일을 열어 둘 수 있습니다.
디바이스 대상 지정 사용자 지정
현재 열려 있지 않으면 텍스트 편집기에서 OEMInput.xml 파일을 엽니다. 이 파일은
%WSKWorkspaceRoot%\FactoryOS_Development_AMD64_UEFI_SpacesGPT_Hardware.xml에서 찾을 수 있습니다.참고
OEMInput.xml 파일의 경로와 파일 이름은 WSK 환경에서
echo %WSKOEMInputFileName을 실행하여 확인할 수 있습니다.<DevicePlatformIDs>요소를 구성합니다. 예를 들면 다음과 같습니다.<DevicePlatformIDs> <DevicePlatformID>Contoso.ContosoLaptop.*.1</DevicePlatformID> <DevicePlatformID>*.*.*.*</DevicePlatformID> </DevicePlatformIDs>OEMInput.xml 파일을 저장하고 닫습니다.
9. 설정 사용자 지정
팩터리 OS 이미지를 디자인할 때 설정 사용자 지정 프레임워크를 사용하여 디바이스 설정이 올바르게 구성되었는지 확인할 수 있습니다.
설정은 OEMInput 파일에 추가하는 사용자 지정 패키지를 만드는 데 사용되는 XML 파일로 구성됩니다. 이는 제품별 설정이므로 빌드하는 디바이스 제품에 적용할 수 있는 설정 사용자 지정 파일을 사용해야 합니다.
빈 설정 사용자 지정 XML을 만듭니다.
CreateWSKCustomizationsXML출력:
Creating output folder: C:\FactoryWorkSpace\OEMCustomization\CustomizationXML Created output folder: C:\FactoryWorkSpace\OEMCustomization\CustomizationXML … wcosimageprep INFO ThreadId1340 Generating WCOS customization file(s)... wcosimageprep INFO ThreadId1340 Writing customization files to disk... wcosimageprep INFO ThreadId1340 CustomizationXML generation parameters: Advanced=False, Categorize=False wcosimageprep INFO ThreadId1340 C:\FactoryWorkSpace\OEMCustomization\CustomizationXML\CustomizationXML.xml wcosimageprep INFO ThreadId1340 Time elapsed 00:00:00.4587755 CustomizationXML file(s) has been generated successfully at C:\FactoryWorkSpace\OEMCustomization\CustomizationXML.텍스트 편집기에서 설정 사용자 지정 XML을 엽니다.
notepad C:\FactoryWorkSpace\OEMCustomization\CustomizationXML\CustomizationXML.xml<Identity>특성을 입력합니다. 예를 들면 다음과 같습니다.<Identity OwnerName="OEMName" ReleaseType="Test" />랩의 이 부분에서는 다음을 설정합니다.
- FFU를 빌드하는 경우 디바이스 레이아웃의 경로
- 팩터리 OS 화면과 팩터리 오케스트레이터 내에 표시되는 버전 번호
CustomizationXML에서 사용자 지정하려는 설정에 대한
<Value>요소를 입력합니다. 다음 설정을 사용하면 사용자 지정 디바이스 레이아웃과 즐겨찾는 바 항목의 경로를 구성할 수 있습니다.사용자 지정하려는 설정에 대한
<Value>요소를 입력합니다. 이 랩에서는 다음과 같습니다.사용자 지정 이름 값 OEMVersion <Value>1.1.1.1</Value>SplitLayoutFile <Value>C:\FactoryWorkspace\OEMCustomization\DeviceLayout\DeviceLayoutOEM.xml</Value>참고
VM 이미지를 만드는 경우
SplitLayoutFile을 구성할 필요가 없습니다.예:
<Customization Name="SplitLayoutFile"> <ReadOnlyMetadata Description="OEM/SV-owned split layout file. (File must be named DeviceLayoutOEM.xml)" Type="FILE" DefaultValue="" SupportedExtensions="xml" /> <Value>C:\FactoryWorkspace\OEMCustomization\DeviceLayout\DeviceLayoutOEM.xml</Value> </Customization>팩터리 OS 제품에 사용할 수 있는 설정을 확인하려면 팩터리 OS에 사용 가능한 설정을 참조하세요.
CustomizationXML.xml를 저장하고 닫습니다.Windows System Kit에서 스크립트를 사용하여 OEM 사용자 지정 패키지를 생성하고 OEMInput.xml 파일에 추가합니다.
CreateWSKCustomizationsFM출력:
wcosimageprep INFO ThreadId21660 Validating arguments for external action. wcosimageprep INFO ThreadId21660 Assigning defaults for external action. wcosimageprep INFO ThreadId21660 Generating WCOS customization packages from C:\FactoryWorkspace\OEMCustomization\CustomizationXML … Customization Packages have been generated successfully at C:\FactoryWorkspace\OEMCustomization\Packages … OEMCustomizationsFM file has been generated successfully at C:\FactoryWorkspace\FMFiles\OEMCustomizationsFM.xml C:\FactoryWorkspace\FMFiles\OEMCustomizationsFM.xml has been added to the OEMInput file under the AdditionalFms element
10. 이미지 빌드
BuildWSKImage를 실행하여 OEMInput.xml 파일을 기반으로 하는 FFU를 만듭니다.
BuildWSKImage %WSKWorkspaceRoot%\FactoryOS_Development_AMD64_UEFI_SpacesGPT_Hardware.xml
또는 VM을 만드는 경우 다음과 같습니다.
BuildWSKImage %WSKWorkspaceRoot%\FactoryOS_Development_AMD64_UEFI_SpacesGPT_VM.xml
중요
동일한 이름의 .FFU 이미지 또는 가상 하드 디스크가 이미 포함된 이미지를 대상 폴더에 생성하려고 하면 다음 오류로 인해 이미지 생성이 실패합니다.
imageapp : ERROR : ThreadId18164 OutputFile C:\FactoryOS.Output\FactoryOS_Development_AMD64_UEFI_SpacesGPT_Hardware.ffu already exists.
이미지를 생성하기 전에 동일한 이름으로 생성된 이미지가 이미 출력 폴더에 포함되어 있지 않은지 확인합니다.
11. 이미지 플래시
사용자 지정 팩터리 OS 이미지가 빌드되어 사용할 준비가 되었습니다.
FFU를 만든 경우 WSK에서 사용할 수 있는 플래시 옵션 중 하나를 사용하여 이미지를 디바이스에 플래시할 수 있습니다.
VHDX를 만든 경우 Hyper-V를 사용하여 새 이미지를 부팅할 수 있습니다.
12. 선택 사항 이미지에 드라이버 추가
엔지니어링 디바이스에서 Windows System Kit에 포함된 ImageApp.exe를 사용하여 이미지를 다시 빌드하지 않고도 드라이버를 기존 FFU에 추가할 수 있습니다.
다음과 같이 드라이버를 FFU에 추가합니다.
ImageApp.exe C:\FactoryWorkspace.Output\FactoryOS_Development_AMD64_UEFI_SpacesGPT_Hardware.ffu /patch /drivers:E:\OfflineDriver\ /CPUType:amd64
여기서 E:\OfflineDriver\는 이미지에 추가하려는 샘플 드라이버(driver-test.inf)가 포함된 폴더입니다.
자세한 내용 및 기타 용도는 ImageApp /patch 사용을 참조하세요.