Closed hartmans closed 1 month ago
You could try the Use filename notautounattend.xml
rather than autounattend.xml
option. As Windows Setup won't be able find an autounattend.xml file, the unattended process will not begin automatically, and Windows might have better chances to load drivers.
When you see the language and keyboard selection dialog, press Shift+F10 to open a command prompt, then type setup.exe /Unattend:D:\notautounattend.xml
to begin the unattended process.
Thanks for the suggestion and especially for the hint on how to get a command prompt from Windows setup. That will definitely make a variety of debugging tasks easier.
This is for automated base image generation for https://github.com/hadron/carthage so something that requires me to type anything defeats the point. I've confirmed that if I replace the RunSynchronous commands that do the partitioning with a DiskConfiguration section in Microsoft-Windows-Setup.
That will work fine for my use case. I mostly opened this issue in case someone else ran into a similar issue; I was always going to need to postprocess the autounattend.xml to substitute in various configuration options from the deployment that is consuming the windows base VM images, so I was using your excellent tool because it was a lot easier than SIM.
--Sam
I'm trying to build a base image for Linux KVM guests, using the vioscsi virtio SCSI driver for primary storage, and the NetKVM virtio driver for networking. Looking at setupact.log, it looks like the SynchronousCommands from the WinPE settings pass used to partition the disk happen before $WinPEDriver$ is searched (or before the WinPE PNP configuration component is processed). So, my disk does not exist by the time the partitioning runs. I think this is a case where writing the partitioning out in xml rather than as a diskpart script would give better results. I could probably also succeed if I had a way to run commands before the partitioning commands rather than after, although I would need to dig a lot more into how Windows PNP works to figure out what commands to run. (I could explicitly load the one driver I want, but that's a bit too fragile in a couple of ways.)