Skip to content

Commit e1341cc

Browse files
mattwojocraigloewen-msftkeith-hortonRed54dlech
authored
Main > Live (#2358)
* Clarify requirements for adding WSL distributions Added eligibility criteria for WSL distributions to be listed in `wsl --install`. * Minor wordsmithing * Basic commands review, add Git Cred Mgr keyring issue link (#2285) * Enhance WSL troubleshooting for network connectivity (#2356) * Enhance WSL troubleshooting for network connectivity Added troubleshooting tips for WSL network issues related to IPv6 and VPN connections. * Fix warnings update absolute link add code tics to remove html warning --------- Co-authored-by: Matt Wojciakowski <mattwoj@microsoft.com> * Update case-sensitivity.md for default case option (#2344) * Update case-sensitivity.md for default case option case=off is the new default setting since Build 17763 (1809) https://docs.microsoft.com/en-us/windows/wsl/release-notes#build-17763-1809 * case-sensitivity.md: Update broken fstab link * connect-usb: ARM64 is now supported (#2330) Update the connect-usb.md doc to reflect that ARM64 is now supported by USBIPD since v5.0.0. * Add reference to --web-download if install process hangs at 0.0% (#2323) Source: https://www.reddit.com/r/bashonubuntuonwindows/comments/1hlmm6r/windows_subsystem_and_ubuntu_stuck_at_00/ This fixed the aforementioned issue for me. * Fix broken PostgreSQL extension link in WSL database tutorial (#2310) (#2311) * Networking fix (#2302) * Update install-on-server.md (#2299) Fixing a typo to change "Not" to "Note" --------- Co-authored-by: Craig Loewen <crloewen@microsoft.com> Co-authored-by: Keith Horton <khorton@microsoft.com> Co-authored-by: 谢致邦 (XIE Zhibang) <Yeking@Red54.com> Co-authored-by: David Lechner <david@lechnology.com> Co-authored-by: Ben Greer <ben@grinbeard.com> Co-authored-by: Vaibhav Deokar <39976690+dev-ai-kar@users.noreply.github.com> Co-authored-by: Chris Golden <4693287+crgolden@users.noreply.github.com>
1 parent d866b4c commit e1341cc

10 files changed

Lines changed: 33 additions & 32 deletions

WSL/basic-commands.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Basic commands for WSL
33
description: Reference for the basic commands included with Windows Subsystem for Linux (WSL).
4-
ms.date: 11/28/2023
4+
ms.date: 07/31/2025
55
ms.topic: article
66
---
77

WSL/build-custom-distro.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Build a Custom Linux Distro for WSL - Windows
33
description: Learn how to create a custom Linux distribution for Windows Subsystem for Linux.
4-
ms.date: 02/05/2025
4+
ms.date: 09/12/2025
55
ms.topic: how-to
66
---
77

@@ -263,9 +263,9 @@ wsl --install my-distro-v2 # Installs 'my-distro-v2' explicitly
263263

264264
## Adding your distribution to `wsl --install` for all WSL users
265265

266-
To make your WSL distribution available to all users, open a pull request on the [WSL GitHub repository](https://github.com/microsoft/WSL) that modifies the [DistributionInfo.json](https://github.com/microsoft/WSL/blob/master/distributions/DistributionInfo.json) file to include your distribution information.
266+
In order for your distribution to be included in the list for the command: `wsl --list --online`, the distribution must meet the [Membership criteria](https://oss-security.openwall.org/wiki/mailing-lists/distros#membership-criteria) outlined in the distribution mailing list. This ensures that all listed distributions adhere to the necessary security standards.
267267

268-
This pull request will be reviewed by the WSL team.
268+
If your distribution meets the criteria and you would like to add it to the `--install` list, submit a pull request on the WSL GitHub repository (https://github.com/microsoft/WSL) that updates the [DistributionInfo.json file](https://github.com/microsoft/WSL/blob/master/distributions/DistributionInfo.json) with your distribution's details. This pull request will be reviewed by the WSL team.
269269

270270
## Adding your distribution to `wsl --install` for your enterprise or business group
271271

WSL/case-sensitivity.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,18 +86,18 @@ To configure the case sensitivity option in the `wsl.conf` file when mounting a
8686
4. If the `wsl.conf` file does not already exist, you can create it using: `sudo touch wsl.conf` or by running `sudo nano /etc/wsl.conf`, which will create the file upon saving from the Nano editor.
8787
5. The following options are available for you to add into your `wsl.conf` file:
8888

89-
**Default setting: `dir` for enabling case sensitivity per directory.**
89+
**Default setting: `off` for case sensitivity unavailable (all directories on mounted NTFS drives will be case insensitive).**
9090

9191
```bash
9292
[automount]
93-
options = case = dir
93+
options = case = off
9494
```
9595
96-
**Case sensitivity unavailable (all directories on mounted NTFS drives will be case insensitive): `off`**
96+
**Enabling case sensitivity per directory: `dir`**
9797
9898
```bash
9999
[automount]
100-
options = case = off
100+
options = case = dir
101101
```
102102
103103
**Treat all directories on the (NTFS) drive as case sensitive: `force`**
@@ -112,7 +112,7 @@ This option is only supported for mounting drives on Linux distributions running
112112
You will need to restart WSL after making any changes to the `wsl.conf` file in order for those changes to take effect. You can restart WSL using the command: `wsl --shutdown`
113113
114114
> [!TIP]
115-
> To mount a drive (which uses the DrvFs filesystem plugin to make the disk available under /mnt, such as /mnt/c, /mnt/d, etc) with a specific case sensitivity setting for ALL drives, use `/etc/wsl.conf` as described above. To set the default mount options for one specific drive, use the [`/etc/fstab` file](http://manpages.ubuntu.com/manpages/xenial/man5/fstab.5.html) to specify these options.
115+
> To mount a drive (which uses the DrvFs filesystem plugin to make the disk available under /mnt, such as /mnt/c, /mnt/d, etc) with a specific case sensitivity setting for ALL drives, use `/etc/wsl.conf` as described above. To set the default mount options for one specific drive, use the [`/etc/fstab` file](https://manpages.ubuntu.com/manpages/noble/en/man5/fstab.5.html) to specify these options.
116116
> For more WSL configuration options, see [Configure per distro launch settings with wslconf](./wsl-config.md).
117117
118118
### Changing the case sensitivity on a drive mounted to a WSL distribution

WSL/connect-usb.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Setting up the USB/IP project on your Windows machine will enable common develop
1414
## Prerequisites
1515

1616
- Running Windows 11 (Build 22000 or later). *(Windows 10 support is possible, see note below).*
17-
- A machine with an x64 processor is required. (x86 and Arm64 are currently not supported with usbipd-win).
17+
- A machine with an x64 or ARM64 processor is required. (x86 is currently not supported with usbipd-win).
1818
- WSL is [installed and set up with the latest version](./install.md).
1919
- Linux distribution installed and [set to WSL 2](./basic-commands.md#set-wsl-version-to-1-or-2).
2020

@@ -53,7 +53,7 @@ This will install:
5353
Before attaching your USB device, ensure that a WSL command line is open. This will keep the WSL 2 lightweight VM active.
5454

5555
> [!NOTE]
56-
> This doc assumes that you have [`usbipd-win 4.0.0` or higher installed](https://github.com/dorssel/usbipd-win/releases/latest)
56+
> This doc assumes that you have [`usbipd-win 5.0.0` or higher installed](https://github.com/dorssel/usbipd-win/releases/latest)
5757
5858
1. List all of the USB devices connected to Windows by opening PowerShell in *administrator* mode and entering the following command. Once the devices are listed, select and copy the bus ID of the device you’d like to attach to WSL.
5959

WSL/install-on-server.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ See the [Downloading distributions](./install-manual.md#downloading-distribution
5959

6060
### Extract and install a Linux distribution
6161

62-
Now that you've downloaded a Linux distribution, in order to extract its contents and manually install, follow these steps. Not that you will be downloading an appx file that contains several appx files. In this example we will use debian.
62+
Now that you've downloaded a Linux distribution, in order to extract its contents and manually install, follow these steps. Note that you will be downloading an appx file that contains several appx files. In this example we will use debian.
6363

6464
1. List the contents of the appx using tar.exe:
6565

WSL/install.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ The first time you launch a newly installed Linux distribution, a console window
3131

3232
> [!NOTE]
3333
> The above command only works if WSL is not installed at all. If you run `wsl --install` and see the WSL help text, please try running `wsl --list --online` to see a list of available distros and run `wsl --install -d <DistroName>` to install a distro.
34+
> If the install process hangs at 0.0%, run `wsl --install --web-download -d <DistroName>` to first download the distribution prior to installing.
3435
> To uninstall WSL, see [Uninstall legacy version of WSL](./troubleshooting.md#uninstall-legacy-version-of-wsl) or [unregister or uninstall a Linux distribution](./basic-commands.md#unregister-or-uninstall-a-linux-distribution).
3536
3637
## Change the default Linux distribution installed

WSL/networking.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ This new mode addresses networking issues seen with using a NAT (Network Address
149149

150150
## DNS Tunneling
151151

152-
On machines running Windows 11 22H2 and higher, setting [`dnsTunneling=true` under `[wsl2]` in the `.wslconfig` file](./wsl-config.md#configuration-settings-for-wslconfig) has WSL use a virtualization feature to answer DNS requests from within WSL, instead of requesting them over a networking packet. This feature is aimed to improve compatibility with VPNs, and other complex networking set ups.
152+
On machines running Windows 11 22H2 and higher the `dnsTunneling` feature is on by default (which can be found [under `[wsl2]` in the `.wslconfig` file](./wsl-config.md#configuration-settings-for-wslconfig)) and it uses a virtualization feature to answer DNS requests from within WSL, instead of requesting them over a networking packet. This feature is aimed to improve compatibility with VPNs, and other complex networking set ups.
153153

154154
## Auto Proxy
155155

WSL/troubleshooting.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Troubleshooting Windows Subsystem for Linux
33
description: Provides detailed information about common errors and issues people run into while running Linux on the Windows Subsystem for Linux.
4-
ms.date: 07/16/2025
4+
ms.date: 10/03/2025
55
ms.topic: troubleshooting-general
66
---
77

@@ -237,6 +237,15 @@ You can confirm local rule merging's setting by following these steps:
237237
238238
You can find instructions on how to change this Firewall setting in [Configure Hyper-V firewall](/windows/security/operating-system-security/network-security/windows-firewall/hyper-v-firewall).
239239
240+
### WSL has no network connection when disabling IPv6
241+
242+
If IPv6 is disabled using the registry value `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters (REG_DWORD) DisabledComponents`, WSL network connectivity can fail.
243+
See [Guidance for configuring IPv6 in Windows for advanced users](/troubleshoot/windows-server/networking/configure-ipv6-in-windows).
244+
245+
If IPv6 must be disabled on the host system, we recommend using Powershell to do so by directly removing the IPv6 protocol bindings. For example:
246+
`Disable-NetAdapterBinding -Name "<MyAdapter>" -ComponentID ms_tcpip[6]`.
247+
248+
240249
### WSL has no network connectivity once connected to a VPN
241250
242251
If after connecting to a VPN on Windows, bash loses network connectivity, try this workaround from within bash. This workaround will allow you to manually override the DNS resolution through `/etc/resolv.conf`.

WSL/tutorials/wsl-database.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ To see what user accounts have been created on your PostgreSQL installation, use
195195

196196
For more about working with PostgreSQL databases, see the [PostgreSQL docs](https://www.postgresql.org/docs/current/tutorial-createdb.html).
197197

198-
To work with PostgreSQL databases in VS Code, try the [PostgreSQL extension](https://marketplace.visualstudio.com/items?itemName=ms-ossdata.vscode-postgresql).
198+
To work with PostgreSQL databases in VS Code, try the [PostgreSQL extension](https://marketplace.visualstudio.com/items?itemName=ms-ossdata.vscode-pgsql).
199199

200200
## Install MongoDB
201201

WSL/tutorials/wsl-git.md

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Get started using Git on WSL
33
description: Learn how to set up Git for version control on the Windows Subsystem for Linux, along with Git Credential Manager.
4-
ms.date: 06/21/2023
4+
ms.date: 08/22/2025
55
ms.topic: get-started
66
---
77

@@ -73,29 +73,20 @@ It is recommended to install the [latest Git for Windows](https://github.com/git
7373

7474
If you have a reason not to install Git for Windows, you can install GCM as a Linux application directly in your WSL distribution, but note that doing so means GCM is running as a Linux application and cannot utilize the authentication or credential storage features of the host Windows operating system. See the GCM repo for instructions on how to [configure WSL without Git for Windows](https://github.com/GitCredentialManager/git-credential-manager/blob/main/docs/wsl.md#configuring-wsl-without-git-for-windows).
7575

76-
To set up GCM for use with a WSL distribution, open your distribution and enter this command:
76+
### Commands to check and set up GCM for WSL
7777

78-
If Git installed is >= v2.39.0
78+
If you have installed Git for Windows, GCM is already installed and configured. You can verify this by running the following command in a WSL distribution:
7979

80-
```bash
81-
git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager.exe"
82-
```
83-
84-
else if Git installed is >= v2.36.1
85-
86-
```bash
87-
git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/libexec/git-core/git-credential-manager.exe"
88-
```
89-
90-
else if Git installed is < v2.36.1 enter this command:
91-
92-
```bash
93-
git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager-core.exe"
80+
```powershell
81+
git --version; git credential-manager --version
9482
```
9583

9684
> [!NOTE]
9785
> Using GCM as a credential helper for a WSL Git installation means that any configuration set in WSL Git is NOT respected by GCM (by default). This is because GCM is running as a Windows application, and therefore will use the Git for Windows installation to query configuration. This means things like proxy settings for GCM need to be set in Git for Windows as well as WSL Git as they are stored in different files (`%UserProfile%\.gitconfig` vs `\\wsl$\distro\home\$USER\.gitconfig`). You can configure WSL so that GCM will use the WSL Git configuration, but this means that proxy settings will be unique to the specific WSL installation and not shared with others or the Windows host.
9886
87+
> [!WARNING]
88+
> There is currently an [issue with using keyring in the GitHub CLI](https://github.com/cli/cli/issues/8954).
89+
9990
### Git with SSH
10091

10192
Git Credential Manager only works with HTTP(S) remotes. You can still use Git with SSH:

0 commit comments

Comments
 (0)