March 13th, 2020

WSL 2 will be generally available in Windows 10, version 2004

Craig Loewen
Senior Product Manager

WSL 2 will soon be officially available as part of Windows 10, version 2004! As we get ready for general availability, we want to share one additional change: updating how the Linux kernel inside of WSL 2 is installed and serviced on your machine. We’ve heard lots of community feedback that the install experience could be streamlined, and we’re taking the first step towards this by improving the servicing model of the Linux kernel. We’ve removed the Linux kernel from the Windows OS image and instead will be delivering it to your machine via Windows Update, the same way that 3rd party drivers (like graphics, or touchpad drivers) are installed and updated on your machine today. This change will give you more agility and flexibility over Linux kernel updates in WSL 2. Read on to learn more about how you’ll see this in the user experience.

How will I notice this change?

Our end goal is for this change to be seamless, where your Linux kernel is kept up to date without you needing to think about it. By default this will be handled entirely by Windows, just like regular updates on your machine. Inside of the initial release of Windows 10, version 2004, and in the latest Windows Insiders slow ring preview build you will temporarily need to manually install the Linux kernel, and will receive an update in a few months that will add automatic install and servicing capabilities. We made this change now and will have a patch later to ensure that all users in the initial general release of WSL 2 will be serviced via this dynamic model, and no one will be left in a middle state using the prior system.

Automatic install and updates

If you’ve ever gone to your Windows settings, and clicked ‘Check for Updates’ you might have seen some other items being updated like Windows Defender malware definitions, or a new touchpad driver, etc. The Linux kernel in WSL 2 will now be serviced in this same method, which means you’ll get the latest kernel version independently of consuming an update to your Windows image. You can manually check for new kernel updates by clicking the ‘Check for Updates’ button, or you can let Windows keep you up to date just like normal.

Image wsl1

If you’re installing WSL for the first time, we’ll check for updates and install the Linux kernel for you during the WSL install process.

Temporary experience of manually installing the Linux kernel in Windows 10, version 2004 and Windows Insiders slow ring

After updating to Windows 10 build 19041.153, when you run any of the following commands:

  • wsl (If a WSL 2 distro is your default distro)
  • wsl --set-version <Distro> 2, – wsl --set-default-version 2
  • wsl --import and wsl --export targeting WSL 2

You’ll see a one-time message instructing you to update your kernel. It will instruct you to go to the link: https://aka.ms/wsl2kernel.

Command Prompt showing WSL

Once there, follow the instructions to download the MSI package, run it to install your Linux kernel, and you’ll be finished and ready to use WSL 2. When automatic install and update of the Linux kernel is added you’ll start getting automatic updates to your kernel right away.

Future plans and where to learn more

We’re excited for the release of WSL2, and to keep working on the WSL install experience. If you’d like to learn more about WSL 2, check out our latest overview video WSL 2: Code faster on the Windows Subsystem for Linux. Please stay tuned for more updates from us soon!

As always you can reach members of the WSL team that are on Twitter, or me personally @craigaloewen on Twitter if you have any general questions. For technical issues please file an issue on the WSL Github Repo. We always love hearing your feedback, thank you for helping make WSL amazing, and we’ll see you with the next update soon!

Updates:

  • 3/13/2020 – Thank you to our WSL distro partners: Canonical, Debian, openSUSE, Kali Linux, and Pengwin for adding a change to their distro launcher to help support this experience!
  • 3/13/2020 – Added link to WSL 2 explanation video
  • 6/22/2020 – Changed verbage to ‘WSL 2’

Author

Craig Loewen
Senior Product Manager

34 comments

Discussion is closed. Login to edit/delete existing comments.

  • Gregory Regan

    …this looks very interesting, do you think it’ll eventually be included in Win 10 multi-session 2004??

  • Pushpendra Kumar

    This is really great job. Though I have another impression of Windows and Microsoft products entirely. In my opinion which doesn't matter for MS of course, but MS has great or can say top office and software development products in the world, but Kernel.
    So why not MS port their product to Linux kernel ??
    Frankly developers who want to develop on Linux, they need Linux to be in power, not an emulator of Windows....

    Read more
  • Joe

    Beginner question: Yesterday my PC updated itself to Win10 version 2004 build 19041, I see that it does offer:
    Turn Windows features on or off
    [ ] Virtual Machine Platform
    [ ] Windows Subsystem for Linux
    But I have not been a Windows Insider and the machine has never heard of WSL(1). I have not been able to find a list of steps to install WSL2 and, say, Ubuntu 20.04 in this simple situation.
    Thanks for any help?!

    • Nikolay Baklicharov

      If you enabled the following options, you have it already installed. Just to be sure that by default you are using v2 type that command
      wsl –set-default-version 2

      Then just download a distro from the MS Store.

  • Dmitriy Krasnikov

    So where are virtual home directory of file system is located and is there a way to switch the drive to use the dedicated storage? P.S. I know I can mount, but I want to have speedy promised performance

  • Wil Wilder Apaza Bustamante

    It works really great, though there is an issue with the network when used with VPNs. It would be nice to have the ability to change network addresses range for WSL2 in its config. I believe that somehow routing is going through the VPN, not through NAT created on the host machine, but I’m not sure about that.

  • Geoff Maddock

    I tried to upgrade from wsl1 to 2, followed the steps here, but find myself stuck at this error:

    wsl --set-version Ubuntu-18.04 2
    Conversion in progress, this may take a few minutes...
    For information on key differences with WSL 2 please visit https://aka.ms/wsl2
    The requested operation could not be completed due to a virtual disk system limitation. Virtual hard disk files must be uncompressed and unencrypted and must not be sparse.
    PS C:\WINDOWS\system32>

    Any suggestions?

    Read more
  • Yonas Gaming

    Can I use WSL 2 to install KDE Plasma, GNOME, or other desktop environments?

    • David Shelton

      You can but requires gdm3 in wsl2 and a display manager in windows, like VcXsrv. It requires some tinkering but a few people have pulled it off and have steps available online.

  • Brandon Burt

    Well done! WSL 2 in non-preview releases? Sweet!

  • Krishna Prasad

    Really exited to try out the native WSL2.

    Not sure if this is the proper location for this question

    It will be great if someone can point out as to how I can access/navigate to a windows folder from SQL DB on Linux when using SSMS

    I have installed docker desktop edge with Linux containers and WSL2 as distro. I have a container with sql-2019 Linux running (WSL2-docker) and am able to SSMS installed on windows into the...

    Read more
    • David Shelton

      Windows is stored under /mnt/ within WSL1 and WSL2. Just like a duel boot would if windows was mounted properly. You can use standard bash commands from wsl2 to move, copy, and work with any file on windows.

      For your example cd /mnt/d/backups && w/e you want to do with db_backup.bak.

  • Praveen Madhu

    Hi One quick question,

    I have upgraded to Windows Insider and also got the latest update of Windows that dates to Nov 2019.
    I want to export my WSL to new computer but when I try to export I get “access denied” and also wsl -l -v does not work.