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…
Reference in a new issue