From Fedora Project Wiki

Revision as of 23:54, 2 February 2025 by Patricklang (talk | contribs)

(This page is a work in progress, we are still working on a date and will open a test day ticket within the next week)

Description

In Fedora 42, a new image is being built for use with Windows Subsystem for Linux (commonly referred to as WSL). This will allow users to have a simple, easy to set up Fedora environment for development and testing use.

Multiple distributions may be run side by side in different namespaces, sharing the same kernel. Conceptually, the workflow is similar to a container, but it has been optimized to support an interactive Linux development & testing. WSL manages a lightweight VM with Wayland, PulseAudio, and some extra filesystem mounts provided. The user's choice of distro, such as Fedora, is run in an isolated namespace with its own root image. Filesystem state, including the root filesystem and home directories are also preserved between uses.

The Fedora changes are fully described at Changes/FedoraWSL. It is similar to the cloud and container images, but some developer-focused packages such as manual pages, wget, and vim have been preinstalled. Some changes specific to WSL for X11 and Wayland compatibility have also been preconfigured.


Setup

Prerequisites

  • Windows 11 (recommended). Windows 10 may work, but is not a focus as it will be end-of-life soon
  • Virtualization extensions must be available. If you are testing in a VM - be sure this is enabled in your VM settings. Some cloud services restrict this to specific instance types.


Installing WSL

Setting up WSL is pretty simple. wsl --install will enable the hypervisor prerequisites, and prompt for reboot if needed. If a reboot is needed, you may need to run wsl --install a second time after reboot. (TODO: verify the reboot steps). This will also install a default Ubuntu image. Fedora can be installed in the next step.

Full documentation is available at [1]


Installing Fedora

Downloading the Fedora WSL tarball

TODO: add a specific link, or a publishing page to get the latest tarball

Installing Fedora with wsl.exe

First, check the version of WSL you are using by running wsl.exe --version. Follow the steps below based on the version.

For WSL versions 2.4.4+:

  1. From the command line, install the tarball with wsl --install --from-file .\path\to\Fedora.tar.xz
  2. Enter the environment by running "wsl -d Fedora"
  3. When prompted, provide a username. This will be the default user, and it will be added to the groups for sudo usage

For WSL versions prior to 2.4.4:

(These steps assume you are using PowerShell)

  1. Make a directory for the Fedora distribution with mkdir $ENV:LOCALAPPDATA\WSL\Fedora
  2. Import the WSL tarball with wsl --import Fedora $ENV:LOCALAPPDATA\WSL\Fedora .\Path\To\Fedora.x86_64-Rawhide.tar.xz
  3. Enter the environment with wsl -d Fedora -u root
  4. Manually run /usr/libexec/wsl/oobe.sh to create the default user
  5. exit the environment logged in as root
  6. Enter the environment as the newly created user with wsl -D Fedora -u <username>


Description

This test case ensures that the default user has been created, and that it has been configured for sudo


How to test

  1. If you already have WSL running in Fedora, exit
  2. Run a new Fedora shell by running wsl.exe -d Fedora (for WSL 2.4.4+), or wsl.exe -d Fedora -u <username (for WSL < 2.4.4)
  3. Verify your username is what you configured with id -u
  4. Run sudo su, then id -u again to confirm you can assume root

Expected Results

  1. Step 3 should return your default username
  2. Step 4 should return root