Skip to content

DrvFs mount regression in WSL 2.9.9: standard mount options fail with "Operation not supported" #41475

Description

@hoo29

Windows Version

Microsoft Windows [Version 10.0.26200.9106]

WSL Version

2.9.9.0

Are you using WSL 1 or WSL 2?

  • WSL 2
  • WSL 1

Kernel Version

6.18.40.1-microsoft-standard-WSL2

Distro Version

Ubuntu 24.04

Other Software

usbipd-win

Repro Steps

See related investigation: dorssel/usbipd-win#1464.

Create the mount point if it does not already exist:

mkdir -p /var/run/usbipd-win

Run the DrvFs mount command used by usbipd-win:

mount -t drvfs -o "ro,umask=222" "C:\Program Files\usbipd-win\WSL" "/var/run/usbipd-win"

This fails:

mount: /run/usbipd-win: mount(2) system call failed: Operation not supported.
dmesg(1) may have more information after failed mount system call.
<3>WSL (...) ERROR: UtilCreateProcessAndWait:735: /bin/mount failed with status 0x2000

Specifying the options as separate -o arguments also fails:

mount -t drvfs -o ro -o umask=222 "C:\Program Files\usbipd-win\WSL" "/var/run/usbipd-win"

Output:

mount: /run/usbipd-win: mount(2) system call failed: Operation not supported.
dmesg(1) may have more information after failed mount system call.
<3>WSL (5018 - ) ERROR: UtilCreateProcessAndWait:735: /bin/mount failed with status 0x2000

Adding metadata does not help:

mount -t drvfs -o "ro,metadata,umask=222" "C:\Program Files\usbipd-win\WSL" "/var/run/usbipd-win"

Output:

mount: /run/usbipd-win: mount(2) system call failed: Operation not supported.
dmesg(1) may have more information after failed mount system call.
<3>WSL (9663 - ) ERROR: UtilCreateProcessAndWait:735: /bin/mount failed with status 0x2000

Even a single standard option fails:

mount -t drvfs -o "ro" "C:\Program Files\usbipd-win\WSL" "/var/run/usbipd-win"

Output:

mount: /run/usbipd-win: mount(2) system call failed: Operation not supported.
dmesg(1) may have more information after failed mount system call.
<3>WSL (9684 - ) ERROR: UtilCreateProcessAndWait:735: /bin/mount failed with status 0x2000

However, replacing the comma with a semicolon unexpectedly succeeds:

mount -t drvfs -o "ro;umask=222" "C:\Program Files\usbipd-win\WSL" "/var/run/usbipd-win"

The resulting mount is accessible:

ls -la /var/run/usbipd-win
total 216
dr-xr-xr-x 1 root root 4096 Aug 26 13:55 .
drwxr-xr-x 40 root root 1160 Aug 28 09:18 ..
-r--r--r-- 1 root root 440 Oct 5 2025 README.md
-r-xr-xr-x 1 root root 162352 Oct 5 2025 usbip
-r-xr-xr-x 1 root root 55768 Oct 5 2025 usbip-auto-attach

There is no relevant output in dmesg after the failed mounts.

Expected Behavior

DrvFs should accept normal Linux mount option syntax.

In particular, this should succeed:

mount -t drvfs -o "ro,umask=222" "C:\Program Files\usbipd-win\WSL" "/var/run/usbipd-win"

Comma-separated options are the normal syntax for mount -o.

At minimum, a single option should also work:

mount -t drvfs -o "ro" "C:\Program Files\usbipd-win\WSL" "/var/run/usbipd-win"

The original reporter of dorssel/usbipd-win#1464 reports that the comma-separated form worked after downgrading WSL from 2.9.8 to 2.9.4, indicating that this is a regression in recent WSL versions.

Actual Behavior

On WSL 2.9.9.0, DrvFs mounts using normal mount -o syntax fail with:

mount(2) system call failed: Operation not supported.
<3>WSL (...) ERROR: UtilCreateProcessAndWait:735: /bin/mount failed with status 0x2000

The following forms all fail:

-o "ro,umask=222"
-o ro -o umask=222
-o "ro,metadata,umask=222"
-o "ro"

Unexpectedly, this succeeds:

-o "ro;umask=222"

A semicolon is not the standard separator for Linux mount options, so this appears to be a regression in DrvFs option handling rather than an usbipd-win issue.

This currently breaks usbipd-win's WSL integration because it uses the standard comma-separated DrvFs mount options.

Diagnostic Logs

There is no relevant output in dmesg after reproducing the failure.

Environment:

WSL version: 2.9.9.0
Kernel version: 6.18.40.1-1
WSLg version: 1.0.79
MSRDC version: 1.2.7214
Direct3D version: 1.611.1-81528511
DXCore version: 10.0.26100.1-240331-1435.ge-release
Windows version: 10.0.26200.9106

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions