mirror of
				https://github.com/oSoWoSo/DistroHopper.git
				synced 2024-08-14 22:46:53 +00:00 
			
		
		
		
	Add unattended configuration for Windows 10 and 11
Automates some of the install/configuration steps for Windows 10 and 11, most notably essential drivers and disk formatting.
This commit is contained in:
		
							parent
							
								
									8106026fd0
								
							
						
					
					
						commit
						d191d0da44
					
				
					 3 changed files with 163 additions and 4 deletions
				
			
		|  | @ -60,6 +60,7 @@ See this (old) video where I explain some of my motivations for creating Quickem | |||
|   * [procps](https://gitlab.com/procps-ng/procps) | ||||
|   * [python3](https://www.python.org/) | ||||
|   * [macrecovery](https://github.com/acidanthera/OpenCorePkg/tree/master/Utilities/macrecovery) | ||||
|   * [mkisofs](http://cdrtools.sourceforge.net/private/cdrecord.html) | ||||
|   * [usbutils](https://github.com/gregkh/usbutils) | ||||
|   * [util-linux](https://github.com/karelzak/util-linux) | ||||
|   * [sed](https://www.gnu.org/software/sed/) | ||||
|  | @ -240,10 +241,6 @@ quickget windows 11 | |||
| quickemu --vm windows-11.conf | ||||
| ``` | ||||
| 
 | ||||
|   * During the Windows install you will be asked *"Where do you want to install Windows?"* | ||||
|     * Click **Load driver** and **OK** on the dialogue box that pops up. | ||||
|     * Select `VirtIO SCSI controller (E:\amd64\w10\viostor.inf)` from the list and click **Next**. | ||||
|     * The disk will now be available for partitioning and formatting. | ||||
|   * Complete the installation as you normally would. | ||||
|   * Post-install: | ||||
|     * Run the VirtIO installer (`virtio-win-gt-x64`) from the CD Drive (E:). | ||||
|  |  | |||
							
								
								
									
										6
									
								
								quickemu
									
										
									
									
									
								
							
							
						
						
									
										6
									
								
								quickemu
									
										
									
									
									
								
							|  | @ -666,6 +666,12 @@ function vm_boot() { | |||
|     args+=(-drive media=cdrom,index=1,file="${fixed_iso}") | ||||
|   fi | ||||
| 
 | ||||
|   # Attached the unattended configuration to Windows guests when booting from ISO | ||||
|   if [ -n "${iso}" ] && [ "${guest_os}" == "windows" ] && [ -e "${VMDIR}/unattended.iso" ]; then | ||||
|     # shellcheck disable=SC2054 | ||||
|     args+=(-drive media=cdrom,index=2,file="${VMDIR}/unattended.iso") | ||||
|   fi | ||||
| 
 | ||||
|   if [ "${guest_os}" == "macos" ]; then | ||||
|     # shellcheck disable=SC2054 | ||||
|     args+=(-device ahci,id=ahci | ||||
|  |  | |||
							
								
								
									
										156
									
								
								quickget
									
										
									
									
									
								
							
							
						
						
									
										156
									
								
								quickget
									
										
									
									
									
								
							|  | @ -81,6 +81,153 @@ function releases_windows() { | |||
|     11 | ||||
| } | ||||
| 
 | ||||
| function unattended_windows() { | ||||
|     cat << 'EOF' > "${1}" | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <unattend xmlns="urn:schemas-microsoft-com:unattend" | ||||
|   xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" | ||||
|   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | ||||
| 
 | ||||
|   <!-- | ||||
|        For documentation on components: | ||||
|        http://technet.microsoft.com/en-us/library/ff699038.aspx | ||||
|   --> | ||||
| 
 | ||||
|   <settings pass="generalize"> | ||||
|     <!-- | ||||
|          The PersistAllDeviceInstalls setting indicates whether all plug and | ||||
|          play devices on the destination computer remain installed during the | ||||
|          generalize configuration pass. | ||||
|     --> | ||||
|     <component name="Microsoft-Windows-PnPSysprep" | ||||
|       processorArchitecture="amd64" | ||||
|       publicKeyToken="31bf3856ad364e35" | ||||
|       language="neutral" | ||||
|       versionScope="nonSxS"> | ||||
|       <PersistAllDeviceInstalls>true</PersistAllDeviceInstalls> | ||||
|     </component> | ||||
|   </settings> | ||||
| 
 | ||||
|   <settings pass="windowsPE"> | ||||
|     <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" | ||||
|       publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> | ||||
|       <DiskConfiguration> | ||||
|         <Disk wcm:action="add"> | ||||
|           <DiskID>0</DiskID> | ||||
|           <WillWipeDisk>true</WillWipeDisk> | ||||
|           <CreatePartitions> | ||||
|             <CreatePartition wcm:action="add"> | ||||
|               <Order>1</Order> | ||||
|               <Type>EFI</Type> | ||||
|               <Size>100</Size> | ||||
|             </CreatePartition> | ||||
|             <CreatePartition wcm:action="add"> | ||||
|               <Order>2</Order> | ||||
|               <Type>MSR</Type> | ||||
|               <Size>512</Size> | ||||
|             </CreatePartition> | ||||
|             <CreatePartition wcm:action="add"> | ||||
|               <Order>3</Order> | ||||
|               <Type>Primary</Type> | ||||
|               <Extend>true</Extend> | ||||
|             </CreatePartition> | ||||
|           </CreatePartitions> | ||||
|           <ModifyPartitions> | ||||
|             <ModifyPartition wcm:action="add"> | ||||
|               <Order>1</Order> | ||||
|               <PartitionID>1</PartitionID> | ||||
|               <Label>System</Label> | ||||
|               <Format>FAT32</Format> | ||||
|             </ModifyPartition> | ||||
|             <ModifyPartition wcm:action="add"> | ||||
|               <Order>2</Order> | ||||
|               <PartitionID>3</PartitionID> | ||||
|               <Label>Windows</Label> | ||||
|               <Letter>C</Letter> | ||||
|               <Format>NTFS</Format> | ||||
|             </ModifyPartition> | ||||
|           </ModifyPartitions> | ||||
|         </Disk> | ||||
|         <WillShowUI>OnError</WillShowUI> | ||||
|       </DiskConfiguration> | ||||
|       <ImageInstall> | ||||
|         <OSImage> | ||||
|           <WillShowUI>OnError</WillShowUI> | ||||
|           <InstallTo> | ||||
|             <DiskID>0</DiskID> | ||||
|             <PartitionID>3</PartitionID> | ||||
|           </InstallTo> | ||||
|           </OSImage> | ||||
|       </ImageInstall> | ||||
|       <UserData> | ||||
|         <AcceptEula>true</AcceptEula> | ||||
|         <ProductKey> | ||||
|           <key>VK7JG-NPHTM-C97JM-9MPGT-3V66T</key> | ||||
|           <WillShowUI>Never</WillShowUI> | ||||
|         </ProductKey> | ||||
|       </UserData> | ||||
|       <DynamicUpdate> | ||||
|         <Enable>true</Enable> | ||||
|         <WillShowUI>Never</WillShowUI> | ||||
|       </DynamicUpdate> | ||||
|     </component> | ||||
| 
 | ||||
|     <component name="Microsoft-Windows-PnpCustomizationsWinPE" | ||||
|       publicKeyToken="31bf3856ad364e35" language="neutral" | ||||
|       versionScope="nonSxS" processorArchitecture="amd64"> | ||||
| 
 | ||||
|       <!-- | ||||
|            This makes the VirtIO drivers available to Windows, assuming that | ||||
|            the VirtIO driver disk | ||||
|            (https://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/) | ||||
|            is available as drive E: | ||||
|       --> | ||||
|       <DriverPaths> | ||||
|         <PathAndCredentials wcm:action="add" wcm:keyValue="1"> | ||||
|           <Path>E:\amd64\w10</Path> | ||||
|         </PathAndCredentials> | ||||
|         <PathAndCredentials wcm:action="add" wcm:keyValue="2"> | ||||
|           <Path>E:\viogpudo\w10\amd64</Path> | ||||
|         </PathAndCredentials> | ||||
|         <PathAndCredentials wcm:action="add" wcm:keyValue="3"> | ||||
|           <Path>E:\viorng\w10\amd64</Path> | ||||
|         </PathAndCredentials> | ||||
|         <PathAndCredentials wcm:action="add" wcm:keyValue="4"> | ||||
|           <Path>E:\NetKVM\w10\amd64</Path> | ||||
|         </PathAndCredentials> | ||||
|       </DriverPaths> | ||||
|     </component> | ||||
|   </settings> | ||||
| 
 | ||||
|   <settings pass="specialize"> | ||||
|     <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" | ||||
|       publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> | ||||
|       <ComputerName>*</ComputerName> | ||||
|       <OEMInformation> | ||||
|         <Manufacturer>Wimpys World</Manufacturer> | ||||
|         <Model>Quickemu</Model> | ||||
|         <SupportHours>24/7</SupportHours> | ||||
|         <SupportPhone></SupportPhone> | ||||
|         <SupportProvider>Wimpys World</SupportProvider> | ||||
|         <SupportURL>https://github.com/wimpysworld/quickemu/issues</SupportURL> | ||||
|       </OEMInformation> | ||||
|       <OEMName>Wimpys World</OEMName> | ||||
|     </component> | ||||
|   </settings> | ||||
| 
 | ||||
|   <settings pass="oobeSystem"> | ||||
|     <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" | ||||
|       publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> | ||||
|       <OOBE> | ||||
|         <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen> | ||||
|         <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE> | ||||
|       </OOBE> | ||||
|     </component> | ||||
|   </settings> | ||||
| </unattend> | ||||
| EOF | ||||
| } | ||||
| 
 | ||||
| function web_get() { | ||||
|     local DIR="${2}" | ||||
|     local FILE="" | ||||
|  | @ -382,6 +529,15 @@ function get_windows() { | |||
|     echo "Downloading virtio-win.iso..." | ||||
|     web_get "https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso" "${VM_PATH}" | ||||
| 
 | ||||
|     #if [ ! -e "${VM_PATH}/unattended.iso" ]; then | ||||
|         case ${RELEASE} in | ||||
|             10|11) | ||||
|                 echo "Making unattended.iso" | ||||
|                 unattended_windows "${VM_PATH}/unattended/autounattend.xml" | ||||
|                 mkisofs -quiet -l -o "${VM_PATH}/unattended.iso" "${VM_PATH}/unattended/" | ||||
|                 ;; | ||||
|         esac | ||||
|     #fi | ||||
|     make_vm_config "${FILE_NAME}" "virtio-win.iso" | ||||
| 
 | ||||
|     start_vm_info | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue