User Tools

Site Tools


other:win10wsl

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
other:win10wsl [2022/08/25 13:39]
jypeter [Computer CPU and memory]
other:win10wsl [2022/08/26 15:55]
jypeter [Updating WSL 1 to WSL 2] Improved
Line 36: Line 36:
  
   * Install the [[other:​win10apps#​windows_terminal|Windows terminal]], because it will be one of the ways to open ''​Ubuntu''​ terminals, once ''​Ubuntu''​ is installed   * Install the [[other:​win10apps#​windows_terminal|Windows terminal]], because it will be one of the ways to open ''​Ubuntu''​ terminals, once ''​Ubuntu''​ is installed
 +  * Know how to use copy-paste in a Powershell FIXME
 +  * It will be useful to be able to [[other:​win10config#​displaying_hidden_folders_and_files_and_the_files_extension|see hidden folders and files]]
   * Have at least some basic knowledge of Linux...   * Have at least some basic knowledge of Linux...
     * Get some [[other:​newppl:​starting#​useful_documentation_for_beginners|basic Linux documentation]] if required     * Get some [[other:​newppl:​starting#​useful_documentation_for_beginners|basic Linux documentation]] if required
Line 47: Line 49:
  
  
-==== Disk space ====+==== Disk usage ====
  
-<​code>​stdu@sadira034:​~$ ls -lh /​mnt/​c/​Users/​jypeter/​AppData/​Local/​Temp/​swap.vhdx +=== Overview ===
--rwxrwxrwx 1 root root 63M Aug 24 14:52 /​mnt/​c/​Users/​jypeter/​AppData/​Local/​Temp/​swap.vhdx+
  
-stdu@sadira034:~$ ls -lh /​mnt/​c/​Users/​jypeter/​AppData/​Local/​Packages/​CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/​LocalState/​ext4.vhdx +  * ''​WSL''​ is part of the Windows operating system and will be installed (and updated) on ''​C:\''​ 
--rwxrwxrwx 1 root root 1.2G Aug 24 15:20 /​mnt/​c/​Users/​jypeter/​AppData/​Local/​Packages/​CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/​LocalState/​ext4.vhdx+  * The Linux installation(s) will be installed (and updated) on ''​C:\''​ 
 +    * They can only be relocated to other partitions afterwards
  
-stdu@sadira034:~$ sudo apt update && sudo apt upgrade +  * => We should **start with at least 10 Gb of free space on ''​C:\''​** (but more space is always better and safer) 
-[sudo] password for stdu: +    * 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 filesupdates, ...)
-Get:1 http://​security.ubuntu.com/​ubuntu focal-security InRelease [114 kB] +
-Get:2 http://​archive.ubuntu.com/​ubuntu focal InRelease [265 kB] +
-[...] +
-278 upgraded32 newly installed0 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:​~$ ls -lh /mnt/c/Users/jypeter/​AppData/​Local/​Temp/​swap.vhdx +<WRAP center round alert 60%> 
--rwxrwxrwx 1 root root 63M Aug 24 14:52 /​mnt/​c/​Users/​jypeter/​AppData/​Local/​Temp/swap.vhdx+FIXME The rather technical ​//Disk usage// sections below should be moved somewhere else! 
 +</WRAP>
  
-stdu@sadira034:​~$ ls -lh /​mnt/​c/​Users/​jypeter/​AppData/​Local/​Packages/​CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/​LocalState/​ext4.vhdx 
--rwxrwxrwx 1 root root 2.6G Aug 24 15:24 /​mnt/​c/​Users/​jypeter/​AppData/​Local/​Packages/​CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/​LocalState/​ext4.vhdx 
-</​code>​ 
  
-<​code>​stdu@sadira034:/​usr/​lib/​wsl/​drivers$ df -h | grep drivers +=== How does it work? ===
-drivers ​        ​472G ​ 116G  356G  25% /​usr/​lib/​wsl/​drivers+
  
-stdu@sadira034:/​usr/​lib/​wsl/​drivers$ du -sh /​usr/​lib/​wsl/​drivers+WSL+Linux seems to use a combination of actual Windows files/​folders and ''​ext4''​ Linux partitions stored in ''​.vhdx''​ ([[https://​docs.microsoft.com/​en-us/​openspecs/​windows_protocols/​ms-vhdx/​83f6b700-6216-40f0-aa99-9fcb421206e2|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 [[https://​docs.microsoft.com/​en-us/​windows/​wsl/​vhd-size|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: 
 +    * [[https://​superuser.com/​questions/​1606213/​how-do-i-get-back-unused-disk-space-from-ubuntu-on-wsl2|How do I get back unused disk space from ubuntu on wsl2?]] 
 +    * [[https://​github.com/​microsoft/​WSL/​issues/​4699#​issuecomment-1136319012|WSL 2 should automatically release disk space back to the host OS]] 
 +      * [[https://​docs.microsoft.com/​en-us/​powershell/​module/​hyper-v/​optimize-vhd?​view=windowsserver2019-ps|Optimize-VHD]] 
 + 
 +=== Disks seen from Linux === 
 + 
 +The disks and partitions usage, as seen from Linux, can be displayed with ''​df -h''​ 
 + 
 +<​code>​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</​code>​ 
 + 
 +  * The ''​251G''​ //Size// of ''/''​ depends on the [[https://​docs.microsoft.com/​en-us/​windows/​wsl/​vhd-size|256G default size]] of the growing virtual disk where Linux is installed 
 +  * The ''/​mnt/​c''​ and ''/​mnt/​d''​ are the way to access the Windows ''​C:''​ and ''​D:''​ disks from Linux, and their //Size// is the actual size of the Windows disks 
 +  * Some //​Filesystems//​ like ''​drivers''​ are actually Windows file systems! 
 +    * <​code>​stdu@sadira034:/​usr/​lib/​wsl/​drivers$ du -sh /​usr/​lib/​wsl/​drivers
 9.1G    /​usr/​lib/​wsl/​drivers 9.1G    /​usr/​lib/​wsl/​drivers
  
Line 82: Line 104:
 9.1G    /​mnt/​c/​Windows/​System32/​DriverStore/</​code>​ 9.1G    /​mnt/​c/​Windows/​System32/​DriverStore/</​code>​
  
-FIXME 
  
-  * //Enough// space on ''​C:​\''​. Microsoft instructions say //The Windows Subsystem for Linux only runs on your system drive (usually this is your C: drive)// +=== Some important disk locations === 
-    Exporting a //simple// Ubuntu configuration (after doing everything from //Base installation//​ to //Advanced configuration//​ below) with the [[other:​win10wsl#​creating_a_backup_of_the_linux_running_in_wsl|wsl --export]] command generated a 2.7 Gb tar file (uncompressed),​ so it's probably good to **start with at least 3 Gb of free space on ''​C:​\''​** (and you always need to keep enough free space on ''​C:\''​ for regular Windows operation) + 
-    * The Linux ''/''​ and ''/​home''​ partitions will always be on ''​C:'',​ but the data files can be on any Windows disk/​partition (or external drive) of the computer +  ​Accessing ​**Windows files from Linux**: ''/​mnt/''​\\ e.g ''​C:​\'' ​is available in ''/​mnt/​c''​ 
-      * the Windows partitions will be available and accessible in ''/​mnt/''​, so you can store data on other partitions (e.g. the content of the Windows ​''​D:​\'' ​partition will be available in ''/​mnt/​d'' ​in Linux) + 
-    The files will be installed in **hidden partitions of the current user's directory on ''​C:\''​**: ​e.g. ''​C:​\Users\<your_login>''​. Other users of the same Windows 10 computer would have to install Ubuntu again, in their own user directory +  * Accessing ​**Linux ​files from the Windows Explorer**''​\\wsl$''​ 
-      Checking the properties of ''​C:​\Users\<​your_login>​'' ​will **not** report an accurate size and number of files, because lots of files and directories are hidden! On the test laptop, the reported size of the user backed up directory (with [[other:win10apps#​syncbackfree|SyncBackFree]]) was ~20 Gb (user data, WSL+Ubuntu, custom install of the CDAT 8.1 python distribution) + 
-      Be sure to monitor ​the remaining free space on ''​C:''​! +  ​WSL+Ubuntu installation:​ 
-  * Note: it seems that [[other:​win10wsl#​restoring_a_wsl_backup|wsl --import]] can restore a backed-up Linux to a user specified location. Maybe this can be used for moving ​Ubuntu... +    ​Main directory: ''​C:​\Users\your_login\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc''​ 
-    * Check [[https://github.com/MicrosoftDocs/WSL/issues/412|how ​to move the vhdx of wsl2 to other disk]] and [[https://github.com/microsoft/WSL/issues/4320|[WSL 2move VHD File]] for relocating a WSL (1 or 2) installation if you don't have enough space on ''​C:''​+    //vhdx// file: ''​C:​\Users\jypeter\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx''​ 
 +      ​<​code>​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</​code>​ 
 + 
 +  * Linux //​swap// ​(virtual memory) file: 
 +    * <​code>​stdu@sadira034:​~$ ls -lh /​mnt/​c/​Users/​jypeter/​AppData/​Local/​Temp/​swap.vhdx 
 +-rwxrwxrwx ​root root 63M Aug 24 14:52 /​mnt/​c/​Users/​jypeter/​AppData/​Local/​Temp/​swap.vhdx</​code>​ 
 + 
 + 
 +=== 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''​ 
 + 
 +==== Hyper-V requirements ==== 
 + 
 +WSL 2 needs the //Virtual Machine Platform// to be enabled on your computer. If you have never used WSL before, you can probably go directly ​to the [[other:​win10wsl#​base_installation|Base installation]] section ​and ''​wsl''​ should install everything correctly 
 + 
 +If you have problems, or if you are updating WSL 1 to WSL 2, use ''​systeminfo''​ to check the [[https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/reference/​hyper-v-requirements?​source=recommendations#​verify-hardware-compatibility|Hyper-V requirements]] 
 + 
 +If you get a ''​No'' ​for one of the ''​Hyper-V requirements'',​ check the //​virtualization//​ settings in your [[other:​bios#​entering_the_bios|computer BIOS]]
  
 ===== Base installation ===== ===== Base installation =====
Line 236: Line 278:
 Description: ​   Ubuntu 20.04.4 LTS Description: ​   Ubuntu 20.04.4 LTS
 Release: ​       20.04 Release: ​       20.04
-Codename: ​      ​focal</​code>​+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</​code>​
     * [[other:​win10wsl#​updating_wsl_and_ubuntu|More details about updating WSL and/or Ubuntu]] (you can safely skip this for now)     * [[other:​win10wsl#​updating_wsl_and_ubuntu|More details about updating WSL and/or Ubuntu]] (you can safely skip this for now)
  
Line 975: Line 1035:
  
 ===== Miscellaneous ===== ===== 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 [[other:​win10wsl#​base_installation|Base installation]] steps
 +
 +If you are not sure if you are currently using WSL 1 or WSL 2, you can check [[https://​github.com/​MicrosoftDocs/​WSL/​issues/​1599|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 2
 +    * <​code>​PS 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</​code>​
 +
 +  * ''​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-install
 +    * <​code>​PS 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</​code>​
 +
 +
 +=== Prerequisites ===
 +
 +  * If WSL 1 is already running, you should have no problem with the [[other:​win10wsl#​prerequisites|disk and memory requirements]]
 +  * For WSL 2, you also need to meet the [[other:​win10wsl#​hyper-v_requirements|Hyper-V requirements]]
 +
 +=== Updating! ===
 +
 +
 +[[https://​docs.microsoft.com/​en-us/​windows/​wsl/​install-manual#​step-3---enable-virtual-machine-feature|Activate the Virtual Machine Platform]] (just the //Step 3// instructions) and reboot the computer
 +
 +After rebooting, go back to the [[other:​win10wsl#​updating_wsl_1_to_wsl_2|Am I using WSL 1 or WSL 2 ?]] section above, and check that you are now using WSL 2
 +
 +==== Potentially useful stuff ====
  
   * Determining from **inside** the running Linux if you are using WSL (or another type of virtual machine)\\ <​code>​$ systemd-detect-virt   * Determining from **inside** the running Linux if you are using WSL (or another type of virtual machine)\\ <​code>​$ systemd-detect-virt
other/win10wsl.txt · Last modified: 2023/12/06 13:24 by jypeter