From 08dee84013b06ce56c1f194d7f0e72cee940db56 Mon Sep 17 00:00:00 2001 From: mittaltarkik Date: Mon, 30 Mar 2026 15:55:44 +0530 Subject: [PATCH] Adding logic to skip diskmount step if disk in an OS disk --- .../VirtualClient.Dependencies/MountDisks.cs | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/VirtualClient/VirtualClient.Dependencies/MountDisks.cs b/src/VirtualClient/VirtualClient.Dependencies/MountDisks.cs index cb2daadf0e..8a0aa2ee05 100644 --- a/src/VirtualClient/VirtualClient.Dependencies/MountDisks.cs +++ b/src/VirtualClient/VirtualClient.Dependencies/MountDisks.cs @@ -191,11 +191,30 @@ protected override async Task ExecuteAsync(EventContext telemetryContext, Cancel this.fileSystem.Directory.CreateDirectory(newMountPoint); } - await this.diskManager.CreateMountPointAsync( + try + { + await this.diskManager.CreateMountPointAsync( volume, newMountPoint, CancellationToken.None); + } + catch (ProcessException exc) when (exc.Message.Contains("OEM") || exc.Message.Contains("ESP") || exc.Message.Contains("recovery partition")) + { + // DiskPart cannot assign a mount point to an OEM, ESP, or recovery partition. + // These partitions are special system partitions that should be skipped. + this.Logger.LogTraceMessage( + $"Skipping mount point assignment for volume '{volume.Index}' on disk '{disk.DevicePath}'. " + + $"DiskPart cannot assign a mount point to an OEM, ESP, or recovery partition."); + + if (this.fileSystem.Directory.Exists(newMountPoint)) + { + this.fileSystem.Directory.Delete(newMountPoint, recursive: false); + } + + continue; + } + // We want the mount point and directory structure to be owned by the user executing // the application. This helps to prevent permissions issues. string loggedInUser = this.PlatformSpecifics.GetLoggedInUser();