Skip to content

wsl --mount not working on arm64 #12360

Closed
@etxaleku

Description

@etxaleku

Windows Version

Microsoft Windows [Version 10.0.26100.2314]

WSL Version

2.3.26.0

Are you using WSL 1 or WSL 2?

  • WSL 2
  • WSL 1

Kernel Version

5.15.167.4-1

Distro Version

Ubuntu 22.04

Other Software

Existing issue #12038 was closed after waiting for logs.

WSL2 is from Windows Store and is up-to-date (ran wsl --update to be sure).
Windows 11 is up-to-date (ran Windows Update check for updates to be sure).

$ wsl.exe --version
WSL version: 2.3.26.0
Kernel version: 5.15.167.4-1
WSLg version: 1.0.65
MSRDC version: 1.2.5620
Direct3D version: 1.611.1-81528511
DXCore version: 10.0.26100.1-240331-1435.ge-release
Windows version: 10.0.26100.2314

Repro Steps

With WSL2 IO performance (and the Linux file security model) work much better for the native filesystem (ext4) though there is very much appreciated access to the Windows NTFS filesystems through the drvfs filesystem driver albeit at a slower IO rate.

To reproduce:

  • WIndows 11 on ARM64 machine (Microsoft Surface Pro 11 in my case).
  • WSL2/Ubuntu 22.04 installed from Microsoft Store.
  • Use Windows Disk Management to Create VHD outside of WSL2, in my case on external D: drive connected via USB.
  • In Powershell get the physical disk number by running
    Get-Disk
  • Then try to mount the VHD by running
    wsl.exe --mount \\.\PhysicalDrive# --bare

In my case the drive number of the new VHD was 2 so I tried running
wsl.exe --mount \\.\PhysicalDrive2 --bare
in a variety of contexts:

  • from my normal user in Ubuntu/WSL2
  • from the root user in Ubuntu/WSL2
  • from an Administrator elevated Powershell

I am generally trying to follow the steps outlined in https://joeferguson.me/adding-another-disk-to-wsl2/, though some of those steps are apparently outdated. Like the process to get the VHD drive number, so I eventually figured out that (these days) a simple Get-Disk in Powershell will interactively provide the number.

Expected Behavior

New VHD will mount into Ubuntu where an ext4 filesystem can then be created and the resultant ext4 filesystem can then be mounted and used for normal file handling from that point forward.

So basically now a df command in Linux would show the usual / (root ext4) filesystem, all the drvfs filesystems exposing the various NTFS Windows "drives", plus this new ext4 filesystem which happens to be on a different physical disk than the root filesystem. Expectation is that the IO performance of the new VHD would be similar to the root filesystem (after taking into account any physical limitations due to the disk characteristics and interfaces, e.g. SSD vs spinning, USB, etc).

Actual Behavior

PS C:\> wsl --mount \\.\PhysicalDrive2 --bare
wsl.exe --mount is not supported for ARM64 on this version of Windows.
Error code: Wsl/Service/WSL_E_WSL_MOUNT_NOT_SUPPORTED

also tried

PS C:\> wsl --mount --vhd D:\media\extdisk.vhdx --bare
wsl.exe --mount is not supported for ARM64 on this version of Windows.
Error code: Wsl/Service/WSL_E_WSL_MOUNT_NOT_SUPPORTED

Diagnostic Logs

Since this is a WSL --mount issue, tried to follow the guidance to run the wmic command but looks like that has been deprecated.

Running wmic diskdrive get Availability,Capabilities,CapabilityDescriptions,DeviceID,InterfaceType,MediaLoaded,MediaType,Model,Name,Partitions from an elevated command prompt resulted in -
'wmic' is not recognized as an internal or external command, operable program or batch file.

Attached logs from collect-wsl-logs.ps1.

WslLogs-2024-12-09_19-33-42.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions