How to perform windows 10 installation on a nested VM?
Hello,
I am currently developing a proof of concept for academic purposes that involves a fully unattended installation of Windows 10 within a nested L2 VM. The architecture is as follows:
- L0: Linux Physical Host running a KVM hypervisor.
- L1: Linux Virtualized KVM Hypervisor (nested virtualization and KVM capabilities enabled).
- L2: Windows 10 guest intended for deployment fully unattended.
- L1: Linux Virtualized KVM Hypervisor (nested virtualization and KVM capabilities enabled).
Installation in a L1 VM proceeds without issues. However, attempting the same with a L2 machine (using both a customized unattended ISO and a vanilla ISO from Microsoft) results in the following error captured during the setup phase:
Additionally, here is an excerpt from c:\windows\panther\setuperr.log showing the errors encountered:
2024-05-29 03:12:29, Error SYSPRP ActionPlatform::CallEntryPoint: Caught an unhandled exception (code -1073741819) while trying to call module entry point[gle=0x00000001]
2024-05-29 03:12:29, Error SYSPRP ActionPlatform::LaunchModule: Failure occurred while executing 'RdpSysPrepRestoreOnline' from C:\Windows\System32\setup\tssysprep.dll; dwRet = 0xc0000005[gle=0x00000001]
2024-05-29 03:12:29, Error SYSPRP SysprepSession::ExecuteAction: Failed during sysprepModule operation; dwRet = 0xc0000005[gle=0x00000001]
2024-05-29 03:12:29, Error SYSPRP SysprepSession::ExecuteInternal: Error in executing action for Microsoft-Windows-TerminalServices-ClientActiveXCore; dwRet = 0xc0000005[gle=0x00000001]
2024-05-29 03:12:29, Error SYSPRP SysprepSession::Execute: Error in executing actions from C:\Windows\System32\Sysprep\ActionFiles\Specialize.xml; dwRet = 0xc0000005
2024-05-29 03:12:29, Error SYSPRP RunPlatformActions:Failed while executing Sysprep session actions; dwRet = 0xc0000005
2024-05-29 03:12:29, Error [0x0f0435] SYSPRP Callback_Specialize: An error occurred while either deciding if we need to specialize or while specializing; dwRet = 0xc0000005[gle=0x00000002]
Notably, the error code 0xc0000005 points to a memory access violation. This setup error occurs exclusively when attempting to install Windows on the L2 VM; the same setup files work without issue on L1.
The bizarrest fact is that when I load the vm setup on L1 in a nested L2 VM it boots normally, without errors, so this is a issue in windows setup inside this specific scenario. As I said, for academical research purposes I really need to perform L2 windows setup from ISO.
Is that any possible reason who would explain the issue I'm facing? what could I do to perform this L2 installation from scratch?
I deeply appreciate any kind of help or attention and I ask you to forgive any English mistakes I made, as I'm a non native speaker.
PS:
Regarding system specifications, the L0 Linux host is powered by Intel(R) Core(TM) i7-3720QM CPU @ 2.60GHz with VT-x capabilites enabled and 16 GB RAM. The KVM hypervisor version is QEMU emulator version 9.0.0, configured to share CPUs to the guests (as well with -enable_kvm flag set) as well to provide these hyper-v enlightenments — hv-relaxed,hv-vapic,hv-spinlocks=0x1fff,hv-time
— to the L1 qemu kvm hypervisor and to its L2 nested guests as well. And lastly, but not least, I'm trying to install in L2 the latest windows-10 enterprise iso build 19041.vb_release.191206-1406.