This is an old revision of the document!
Table of Contents
Windows Subsystem for Linux 2 (WSL 2), and Ubuntu
Other Windows 10 related notes
- What is described on this page was tested with WSL 2.
WSL 2 is available in Windows 11 or Windows 10, Version 1903, Build 18362 or later
- You can also check JYP's original WSL 1 instructions
- The user can choose to install Linux using WSL 1 or WSL 2
- WSL 2 should be your default choice
- If you have doubts, check the differences between WSL1 and WSL2 and read Exceptions for using WSL 1 rather than WSL 2 before choosing
What is WSL ?
Windows Subsystem for Linux (WSL) lets you run a Linux distribution on your Windows computer, without the overhead of a traditional Virtual Machine (VM) or dual-boot setup
More reading:
- What is WSL? on the Ubuntu wiki site
Prerequisites
Windows version
- A computer running Windows 11 or Windows 10, Version 1903, Build 18362 or later
- Check the installed version on your computer
If you don't have the Windows version required for running WSL, you can:
The basics before starting
Once you have verified that your Windows is recent enough, you should also:
- Install the Windows terminal, because it will be one of the ways to open
Ubuntu
terminals, onceUbuntu
is installed - Know how to use copy-paste in a Powershell
- It will be useful to be able to see hidden folders and files
- Have at least some basic knowledge of Linux…
- Get some basic Linux documentation if required
Computer CPU and memory
Contrary to other virtual machines, WSL is well integrated with the Windows operating system and the hardware drivers and has a low default CPU and memory footprint!
- You should be able to play with WSL even with 8 Gb of RAM, but 16 Gb is recommended
- Of course, depending on what you need to do on your computer, a better processor will always help
- WSL+Ubuntu will use more CPU and RAM if you use it for running CPU and/or memory intensive processes! As would be the case with any Windows application…
Disk usage
Overview
WSL
is part of the Windows operating system and will be installed (and updated) onC:\
- The Linux installation(s) will be installed (and updated) on
C:\
- They can only be relocated to other partitions afterwards
- ⇒ We should start with at least 10 Gb of free space on
C:\
(but more space is always better and safer)- The initial installation will not use much space (2-3 Gb), but we always need space on
C:\
for other applications and Windows maintenance (temporary files, updates, …)
The rather technical Disk usage sections below should be moved somewhere else!
How does it work?
WSL+Linux seems to use a combination of actual Windows files/folders and ext4
Linux partitions stored in .vhdx
(Dynamic Virtual Hard Disk) files. The Linux disk (of type ext4
) is stored in a single some_name.vhdx
Windows file that will automatically grow until it reaches a predefined maximum size of 256 Gb (if there is enough space on the Windows disk…)
- Check Expand the size of your WSL 2 Virtual Hard Disk if you need more than 256 Gb
- Check the following threads if you want to reduce the size of the
vhdx
file:
Disks seen from Linux
The disks and partitions usage, as seen from Linux, can be displayed with df -h
stdu@sadira034:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sdb 251G 1.5G 237G 1% / tmpfs 6.2G 0 6.2G 0% /mnt/wsl tools 472G 118G 355G 25% /init none 6.2G 0 6.2G 0% /dev none 6.2G 8.0K 6.2G 1% /run none 6.2G 0 6.2G 0% /run/lock none 6.2G 0 6.2G 0% /run/shm none 6.2G 0 6.2G 0% /run/user tmpfs 6.2G 0 6.2G 0% /sys/fs/cgroup drivers 472G 118G 355G 25% /usr/lib/wsl/drivers lib 472G 118G 355G 25% /usr/lib/wsl/lib C:\ 472G 118G 355G 25% /mnt/c D:\ 480G 2.6G 478G 1% /mnt/d
- The
251G
Size of/
depends on the 256G default size of the growing virtual disk where Linux is installed - The
/mnt/c
and/mnt/d
are the way to access the WindowsC:
andD:
disks from Linux, and their Size is the actual size of the Windows disks - Some Filesystems like
drivers
are actually Windows file systems!stdu@sadira034:/usr/lib/wsl/drivers$ du -sh /usr/lib/wsl/drivers 9.1G /usr/lib/wsl/drivers stdu@sadira034:/usr/lib/wsl/drivers$ du -sh /mnt/c/Windows/System32/DriverStore/ 9.1G /mnt/c/Windows/System32/DriverStore/
Some important disk locations
- Accessing Windows files from Linux:
/mnt/
e.gC:\
is available in/mnt/c
- Accessing Linux files from the Windows Explorer:
\\wsl$
- WSL+Ubuntu installation:
- Main directory:
C:\Users\your_login\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
- vhdx file:
C:\Users\jypeter\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx
stdu@sadira034:~$ ls -lh /mnt/c/Users/jypeter/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/LocalState/ext4.vhdx -rwxrwxrwx 1 root root 1.2G Aug 24 15:20 /mnt/c/Users/jypeter/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/LocalState/ext4.vhdx
- Linux swap (virtual memory) file:
stdu@sadira034:~$ ls -lh /mnt/c/Users/jypeter/AppData/Local/Temp/swap.vhdx -rwxrwxrwx 1 root root 63M Aug 24 14:52 /mnt/c/Users/jypeter/AppData/Local/Temp/swap.vhdx
Sample disk usage
- Disk size after the initial installation of Ubuntu 20.04 LTS
-rwxrwxrwx 1 root root 1.2G Aug 24 15:20 /mnt/c/Users/jypeter/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/LocalState/ext4.vhdx
- Disk size after upgrading to Ubuntu 20.04.4 LTS with
sudo apt update && sudo apt upgrade
-rwxrwxrwx 1 root root 2.6G Aug 24 15:24 /mnt/c/Users/jypeter/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/LocalState/ext4.vhdx
Base installation
- Create a system restore point (Créer un point de restauration système), and give it a meaningful name (e.g. Before installing WSL), in the very unlikely case you have to restore it later (i.e. go back to a state where WSL was not activated)
- The steps below (based on Install Linux on Windows with WSL) will work if you have Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11
- If you have an older Windows version (at least Version 1903, Build 18362), follow the Manual installation steps for older versions of WSL
- Open a
Powershell
in administrator modeStart
⇒W
⇒Windows PowerShell
then right-click onWindows PowerShell
and select Run as Administrator- Use a Windows Terminal, if you have already installed it. Use
CTRL
+<left click> onWindows Powershell
in the pull-down menu to get aPowershell
in administrator mode
- Determine which Linux distributions are (directly) available for installation.
We will use the defaultUbuntu
distributionUbuntu
will always automatically upgrade to the latestLTS
release available (contrary toUbuntu-<even_number>.04
that will stick to the specified<even-number>
release)- We could specify a specific Linux version (or even import any Linux distribution, or create a custom Linux distribution!)
PS C:\> wsl --list --online NAME FRIENDLY NAME * Ubuntu Ubuntu Debian Debian GNU/Linux kali-linux Kali Linux Rolling openSUSE-42 openSUSE Leap 42 SLES-12 SUSE Linux Enterprise Server v12 Ubuntu-16.04 Ubuntu 16.04 LTS Ubuntu-18.04 Ubuntu 18.04 LTS Ubuntu-20.04 Ubuntu 20.04 LTS
- Install the latest Ubuntu LTS version available
This step will run pretty quickly
PS C:\> wsl --install -d Ubuntu Installation en cours : Plateforme de machine virtuelle Plateforme de machine virtuelle a été installé. Installation en cours : Sous-système Windows pour Linux Sous-système Windows pour Linux a été installé. Téléchargement en cours : Noyau WSL Installation en cours : Noyau WSL Noyau WSL a été installé. Téléchargement en cours : Ubuntu L’opération demandée est réussie. Les modifications ne seront pas effectives avant que le système ne soit réamorcé.
- Reboot the computer and be patient
- This step will take some time (make sure you have 15-30 mn available). Windows will install and configure what it needs for running WSL+Ubuntu, reboot, and install some more stuff
- The final installation step will take place when you open your Windows session. A terminal opens, displaying the final installation of Ubuntu, and asking you for a username and password, and giving you access to a
bash
prompt Installing, this may take a few minutes... Please create a default UNIX user account. The username does not need to match your Windows username. For more information visit: https://aka.ms/wslusers Enter new UNIX username: stdu New password: Retype new password: passwd: password updated successfully Installation successful! To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details. Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.10.16.3-microsoft-standard-WSL2 x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Tue Aug 23 17:32:20 CEST 2022 System load: 0.0 Processes: 8 Usage of /: 0.4% of 250.98GB Users logged in: 0 Memory usage: 0% IPv4 address for eth0: 172.20.23.145 Swap usage: 0% stdu@sadira034:~$ echo $SHELL /bin/bash
- Get some basic information about your new
Ubuntu
installationstdu@sadira034:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04 LTS Release: 20.04 Codename: focal stdu@sadira034:~$ uname -a Linux sadira034 5.10.16.3-microsoft-standard-WSL2 #1 SMP Fri Apr 2 22:23:49 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux stdu@sadira034:~$ cat /proc/version Linux version 5.10.16.3-microsoft-standard-WSL2 (oe-user@oe-host) (x86_64-msft-linux-gcc (GCC) 9.3.0, GNU ld (GNU Binutils) 2.34.0.20200220) #1 SMP Fri Apr 2 22:23:49 UTC 2021 stdu@sadira034:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sdb 251G 1.1G 238G 1% / tmpfs 6.2G 0 6.2G 0% /mnt/wsl tools 472G 112G 361G 24% /init none 6.2G 0 6.2G 0% /dev none 6.2G 4.0K 6.2G 1% /run none 6.2G 0 6.2G 0% /run/lock none 6.2G 0 6.2G 0% /run/shm none 6.2G 0 6.2G 0% /run/user tmpfs 6.2G 0 6.2G 0% /sys/fs/cgroup drivers 472G 112G 361G 24% /usr/lib/wsl/drivers lib 472G 112G 361G 24% /usr/lib/wsl/lib C:\ 472G 112G 361G 24% /mnt/c D:\ 480G 2.6G 478G 1% /mnt/d
- Get some disk usage information about your
WSL
installation- From Windows, the installed files are located in
C:\Users\jypeter\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
- From (inside) WSL, the installed files are in
/mnt/c/Users/jypeter/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/
stdu@sadira034:/mnt/c/Users/jypeter/AppData/Local/Packages$ find /mnt/c/Users/jypeter/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/ -type f -print /mnt/c/Users/jypeter/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/LocalState/ext4.vhdx /mnt/c/Users/jypeter/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/Settings/roaming.lock /mnt/c/Users/jypeter/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/Settings/settings.dat /mnt/c/Users/jypeter/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/SystemAppData/Helium/User.dat /mnt/c/Users/jypeter/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/SystemAppData/Helium/User.dat.LOG1 /mnt/c/Users/jypeter/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/SystemAppData/Helium/User.dat.LOG2 /mnt/c/Users/jypeter/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/SystemAppData/Helium/UserClasses.dat /mnt/c/Users/jypeter/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/SystemAppData/Helium/UserClasses.dat.LOG1 /mnt/c/Users/jypeter/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/SystemAppData/Helium/UserClasses.dat.LOG2 stdu@sadira034:/mnt/c/Users/jypeter/AppData/Local/Packages$ ls -lh /mnt/c/Users/jypeter/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/LocalState/ext4.vhdx -rwxrwxrwx 1 root root 1.2G Aug 24 11:37 /mnt/c/Users/jypeter/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/LocalState/ext4.vhdx
- Note: location of the vhdx swap file:
- From windows:
C:\Users\jypeter\AppData\Local\Temp\swap.vhdx
- From WSL:
stdu@sadira034:~$ ls -lh /mnt/c/Users/jypeter/AppData/Local/Temp/swap.vhdx -rwxrwxrwx 1 root root 63M Aug 24 14:52 /mnt/c/Users/jypeter/AppData/Local/Temp/swap.vhdx
- Update Ubuntu with:
sudo apt update && sudo apt upgrade
stdu@sadira034:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04 LTS Release: 20.04 Codename: focal stdu@sadira034:~$ sudo apt update && sudo apt upgrade [sudo] password for stdu: Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB] Get:2 http://archive.ubuntu.com/ubuntu focal InRelease [265 kB] [...] 278 upgraded, 32 newly installed, 0 to remove and 0 not upgraded. Need to get 174 MB of archives. After this operation, 305 MB of additional disk space will be used. Do you want to continue? [Y/n] Y [...] stdu@sadira034:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.4 LTS Release: 20.04 Codename: focal stdu@sadira034:/usr/lib/wsl/drivers$ cat /etc/*release* DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04.4 LTS" NAME="Ubuntu" VERSION="20.04.4 LTS (Focal Fossa)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 20.04.4 LTS" VERSION_ID="20.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=focal UBUNTU_CODENAME=focal
- More details about updating WSL and/or Ubuntu (you can safely skip this for now)
- Update the Linux kernel used by WSL, after stopping the running WSL instances
PS C:\> wsl --status Distribution par défaut : Ubuntu Version par défaut : 2 La dernière mise à jour effectuée du Sous-système Windows pour Linux date du 23/08/2022 Les mises à jour WSL automatiques sont activées. Version du noyau : 5.10.16 PS C:\> wsl -l -v NAME STATE VERSION * Ubuntu Running 2 PS C:\> wsl --terminate Ubuntu PS C:\> wsl -l -v NAME STATE VERSION * Ubuntu Stopped 2 PS C:\> wsl --update Recherche de mises à jour en cours... Veuillez patienter Téléchargement de mises à jour en cours... Veuillez patienter. Installation en cours des mises à jour... Veuillez patienter Cette modification sera effective au prochain redémarrage complet de WSL. Pour forcer un redémarrage, exécutez « wsl --shutdown ». Version du noyau : 5.10.102.1 PS C:\> wsl --status [...] Version du noyau : 5.10.102.1 PS C:\> wsl cat /proc/version Linux version 5.10.102.1-microsoft-standard-WSL2 (oe-user@oe-host) (x86_64-msft-linux-gcc (GCC) 9.3.0, GNU ld (GNU Binutils) 2.34.0.20200220) #1 SMP Wed Mar 2 00:30:59 UTC 2022
After the base installation
Once you have completed the base installation steps, you'll get a Ubuntu machine, with a root and user account (pre-configured to use sudo
for commands that need root access) and lots of pre-installed applications (but no graphics).
Opening a terminal
- Check the next sections to find out the different ways to open terminals
- Opening the first terminal will start WSL+Ubuntu
- Closing all terminals will not stop WSL+Ubuntu. Read the rebooting WSL section if you need a clean start of WSL without rebooting Windows
Having a terminal you can efficiently interact with is the basis of your future work with WSL+Ubuntu! You can optionally read the ConEmu vs Hyper vs Terminus vs MobaXTerm Terminator vs Ubuntu WSL blog if you really want more details
The default terminal
The Default WSL+Ubuntu terminal is basically a bash shell running inside a regular Windows cmd
text console. You do not need to have an X server running to use it!
There are several ways to open a default terminal:
- Select Ubuntu from the
Start
menu - Click on the Ubuntu icon on the task bar
- if you don't have a Ubuntu icon on the task bar yet: right-click on the Ubuntu icon (in the
Start
menu) → More → Pin to the task bar - to open more terminals: right-click on the Ubuntu icon on the task bar → Ubuntu
- Type
ubuntu
+<Enter> orwsl
+<Enter>
in the (Cortana) Search field on the task bar
Copy/paste in the default terminal
Follow the steps in Copy and Paste arrives for Linux/WSL Consoles and you will then be able to copy/paste by using Shift+Ctrl+C/V
- The QuickEdit mode should already be selected by default and you can also:
- select text with the left mouse button
- paste the selected text with the right mouse button (click twice after a new selection)
The WSLtty terminal
- This is the recommended (by JYP) option for now
- If you can't open a terminal after Windows upgrades from WSL to WSL v2, get and install the latest version of WSLtty !
WSLtty allows you to use the efficient Mintty as a terminal for WSL. You do not need to have an X server running to use it!
- Download and execute the latest 64bit installer (the most recent
wsltty-*-install-x86_64.exe
file) - After installing, you will get several ways to open a terminal:
- Double-click on the
WSL terminal
icon on the desktop U
⇒Ubuntu terminal
andW
⇒WSL Terminal
in theStart
menu- There is also a
W
⇒WSLtty
folder, than you don't really need
- Open a terminal and right-click in it to check the available options
- You can access even more options with CTRL+right-click
- You can cycle between the open WSLtty terminals with CTRL+Tab and Shift+CTRL+Tab
- Technical stuff (on the Mintty wiki)
The new Windows Terminal
Microsoft is working on a powerful replacement of the old cmd
terminal! Check Windows Terminal, Console and Command-Line @ github
Note: the Windows Terminal looks really promising, but will be nice when there is a GUI for editing the options (rather the editing a json file with a text editor…) and a way to select xterm-style copy-pasting. See Feature request: add xterm-style select/copy/paste options
Terminals started from Linux
You can install additional graphical terminals inside the Linux running in WSL, but you will need to have a running X server if you want to open them. In these terminals, the usual Linux copy/paste rules will apply!
xterm
- Install with:
apt-get install xterm
- Start from another terminal with:
xterm &
xfce-terminal
- Install with:
apt-get install xfce4-terminal
- Start from another terminal with:
xfce4-terminal &
Location of the files
You can optionally read the detailed WSL File System Support page if you want to (try to) understand how things work and how both systems can share files.
Linux files seen from Windows
- You can access the Linux files in
/
from Windows by opening the virtual\\wsl$
path in the Windows explorer (since Windows build 18342)- Your Linux home directory is located in
\\wsl$\Ubuntu\home\<your_login>
- The content of the Ubuntu
/
directory is actually located in the following hidden sub-directory of the user's Windows home directory:C:\Users\<your_login>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
\\wsl$
path)
If you need to easily update files from both Linux and Windows, put them in a regular Windows directory (not in the hidden directory mentioned above, where the Linux system is installed)
Windows files seen from Linux
Note: When you are in an explorer window, you can open a Windows terminal with Linux by holding Shift and right-clicking on a directory and choosing Linux in the context menu.
The Windows partitions are mounted under /mnt
in Linux:
$ df -h Filesystem Size Used Avail Use% Mounted on rootfs 111G 30G 82G 27% / none 111G 30G 82G 27% /dev none 111G 30G 82G 27% /run none 111G 30G 82G 27% /run/lock none 111G 30G 82G 27% /run/shm none 111G 30G 82G 27% /run/user C: 111G 30G 82G 27% /mnt/c H: 366G 138M 366G 1% /mnt/h
Read the Mounting disks and network drives section if you want to access remote server disks on your local network, or just want to access USB disks/sticks on your local computer.
Misc
- The
wslpath
command can be used to make Windows↔Linux path conversion
Linux version installed
$ date Thu Feb 20 11:18:57 CET 2020 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.4 LTS Release: 18.04 Codename: bionic $ cat /proc/version Linux version 4.4.0-18362-Microsoft (Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) ) #476-Microsoft Fri Nov 01 16:53:00 PST 2019 $ uname -a Linux some_machine_name 4.4.0-18362-Microsoft #476-Microsoft Fri Nov 01 16:53:00 PST 2019 x86_64 x86_64 x86_64 GNU/Linux
Ubuntu packages installed
$ dpkg --list Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-=====================-===============-===============-================================================ ii accountsservice 0.6.45-1ubuntu1 amd64 query and manipulate user account information ii acl 2.2.52-3build1 amd64 Access control list utilities ii acpid 1:2.0.28-1ubunt amd64 Advanced Configuration and Power Interface event ii adduser 3.116ubuntu1 all add and remove users and groups [...] ii xterm 330-1ubuntu2 amd64 X terminal emulator ii xxd 2:8.0.1453-1ubu amd64 tool to make (or reverse) a hex dump ii xz-utils 5.2.2-1.3 amd64 XZ-format compression utilities ii zerofree 1.0.4-1 amd64 zero free blocks from ext2, ext3 and ext4 file-s ii zlib1g:amd64 1:1.2.11.dfsg-0 amd64 compression library - runtime $ dpkg --list > /mnt/c/Scratch/jyp/pkg_initial_201601.txt $ wc -l /mnt/c/Scratch/jyp/pkg_initial_201601.txt 628 /mnt/c/Scratch/jypeter/pkg_initial_201601.txt
Full (example) list of installed packages: pkg_initial_201601.txt
Update ubuntu
Use the following to update your ubuntu installation:
$ sudo -s $ apt-get update $ apt-get upgrade
Managing WSL
This is just place to store some technical information, that will probably not be needed by most people
- News in the Windows Command Line Tools For Developers WSL blog
Getting ready for some real work
sudo -s
), or sudo
when executing the apt*
installation commands, and othe admin commands
Specifying correctly the display language
WSL will automatically try to use in the terminals the same language as the one used by the Windows 10 computer (ref), but this could lead later to some difficult to debug side-effects when you connect to remote Linux servers (e.g. the sort
command may give different results !).
It is safer to force the system to use a standard English version
$ sudo update-locale LANG=en_US.UTF8 $ echo $LANG en_US.UTF8
Package management
apt-get tutorial if you are more used to Fedora/RedHat yum
/dnf
and rpm packages
Useful commands
dpkg -l
: list installed packagesdpkg -L package_name
: list files installed frompackage_name
dpkg -S path/command
: name of the package used to installpath/command
Example
$ dpkg -l | grep -i wsl ii ubuntu-wsl 1.417.3 amd64 Ubuntu on Windows tools - Windows Subsystem for Linux integration ii wslu 2.3.2-0ubuntu2~18.04.3 all collection of utilities for the Windows 10 Linux Subsystem $ dpkg -L wslu /. /etc /etc/profile.d /usr /usr/bin /usr/bin/wslfetch /usr/bin/wslsys /usr/bin/wslupath /usr/bin/wslusc /usr/bin/wslvar /usr/bin/wslview [...]
Using an X server
You will need to have an X server running locally on your Windows 10 machine if you want to display graphics generated by the Linux running locally, or on a remote server. Applications running in text mode only (e.g. vi
) do not require a running X server.
You will get a Can't open display error if no server is running (even if the DISPLAY
variable is correctly defined)
your_login@your_machine:~$ echo $DISPLAY localhost:0.0 your_login@your_machine:~$ xterm & xterm: Xt error: Can't open display: localhost:0.0 [Everything is fine after starting a local X server] jyour_login@your_machine:~$ xterm & [1] 55
Installing an X server
Read the Installing and configuring an X server page
Configuration (in your local Linux account)
- Set the
DISPLAY
variable in the shell by hand, or automatically in the shell configuration file(s):- bash shell:
export DISPLAY=localhost:0.0
Can be defined in the~/.bashrc
file - tcsh shell:
setenv DISPLAY localhost:0.0
Can be defined in the~/.login
, or the~/.cshrc
file
- Warning!
export DISPLAY=:0.0
will also work for using graphics locally, but will fail when trying to use graphics on a remote computer, with aconnect /tmp/.X11-unix/X0: No such file or directory
error message (source)
X server and WSL2 : check
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0.0
in How to install Ubuntu 20.04 on Windows using WSL
Adding useful packages
Reminder: you need to use the root
account (with sudo -s
) in order to use the following commands
$ apt-get install gcc libglu1-mesa mesa-utils libsm6 x11-apps # Check the "Terminals started from Linux" section # if you need to install extra terminals # Install emacs $ apt-get install emacs # Install pdf (evince) and image (eog) viewers $ apt-get install evince eog # Install wslu to improve the Windows<->Linux communication $ apt-get install wslu # The packages below are useful for dealing with climate data # in netCDF files (and are also requirements of CLIMAF) $ aptitude install imagemagick nco cdo netcdf-bin ncview exiv2
Updating WSL and ubuntu
WSL
Nothing to do! WSL is automatically updated, provided you have enabled the Get updates for other Microsoft products option
Updating ubuntu
The Ubuntu 16.04.3 LTS
that was initially installed from the Windows Store when the test computer was running Win 10 1709
was automatically updated to Ubuntu 18.04.2 LTS
when the computer was updated to Win 10 1809
.
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.2 LTS Release: 18.04 Codename: bionic
We also ran the do-release-upgrade
command to complete the upgrade (from 16.04 to 18.04) [ More info from WSL team - more info from Ubuntu ]
And we then ran the usual upgrade commands. These commands can be run any time for updating the installed packages
$ sudo -s $ apt-get update $ apt-get upgrade
Full list of the resulting installed packages, generated with
$ dpkg --list >$ dpkg --list > /mnt/h/Scratch/jyp/pkg_190221.txt $ wc -l /mnt/h/Scratch/jyp/pkg_190221.txt 578 /mnt/h/Scratch/jyp/pkg_190221.txt
Upgrading ubuntu
You can skip this section if you have just installed ubuntu, since you are already running the latest stable release available
The updates are for maintaining the same version of ubuntu (e.g. you go from version 18.04.2
to 18.04.5
), while upgrades are for going from one major version to the next (e.g 16.xx
⇒ 18.xx
⇒ 20.xx
). We try to only use the stable major releases, that have an even version number.
We use the LTS versions (Long Time Support) to ensure even more stability, which means that we will get updates of a given major release for quite some time after the next major release is available, so it is not mandatory to updgrade ubuntu if you are still receiving updates for the release you use
There should not be any risk, but it may be a good idea to create a backup of your current ubuntu before upgrading it!
Use sudo
for each command below, or just become root by using sudo su -
- before the Linux upgrade:
- Check how much space is left on
C:
- make sure you have a network connection
- read the official WSL Upgrading your distribution instructions
- Launch the upgrade with the
do-release-upgrade
command and follow the instructions- if you get a There is no development version of an LTS available message, use
do-release-upgrade -d
- if you get a Please install all available updates for your release before upgrading message, use
apt-get dist-upgrade
and then trydo-release-upgrade -d
again (see How to Solve the Upgrade Ubuntu Install Updates Error) - if you get
sleep: cannot read realtime clock: Invalid argument
error, temporarily replace thesleep
binary with an executable empty file. Do not forget to restore the original sleep command after the upgrade!!# sleep 1 sleep: cannot read realtime clock: Invalid argument # mv /bin/sleep /bin/sleep.back # ls -l /bin/sleep.back -rwxr-xr-x 1 root root 35000 Jan 18 2018 /bin/sleep.back # touch /bin/sleep # chmod +x /bin/sleep # sleep 1 #
- Note: you may have to use the empty sleep command trick again, if the sleep command itself is updated and breaks the upgrading process again. Do not forget to restore the original sleep command after the upgrade!!
[...] Restarting services possibly affected by the upgrade: cron: stopping...sleep: cannot read realtime clock: Invalid argument dpkg: error processing package libpam0g:amd64 (--configure): installed libpam0g:amd64 package post-installation script subprocess returned error exit status 1 E: Sub-process /usr/bin/dpkg returned an error code (1) # ls -l /bin/sleep -rwxr-xr-x 1 root root 39256 Sep 5 2019 /bin/sleep # mv /bin/sleep /bin/sleep.back2 # touch /bin/sleep # chmod +x /bin/sleep #
- Do not forget to restore the correct
sleep
executable, if you had to move it# ls -l /bin/sleep* -rwxr-xr-x 1 root root 0 Aug 23 23:57 /bin/sleep -rwxr-xr-x 1 root root 35000 Jan 18 2018 /bin/sleep.back -rwxr-xr-x 1 root root 39256 Sep 5 2019 /bin/sleep.back2 # cp -p /bin/sleep.back2 /bin/sleep # ls -l /bin/sleep* -rwxr-xr-x 1 root root 39256 Sep 5 2019 /bin/sleep -rwxr-xr-x 1 root root 35000 Jan 18 2018 /bin/sleep.back -rwxr-xr-x 1 root root 39256 Sep 5 2019 /bin/sleep.back2
Cleaning up things
Advanced configuration
Get Linux configuration files
- You can either adapt your existing Linux configuration files (
.profile
,.bashrc
, …) from another Linux computer, or download some example files in your WSL home directory and use (and improve) them as suggested below (or as you wish)$ cd $ scp -pr <your_login>@ssh1.lsce.ipsl.fr:/home/users/jypeter/WSL_config .
- You get a default
.bashrc
file in your home directory when your WSL account is created. Add the following line at the end of~/.bashrc
to use what is defined in the downloadedWSL_config
directory:
source ~/WSL_config/bashrc_extra.sh
- If you use the emacs text editor, you can use your own
.emacs
configuration file, or get an example configuration file the following way:$ cd $ ln -s WSL_config/emacs .emacs
- Font configuration (type, size, …):
- You can either copy the full
.ssh
directory of your Linux account, or just get the private key files:$ cd $ scp -pr <your_login>@ssh1.lsce.ipsl.fr:.ssh .
- Make sure you also read the ssh, agent and keys related questions section below!
ssh, agent and keys related questions
This assumes that you have already created a private/public ssh key pair and that the private key is available somewhere in the Windows 10 computer
ssh from WSL
Authorizing ssh to use old dsa keys
dsa ssh keys are disabled by default (becoming obsolete). ssh
will ask for your password even if you have a ~/.ssh/id_dsa
file. ssh -v
will print Skipping ssh-dss key /home/<your_login>/.ssh/id_dsa - not in PubkeyAcceptedKeyTypes
. The solution is to generate a new couple of public/private keys not based on dsa encryption, or to use the user ssh config
file to authorize dsa (source)
- Add
PubkeyAcceptedKeyTypes +ssh-dss
to~/.ssh/config
(before theHOST
sections) - Make sure the config file has the correct access rights:
chmod 600 config
Using Putty Pageant as an ssh agent
This assumes that you have installed the full Putty package (with the msi installer), converted your private ssh key with PuTTYgen
, and unlocked the converted ssh private key in Pageant.
The converted ssh private key is located in a Windows 10 folder
- Download the required binaries from the weasel-pageant github page and extract them to a Windows directory, e.g.
C:\Utils\weasel-pageant-x.x
- Add the following line to your
~/.bashrc
file:
eval $(/mnt/c/Utils/weasel-pageant-x.x/weasel-pageant -rb -a $HOME/.weasel-pageant.sock)
- This is done by default in the
~/WSL_config/bashrc_extra.sh
if you have downloaded and adapted it
- Open a new terminal:
- Type
ssh-add -l
: it will display eitherThe agent has no identities
, or as many lines as you have entered keys in Pageant - Type
ssh user@host
to connect to a computer where you have your public key
Note: the other similar solutions are ssh-agent-wsl (the key is stored in the Windows ssh-agent instead of Pageant) or wsl-ssh-pageant
Using Ubuntu as an ssh-agent
The ssh key (and other ssh settings) are in the ~/.ssh
directory of your WSL+Ubuntu account
This is the most simple setting, but there will be one running ssh-agent per terminal, and the key will be stored independently for each terminal (which means that you will have to type ssh-add
and your pass-phrase for each terminal)
- It's not possible by default to add a key to ssh-agent ('ssh-add' will print
Could not open a connection to your authentication agent
) - If you want to use
ssh-add
in a terminal, you first need to typeeval `ssh-agent -s`
in the (oreval $(ssh-agent)
)- In that case, it's just easier to add
eval $(ssh-agent)
to the.bashrc
file!- This is done by default in the
~/WSL_config/bashrc_extra.sh
if you have downloaded and adapted it
Notes & TODO
- See if a solution appears for WSL: Keeping ssh private key accessible as long as I don't restart Windows 10 (like the behaviour of pageant)
- See if we can use something from Sharing SSH keys between Windows and WSL 2
ssh to WSL
Maybe check OpenSSH-Server connection issues
Maybe it could be useful to do a ssh
from the Win10 part of the machine to the WSL part, and from outside the machine to the WSL part
It would probably already be enough to enable the ssh server on Win10 (the ssh 1709 release beta features are now officially in Win10)
Creating shortcuts to Linux programs on the Windows desktop
- Install wslu (A collection of utilities for WSL) if it is not already installed
apt-get install wslu
- You can create a shortcut by using
wslusc
in any Linux terminal- e.g. you can create a shortcut on the Windows desktop to start emacs (in WSL!) with:
wslusc -g emacs
- This will make it easier to start emacs, but since this is a graphical Linux application, you need to have an X server running before you click on the emacs shortcut!
- You can optionally get some information about the technical details
Mounting disks and network drives
By default, the local disks and the external USB disks available (and decrypted!) when WSL is started (i.e. when the first WSL terminal is opened) are automatically available (mounted) in /mnt
: the content of C:\
is available in /mnt/c
, etc… The list of available disks is refreshed when the Windows session is restarted (the user logs out and in, or Windows is rebooted) or when just WSL is restarted.
Extra local disks or network drives (what you can access by opening \\dfshost\dfs\
in the file explorer when you are on the LSCE network) can be either mounted on the fly with the mount
command, or automatically by configuring the /etc/fstab
file.
You will access the network drives with the access rights you have in the current Windows session (and you may have to access the drives in Windows before you can mount them in WSL)
Warning! In all cases, the owner, groups and permissions displayed may not be accurate (but the actual access rights will apply).
- the user/group of the files may appear as
your_login
/your_login
orroot
/root
. Example of a local file belonging to the current Windows jypeter user, and a system file$ ls -l /mnt/c/Users/jypeter/Desktop/File_on_Desktop.txt -rwxrwxrwx 1 jypeter jypeter 0 Jan 21 11:50 /mnt/c/Users/jypeter/Desktop/File_on_Desktop.txt $ ls -l /mnt/c/Windows/notepad.exe -r-xr-xr-x 3 jypeter jypeter 181248 Mar 19 2019 /mnt/c/Windows/notepad.exe
- the access rights may appear as
rwxrwxrwx
even if the actual rights are more restrictive. Example after mounting the LSCE/home/scratch01
disk# File access rights seen from WSL+Ubuntu $ ls -l /mnt/scratch01/jypeter/Chrome_backup.zip -rwxrwxrwx 1 root root 2755154 Jan 13 15:10 /mnt/scratch01/jypeter/Chrome_backup.zip # Actual access rights (on the Linux server) >ls -l /home/scratch01/jypeter/Chrome_backup.zip -rw-r--r-- 1 jypeter lsce 2755154 Jan 13 15:10 /home/scratch01/jypeter/Chrome_backup.zip # You can't change the access rights from WSL+Ubuntu, but you can remove a file, or create a new one $ chmod 600 /mnt/scratch01/jypeter/Chrome_backup.zip chmod: changing permissions of '/mnt/scratch01/jypeter/Chrome_backup.zip': Operation not permitted $ rm /mnt/scratch01/jypeter/Chrome_backup.zip $ ls -l /mnt/scratch01/jypeter/Chrome_backup.zip ls: cannot access '/mnt/scratch01/jypeter/Chrome_backup.zip': No such file or directory $ touch /mnt/scratch01/jypeter/new_file_from_wsl.txt jypeter@lsce5203:/mnt/scratch01/jypeter$ ls -l /mnt/scratch01/jypeter/new_file_from_wsl.txt -rwxrwxrwx 1 root root 0 Jan 21 11:37 /mnt/scratch01/jypeter/new_file_from_wsl.txt # The new file has the correct (default) access rights on the Linux server >ls -l /home/scratch01/jypeter/new_file_from_wsl.txt -rw-r--r-- 1 jypeter lsce 0 Jan 21 11:37 /home/scratch01/jypeter/new_file_from_wsl.txt
Enabling metadata
Some access rights handling can be slightly improved by automatically enabling the metadata
mount option. This will allow you to use chmod
/chown
on local NTFS disks (disks directly connected to your computer, e.g. /mnt/c/Users/your_login
).
- become root in a terminal with:
sudo -s
- create a
/etc/wsl.conf
with the following content:[automount] options = "metadata"
You need to restart WSL+ubuntu to activate the new content of /etc/wsl.conf
. See below an example of the mount -l
output:
- Before:
C: on /mnt/c type drvfs (rw,noatime,uid=1000,gid=1000,case=off)
- After enabling metadata:
C: on /mnt/c type drvfs (rw,noatime,uid=1000,gid=1000,metadata,case=off)
Optional: more details about wsl.conf
in WSL launch settings, How to use wsl.conf and metadata and access rights management
On-the-fly mount
You have to create a mount point in the existing /mnt
directory and then use the mount
command
# Must be root for most 'mount' related commands $ sudo -s # Create the mount point (once), e.g. for accessing /home/scratch01 on the local LSCE servers # This works when the Windows 10 computer is on the LSCE network $ mkdir /mnt/scratch01 # Mount the remote disk $ mount -t drvfs '\\dfshost\dfs\scratch01' /mnt/scratch01 # List the mounted disks $ mount -l [...] \\dfshost\dfs\scratch01 on /mnt/scratch01 type drvfs (rw,relatime,case=off) # Unmount the disk, or just shutdown Windows or WSL when you are finished $ umount /mnt/scratch01
If you connect a USB disk/stick and windows sees it as a new J:\
drive, you can also manually mount it
$ sudo -s # Create the mount point (once) $ mkdir /mnt/j # Mount the USB disk $ mount -t drvfs J: /mnt/j # Unmount the disk, or just shutdown Windows or WSL when you are finished $ umount /mnt/j
Automatic mount
The disks defined in /etc/fstab
will be automatically mounted when you start WSL and if they are actually accessible from your Windows session (e.g. \\dfshost\dfs
can only be accessed from the LSCE network)
You need to add 1 line per mount point to /etc/fstab
, and create (once) the directories that will be used for mounting the disks
$ sudo -s # Create the mount points (once) # The example below is to access the LSCE /home/users and /home/scrath01 disks $ mkdir /mnt/users /mnt/scratch01 # Make a backup copy of /etc/fstab before modifying it (for safety reasons!) $ cp -p /etc/fstab /etc/fstab.bak # Add lines to /etc/fstab associating mount points and directories $ cat /etc/fstab LABEL=cloudimg-rootfs / ext4 defaults 0 0 \\dfshost\dfs\users /mnt/users drvfs defaults 0 0 \\dfshost\dfs\scratch01 /mnt/scratch01 drvfs defaults 0 0 # Try to mount all the disks in /etc/fstab $ mount -a # Check the result $ mount -l [...] \\dfshost\dfs\users on /mnt/users type drvfs (rw,relatime,case=off) \\dfshost\dfs\scratch01 on /mnt/scratch01 type drvfs (rw,relatime,case=off)
Accessing remote file systems with sshfs
It seems this can be done with a combination of WinFsp and SSHFS-Win (see SSHFS remote directory mounting syntax for details
Extra resources
Useful mount
options:
mount -a
(must be root): mount everything specified in/etc/fstab
umont /mnt/scratch01
(must be root): unmount the disk accessible through/mnt/scratch01
mount -l
: list all the mounted disks and the mount options (useful when you are using the default mount options and want to know which options were actually applied)
Useful links (used for writing this section):
- Chmod/Chown WSL Improvements (the new metadata option)
Rebooting WSL
It is not possible to stop or reboot WSL like a regular Linux computer
shutdown -r now
will generate an error message- WSL keeps on running even when all the Linux terminals are closed
Shutting down or rebooting the Windows computer will of course stop WSL but it's useful to be able to just stop/restart WSL in order to:
- force WSL to recognize new disk drives and make them available as
/mnt/<new_drive_letter
- force WSL to recognize drives that were still encrypted when the first WSL terminal was opened
WSL can be stopped the following way. Warning: all the open terminals and running processes will be terminated!
- from a Windows terminal (
cmd
,PowerShell
, … no need to run as administrator):- Get the name of the installed (and running) Linux:
wsl --list --verbose
- Stop this instance of Linux (e.g. if it is named Ubuntu):
wsl --terminate Ubuntu
- or Stop all the currently running Linux distributions:
wsl --shutdown
Creating a backup of the Linux running in WSL
There are several types of WSL related directories that you may want to back up:
- Your Linux home directory (
/home/<your_login>
), or some specific sub-directories of the Ubuntu running in WSL (sub-directories of/
): all these files are located in a hidden sub-directory of you Windows directory, and the best way to save them is probably to create a tar file from Linux, and put this tar file in a specific Windows WSL backup folder (we will use below the directory/mnt/c/Scratch/<your_login>
orc:\Scratch\<your_login>
)$ cd /home $ du -sh $USER 232K <your_login> # We assume below that there is an existing /mnt/c/Scratch/<your_login>/ directory # It's a WINDOWS directory C:\Scratch\<your_login> $ tar cfz /mnt/c/Scratch/$USER/${USER}_home_`date +%y%m%d_%H%M`.tgz $USER # Check the size of the new (and existing old) backup(s) $ ls -ltr /mnt/c/Scratch/$USER/${USER}_*.tgz 81K Jan 21 2020 /mnt/c/Scratch/<your_login>/<your_login>_home_200121.tgz 93K Aug 22 2020 /mnt/c/Scratch/<your_login>/<your_login>_home_200822_1151.tgz 95K Feb 24 12:09 /mnt/c/Scratch/<your_login>/<your_login>_home_210224_1209.tgz
- Regular Windows folders where you store data used by WSL: you can use
tar
in a Linux terminal, as above, or use any usual way of backing up Windows files (drag and drop, some specific backup software)
- The full Linux/Ubuntu installation running in WSL (based on How can I back up my WSL distros?). The following steps will save the full installation in a tar file, that can be used later for restoring the full installation (restoration not tested yet)
- Open a Windows terminal (preferably a PowerShell if you need easy copy/paste)
The Windows terminal is where you will type thewsl
commands shown below - Determine the name of the current Linux installation used in WSL (and see if it is running, and using WSL 1 or WSL 2)
> wsl --list --all Distributions du sous-système Windows pour Linux : Ubuntu (par défaut) > wsl --list --verbose NAME STATE VERSION * Ubuntu Running 1
-
> wsl --list --verbose NAME STATE VERSION * Ubuntu Running 1 > wsl --shutdown > wsl --list --verbose NAME STATE VERSION * Ubuntu Stopped 1
- Export the current Linux to a tar file:
> wsl --export Ubuntu C:\Scratch\<your_login>\<your_login>_ubuntu-<ubuntu_version>-full_<some_date>.tar
- You can optionally open a new terminal (this will start again WSL+Ubuntu) to get some information about the created file (size and number of saved files/directories), and compress it in order to save some disk space
$ cd /mnt/c/Scratch/<your_login> $ ls -ltrh *ubuntu*tar* 976M Jan 21 2020 <your_login>_200121.tar.gz 2.8G Aug 22 2020 <your_login>-16.04-full_200822.tar 3.4G Feb 24 14:06 <your_login>-20-04-1-full_210224.tar # Determine the number of files/directories in the backup $ tar tvf <your_login>-20-04-1-full_210224.tar | wc -l 112711 $ gzip *ubuntu*.tar $ ls -ltrh *ubuntu*tar* 976M Jan 21 2020 <your_login>_200121.tar.gz 1.2G Aug 22 2020 <your_login>-16.04-full_200822.tar.gz 1.8G Feb 24 14:06 <your_login>-20-04-1-full_210224.tar.gz
Restoring a WSL backup
Read How to Export and Import Your Linux Systems on Windows 10 and Export and Import WSL Linux Distro in Windows 10 and similar threads
Check if WSL Manager is maintained and can be useful
This assumes that you have followed the steps above to create a full backup of your Linux distribution in a ubuntu_<your_login>_<some_date>.tar
file. This file can theoretically be restored with:
wsl --import <DistributionName> <InstallLocation> ubuntu_<your_login>_<some_date>.tar
- Note: found a page mentioning that you should be in a terminal with admin rights when using
--import
- Can we use the same
<DistributionName>
(e.g.Ubuntu
) as the one we are trying to restore without first removing it withunregister
(Unregister and reinstall a distribution)? - If we use a new distribution name, it will probably not appear anymore in the Microsoft Store and will not be updated. Is this a problem?
- It seems we can use
<InstallLocation>
to install anywhere! What should we do if we want to restore to the default location (in the hidden directory)?- Can we install out of the current user's Windows folder?
- Can we install out of
C:\
?
- Can we restore (clone) a backed up Linux distribution on another Windows 10 computer for another user?
- if the default user (and its password) has to be changed, you probably have to follow the steps to reset the Linux password and find a way to create a new account when the
root
password is activated
Uninstalling WSL
Not too sure about this part…
- Make a backup of whatever you had in your Ubuntu home directory, and all the files and settings that are not in the
/mnt
directories - Find how to unregister Ubuntu on the Manage and configure Windows Subsystem for Linux page
- and then disable WSL???
Miscellaneous
Updating WSL 1 to WSL 2
Am I using WSL 1 or WSL 2 ?
If you have never used WSL on this computer (and for this user), WSL 2 will be installed directly when you follow the Base installation steps
If you are not sure if you are currently using WSL 1 or WSL 2, you can check Is there an easy (PowerShell?) way to get more information about WSL? has been answered, or make the following checks
wsl –update
will give the same output (i.e. the installed Linux kernel version) for both WSL 1 and WSL 2PS C:\Users\jypeter> wsl --update Recherche de mises à jour en cours... Veuillez patienter Aucune mise à jour n’est disponible. Version du noyau : 5.10.102.1
wsl –status
will display again the kernel version if you already have WSL 2, but will display a link to the WSL installation page if you are running WSL 1: https://aka.ms/wsl2-installPS C:\Users\jypeter> wsl --status Distribution par défaut : Ubuntu Version par défaut : 2 Activez la fonctionnalité Windows de plateforme de machine virtuelle et assurez-vous que la virtualisation est activée dans le BIOS. Pour plus d’informations, rendez-vous sur https://aka.ms/wsl2-install
Potentially useful stuff
- Determining from inside the running Linux if you are using WSL (or another type of virtual machine)
$ systemd-detect-virt wsl
Other WSL resources and links
-
- Very useful Microsoft blogs about Windows Console, Command-Line, Windows Subsystem for Linux, WSL, Linux
- Awesome-WSL: An Awesome collection of Windows Subsystem for Linux information, distributions, and tools
- Hands-On with WSL: Installation & New Features (five nice and useful articles)
[ PMIP3 Wiki Home ] - [ Help! ] - [ Wiki syntax ]