kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

autounattend.xml.in (8804B)


      1 <?xml version="1.0" encoding="utf-8"?>
      2 <!--
      3   kit unattended install answer file for Windows 11 ARM64 under QEMU.
      4   Generated into a seed ISO by scripts/windows_vm.sh; the AT-sign placeholders
      5   are substituted at seed-build time. Targets a single ARM64 VM that runs aarch64-windows
      6   binaries natively and x86_64-windows binaries via the in-box x64 emulator.
      7 
      8   Key choices:
      9     - System disk is NVMe (in-box stornvme driver), so Setup sees the disk with
     10       no "load driver" step.
     11     - TPM 2.0 / Secure Boot / RAM / CPU checks are bypassed via LabConfig so the
     12       VM needs no swtpm and no Secure Boot.
     13     - A local admin account + AutoLogon skips the OOBE Microsoft-account screen,
     14       so first boot needs no network.
     15     - FirstLogonCommands hands off to \kit\bootstrap.ps1 on the seed media, which
     16       installs the virtio NetKVM driver and OpenSSH server (both bundled, offline).
     17 -->
     18 <unattend xmlns="urn:schemas-microsoft-com:unattend">
     19   <settings pass="windowsPE">
     20     <component name="Microsoft-Windows-International-Core-WinPE"
     21                processorArchitecture="arm64"
     22                publicKeyToken="31bf3856ad364e35" language="neutral"
     23                versionScope="nonSxS"
     24                xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
     25       <SetupUILanguage>
     26         <UILanguage>en-US</UILanguage>
     27       </SetupUILanguage>
     28       <InputLocale>0409:00000409</InputLocale>
     29       <SystemLocale>en-US</SystemLocale>
     30       <UILanguage>en-US</UILanguage>
     31       <UserLocale>en-US</UserLocale>
     32     </component>
     33     <component name="Microsoft-Windows-Setup"
     34                processorArchitecture="arm64"
     35                publicKeyToken="31bf3856ad364e35" language="neutral"
     36                versionScope="nonSxS"
     37                xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
     38       <!-- Bypass the Windows 11 hardware gate. These run in WinPE before the
     39            compatibility check, so no TPM / Secure Boot device is required. -->
     40       <RunSynchronous>
     41         <RunSynchronousCommand wcm:action="add">
     42           <Order>1</Order>
     43           <Path>reg add HKLM\System\Setup\LabConfig /v BypassTPMCheck /t REG_DWORD /d 1 /f</Path>
     44         </RunSynchronousCommand>
     45         <RunSynchronousCommand wcm:action="add">
     46           <Order>2</Order>
     47           <Path>reg add HKLM\System\Setup\LabConfig /v BypassSecureBootCheck /t REG_DWORD /d 1 /f</Path>
     48         </RunSynchronousCommand>
     49         <RunSynchronousCommand wcm:action="add">
     50           <Order>3</Order>
     51           <Path>reg add HKLM\System\Setup\LabConfig /v BypassRAMCheck /t REG_DWORD /d 1 /f</Path>
     52         </RunSynchronousCommand>
     53         <RunSynchronousCommand wcm:action="add">
     54           <Order>4</Order>
     55           <Path>reg add HKLM\System\Setup\LabConfig /v BypassStorageCheck /t REG_DWORD /d 1 /f</Path>
     56         </RunSynchronousCommand>
     57         <RunSynchronousCommand wcm:action="add">
     58           <Order>5</Order>
     59           <Path>reg add HKLM\System\Setup\LabConfig /v BypassCPUCheck /t REG_DWORD /d 1 /f</Path>
     60         </RunSynchronousCommand>
     61       </RunSynchronous>
     62       <DiskConfiguration>
     63         <Disk wcm:action="add">
     64           <DiskID>0</DiskID>
     65           <WillWipeDisk>true</WillWipeDisk>
     66           <CreatePartitions>
     67             <CreatePartition wcm:action="add">
     68               <Order>1</Order>
     69               <Type>EFI</Type>
     70               <Size>260</Size>
     71             </CreatePartition>
     72             <CreatePartition wcm:action="add">
     73               <Order>2</Order>
     74               <Type>MSR</Type>
     75               <Size>128</Size>
     76             </CreatePartition>
     77             <CreatePartition wcm:action="add">
     78               <Order>3</Order>
     79               <Type>Primary</Type>
     80               <Extend>true</Extend>
     81             </CreatePartition>
     82           </CreatePartitions>
     83           <ModifyPartitions>
     84             <ModifyPartition wcm:action="add">
     85               <Order>1</Order>
     86               <PartitionID>1</PartitionID>
     87               <Format>FAT32</Format>
     88               <Label>System</Label>
     89             </ModifyPartition>
     90             <ModifyPartition wcm:action="add">
     91               <Order>2</Order>
     92               <PartitionID>2</PartitionID>
     93             </ModifyPartition>
     94             <ModifyPartition wcm:action="add">
     95               <Order>3</Order>
     96               <PartitionID>3</PartitionID>
     97               <Format>NTFS</Format>
     98               <Label>Windows</Label>
     99               <Letter>C</Letter>
    100             </ModifyPartition>
    101           </ModifyPartitions>
    102         </Disk>
    103         <WillShowUI>OnError</WillShowUI>
    104       </DiskConfiguration>
    105       <ImageInstall>
    106         <OSImage>
    107           <InstallTo>
    108             <DiskID>0</DiskID>
    109             <PartitionID>3</PartitionID>
    110           </InstallTo>
    111           <InstallFrom>
    112             <MetaData wcm:action="add">
    113               <Key>/IMAGE/NAME</Key>
    114               <Value>@WIN_EDITION@</Value>
    115             </MetaData>
    116           </InstallFrom>
    117           <WillShowUI>OnError</WillShowUI>
    118         </OSImage>
    119       </ImageInstall>
    120       <UserData>
    121         <ProductKey>
    122           <Key>@PRODUCT_KEY@</Key>
    123           <WillShowUI>OnError</WillShowUI>
    124         </ProductKey>
    125         <AcceptEula>true</AcceptEula>
    126         <FullName>kit</FullName>
    127         <Organization>kit</Organization>
    128       </UserData>
    129     </component>
    130   </settings>
    131 
    132   <settings pass="specialize">
    133     <component name="Microsoft-Windows-Shell-Setup"
    134                processorArchitecture="arm64"
    135                publicKeyToken="31bf3856ad364e35" language="neutral"
    136                versionScope="nonSxS"
    137                xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
    138       <ComputerName>KITWIN</ComputerName>
    139       <TimeZone>UTC</TimeZone>
    140     </component>
    141     <component name="Microsoft-Windows-Deployment"
    142                processorArchitecture="arm64"
    143                publicKeyToken="31bf3856ad364e35" language="neutral"
    144                versionScope="nonSxS"
    145                xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
    146       <!-- Belt-and-suspenders: also disable the OOBE "network required" gate. -->
    147       <RunSynchronous>
    148         <RunSynchronousCommand wcm:action="add">
    149           <Order>1</Order>
    150           <Path>reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE /v BypassNRO /t REG_DWORD /d 1 /f</Path>
    151         </RunSynchronousCommand>
    152       </RunSynchronous>
    153     </component>
    154   </settings>
    155 
    156   <settings pass="oobeSystem">
    157     <component name="Microsoft-Windows-International-Core"
    158                processorArchitecture="arm64"
    159                publicKeyToken="31bf3856ad364e35" language="neutral"
    160                versionScope="nonSxS"
    161                xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
    162       <InputLocale>0409:00000409</InputLocale>
    163       <SystemLocale>en-US</SystemLocale>
    164       <UILanguage>en-US</UILanguage>
    165       <UserLocale>en-US</UserLocale>
    166     </component>
    167     <component name="Microsoft-Windows-Shell-Setup"
    168                processorArchitecture="arm64"
    169                publicKeyToken="31bf3856ad364e35" language="neutral"
    170                versionScope="nonSxS"
    171                xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
    172       <OOBE>
    173         <HideEULAPage>true</HideEULAPage>
    174         <HideLocalAccountScreen>true</HideLocalAccountScreen>
    175         <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
    176         <HideOnlineAccountScreens>true</HideOnlineAccountScreens>
    177         <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
    178         <ProtectYourPC>3</ProtectYourPC>
    179         <SkipMachineOOBE>true</SkipMachineOOBE>
    180         <SkipUserOOBE>true</SkipUserOOBE>
    181       </OOBE>
    182       <UserAccounts>
    183         <LocalAccounts>
    184           <LocalAccount wcm:action="add">
    185             <Name>@KIT_USER@</Name>
    186             <DisplayName>@KIT_USER@</DisplayName>
    187             <Group>Administrators</Group>
    188             <Password>
    189               <Value>@KIT_PASS@</Value>
    190               <PlainText>true</PlainText>
    191             </Password>
    192           </LocalAccount>
    193         </LocalAccounts>
    194       </UserAccounts>
    195       <AutoLogon>
    196         <Enabled>true</Enabled>
    197         <Username>@KIT_USER@</Username>
    198         <LogonCount>5</LogonCount>
    199         <Password>
    200           <Value>@KIT_PASS@</Value>
    201           <PlainText>true</PlainText>
    202         </Password>
    203       </AutoLogon>
    204       <FirstLogonCommands>
    205         <SynchronousCommand wcm:action="add">
    206           <Order>1</Order>
    207           <CommandLine>cmd /c "for %d in (D E F G H I J K L M N O) do @if exist %d:\kit\bootstrap.ps1 powershell -NoProfile -ExecutionPolicy Bypass -File %d:\kit\bootstrap.ps1"</CommandLine>
    208           <Description>kit guest bootstrap (virtio net driver + OpenSSH)</Description>
    209           <RequiresUserInput>false</RequiresUserInput>
    210         </SynchronousCommand>
    211       </FirstLogonCommands>
    212     </component>
    213   </settings>
    214 </unattend>