How to perform windows 10 installation on a nested VM?

Diego Ascânio Santos 0 Reputation points
2024-05-29T18:00:37.7966667+00:00

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.

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:

User's image

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.

Windows 10
Windows 10
A Microsoft operating system that runs on personal computers and tablets.
11,072 questions
Hyper-V
Hyper-V
A Windows technology providing a hypervisor-based virtualization solution enabling customers to consolidate workloads onto a single server.
2,613 questions
{count} votes