# WSL 3.0 download: 3.0.3.0 x64 build, release date and upgrade from WSL 2

> AI Release · @ai_release1 · https://ai-release.org/guides/wsl-3-0-x64-skachat-release-date_en.html

## TL;DR
- Time required: 25–35 minutes
- Difficulty: Intermediate
- You will need: Windows 11 x64 PC, BIOS/UEFI virtualization enabled, administrator PowerShell 7 or Windows PowerShell 5.1, at least 5 GB free on the system drive, an existing WSL 2 distribution (for example `Ubuntu`), and access to the Microsoft Store or the ability to download the package directly.
- What the source material confirms: Microsoft has published WSL 3.0, the release is available to all users, and the new branch can run Linux containers — containers are an isolated way to run an application together with its dependencies, and they are new to WSL in this release.
- What the source material does **not** confirm: an exact release date and the build string `3.0.3.0`. Treat both as unverified — read the installed build with `wsl --version` and cross-check the number against the official release notes (check the documentation).

## Requirements and setup
![Illustration: Requirements and setup](https://ai-release.org/guides/img/wsl-3-0-x64-skachat-release-date-en-1.jpg?v=1793523045)

- Windows 11 on x64 hardware; the WSL 3.0 report describes a general release for all users, not a limited preview.
- Virtualization enabled in UEFI/BIOS (Intel VT-x or AMD-V). Without it, WSL 2/3 virtual machines cannot start.
- The `Virtual Machine Platform` and `Windows Subsystem for Linux` optional features enabled.
- An existing WSL 2 distribution. WSL — Windows Subsystem for Linux — is the Windows feature that runs Linux binaries on top of a real Linux kernel inside a lightweight virtual machine.
- Administrator rights for one PowerShell session.
- Free disk space for the package plus a distribution backup.
- If you are also planning to move to Windows 11 26H2 and want the official ISO first, follow [How to Install Windows 11 26H2: Step-by-Step Guide with Official ISO](https://ai-release.org/guides/kak-ustanovit-windows-11-26h2-poshagovaya-instruktsiya.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide) and come back here afterwards.
- Background reading on the release itself: [WSL 3.0: what's new and how to update the Linux subsystem on Windows](https://ai-release.org/guides/wsl-3-0-windows.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide).

## Step 1. Take inventory of the current installation and back up a distribution
**What to do:** Open PowerShell as Administrator, record your current WSL version, check the required features, and export one distribution to a `.tar` file before touching anything.

```powershell
wsl --version
wsl --status
wsl --list --verbose
Get-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform | Select-Object FeatureName, State
Get-CimInstance Win32_Processor | Select-Object Name, VirtualizationFirmwareEnabled
Get-PSDrive C | Select-Object Used, Free
```

Then create the backup (replace `Ubuntu` with your distribution name and `D:\wsl-backup` with an existing folder):

```powershell
New-Item -ItemType Directory -Force -Path D:\wsl-backup | Out-Null
wsl --export Ubuntu "D:\wsl-backup\ubuntu-$(Get-Date -Format yyyyMMdd).tar"
```

**Example:** `wsl --list --verbose` on a working installation prints a header plus one line per distribution:

```
  NAME      STATE           VERSION
* Ubuntu    Stopped         2
```

The `VERSION` column shows `2`, which means the distribution runs on the WSL 2 architecture. `wsl --version` prints a block of fields; the first one tells you which branch of the package is answering:

```
WSL version: <major>.<minor>.<build>.<revision>
Kernel version: <kernel-version>
WSLg version: <wslg-version>
Windows version: <windows-build>
```

**Why:** The update is a package replacement, but you still need a rollback point and you need to know whether `wsl.exe` is answered by the old inbox component or by the updatable package. The kernel line also proves the lightweight utility VM boots — a hard prerequisite for containers.

**How to check:** The checklist below should be fully ticked before you continue.
- [ ] `wsl --version` prints a `WSL version` line starting with `2.` (or `3.` if you are already updated)
- [ ] `VirtualMachinePlatform` state is `Enabled`
- [ ] `VirtualizationFirmwareEnabled` is `True`
- [ ] `wsl --list --verbose` lists at least one distribution
- [ ] `Get-PSDrive C` shows more than 5 GB of `Free` space
- [ ] the `.tar` backup file exists in `D:\wsl-backup`

If `VirtualizationFirmwareEnabled` is `False`, stop and enable VT-x/AMD-V in UEFI before step 2.

## Step 2. Update the WSL package to the 3.x branch
![Illustration: Step 2. Update the WSL package to the 3.x branch](https://ai-release.org/guides/img/wsl-3-0-x64-skachat-release-date-en-2.jpg?v=1793523050)

**What to do:** Shut down all running distributions, update the package, and then check which default-version values your build accepts.

```powershell
wsl --shutdown
wsl --update
wsl --version
wsl --help
```

If `wsl --update` fails because the Store or Windows Update endpoint is unreachable, use the direct download path — but first confirm the flag exists in your build by searching `wsl --help` output:

```powershell
wsl --help | Select-String -Pattern "web-download"
wsl --update --web-download
```

Now read the supported values for the default version and, only if `3` is listed, make it the default for new distributions:

```powershell
wsl --help | Select-String -Pattern "set-default-version"
wsl --set-default-version 3
```

**Example:** a successful run ends with a short progress indicator and a sentence that the update was installed; `wsl --version` afterwards reports `WSL version: 3.<minor>.<build>.<revision>`. If the printed value still starts with `2.`, the old component is still answering — see Troubleshooting.

**Why:** WSL ships as a Windows package separate from the OS image, so `wsl --update` swaps the binary and kernel without reinstalling Windows. `wsl --shutdown` first is required because a running utility VM keeps the old files locked. The `--set-default-version` value controls only *new* distributions; existing ones keep their recorded version until you convert them, and the source material does not describe a forced per-distribution migration, so check the release notes before converting anything (check the documentation).

**How to check:** Run the three commands below and confirm each line.

```powershell
wsl --version
wsl --status
wsl --list --verbose
```

- `WSL version` starts with `3.`
- `wsl --status` reports a default distribution and a default version without warnings
- `wsl --list --verbose` shows your distributions, and the state column is `Stopped` or `Running`

On the reported build number: the channel report announces WSL 3.0 as published and available to everyone but does not publish a build string or a release date, so verify `3.0.3.0` against the installed output of `wsl --version` and the official release notes rather than trusting a third-party number.

## Step 3. Verify the update and run a Linux container
**What to do:** Prove that three things work: the new build answers, a distribution starts on the new kernel, and the container capability described in the release is present on your machine.

```powershell
wsl --version
wsl --help | Select-String -Pattern "container"
wsl -d Ubuntu -- uname -r
wsl -d Ubuntu -- sh -c "curl -s -o /dev/null -w '%{http_code}\n' https://example.com"
```

**Example:** inside the distribution `uname -r` prints a kernel release string such as `6.6.x.x-1`, and the `curl` line prints exactly `200`, which means DNS and outbound HTTPS work from inside WSL. `wsl --help | Select-String -Pattern "container"` returns the help lines for the container capability — if it returns nothing, your `wsl.exe` is still the pre-3.0 build.

| Check | Command | Pass condition |
|---|---|---|
| Build branch | `wsl --version` | first line starts with `3.` |
| Distribution state | `wsl --list --verbose` | your distro listed, no error |
| Kernel | `wsl -d Ubuntu -- uname -r` | a kernel release string is printed |
| Network | `curl ... https://example.com` | `200` |
| Container capability | `wsl --help \| Select-String container` | at least one matching help line |

For the container run itself: the source material confirms that WSL 3.0 can run Linux containers in Windows but does not name the subcommand, so take the exact syntax from `wsl --help` on your build or from the official documentation (check the documentation). Do not paste a command from a blog post into an elevated shell without confirming it appears in your own `wsl --help`.

**Why:** A version string alone only proves a package was replaced. Starting a distribution proves the kernel launched, `curl` proves the virtual network stack is intact, and the help search proves the container feature shipped in the binary you actually run.

## Troubleshooting

**Problem. `wsl --update` fails immediately with a network error.**
- Error: `Error code: Wsl/UpdatePackage/0x80072ee2`
- Cause: the machine cannot reach the Store/Windows Update endpoint — corporate proxy, WSUS policy, or a blocked CDN.
- Solution: check whether the direct-download flag is available, then use it: `wsl --help | Select-String "web-download"` followed by `wsl --update --web-download`. Behind an authenticated proxy, first set the machine-wide proxy with `netsh winhttp set proxy <proxy-host>:<port>` and retry.

**Problem. A distribution no longer starts after the update.**
- Error: `WslRegisterDistribution failed with error: 0x80370102` together with `Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.`
- Cause: the `Virtual Machine Platform` feature is off, or VT-x/AMD-V is disabled in firmware. WSL 2 and 3 both boot a real Linux kernel in a lightweight VM, so the hypervisor must be available.
- Solution: enable the feature and reboot, then check firmware:

```powershell
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -All
Restart-Computer
```

After the reboot, `Get-CimInstance Win32_Processor | Select-Object VirtualizationFirmwareEnabled` must return `True` before `wsl -d Ubuntu` will succeed.

**Problem. `wsl --version` still reports `WSL version: 2.<...>` after a "successful" update.**
- Error: the output line reads `WSL version: 2.<minor>.<build>.<revision>` and `wsl --help | Select-String container` returns nothing.
- Cause: the inbox Windows component answers `wsl.exe` instead of the updated package, or the terminal session is holding the old binary after the update.
- Solution: close every WSL-aware process, then re-check which package is registered and re-apply the update:

```powershell
wsl --shutdown
Get-AppxPackage *WindowsSubsystemForLinux* | Select-Object Name, Version
wsl --update --web-download
wsl --version
```

If the version string still starts with `2.`, remove the stale package, reinstall from the documented source, and restore your data with `wsl --import Ubuntu C:\wsl\Ubuntu D:\wsl-backup\ubuntu-<date>.tar --version 3`.

## Summary and next steps
You now have a WSL package on the 3.x branch, a bootable distribution on the new kernel, a verified network stack, and a `.tar` backup you can restore with `wsl --import`. Next, read the container syntax from `wsl --help` on your own build and confirm the exact build number and release date in the official release notes before quoting them anywhere.

## FAQ

**Is WSL 3.0 an x64-only release, and is `3.0.3.0` the official build number?**
The channel report says the release is available to all users and that it adds Linux containers, but it publishes neither an architecture matrix nor a build string. Read the real values from `wsl --version` on your machine and cross-check `3.0.3.0` against the official release notes (check the documentation).

**Do I have to reinstall my Ubuntu distribution after updating to WSL 3.0?**
No. The update replaces the WSL package and kernel; distributions keep their files on disk. Export with `wsl --export Ubuntu D:\wsl-backup\ubuntu.tar` before updating so you can restore with `wsl --import` if anything breaks.

**What is the release date of WSL 3.0?**
The source material confirms publication and general availability but gives no date. Confirm it on the official release notes page — do not rely on the date printed in aggregator posts.

**Does WSL 3.0 mean I can drop Docker Desktop?**
WSL 3.0 adds the ability to run Linux containers directly in Windows, which is new for WSL. The source material makes no comparison with Docker Desktop and names no container CLI or image registry, so evaluate that decision against the official documentation for your build.
