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/24 15:55]
jypeter [Disk space] Added driver directory example
other:win10wsl [2022/08/26 07:21]
jypeter [Miscellaneous] Added a WSL 1 to WSL 2 section
Line 31: Line 31:
  
  
-==== Computer memory ​====+==== The basics before starting ​====
  
-FIXME+Once you have verified that your Windows is recent enough, you should also:
  
 +  * Install the [[other:​win10apps#​windows_terminal|Windows terminal]], because it will be one of the ways to open ''​Ubuntu''​ terminals, once ''​Ubuntu''​ is installed
 +  * 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...
 +    * Get some [[other:​newppl:​starting#​useful_documentation_for_beginners|basic Linux documentation]] if required
 +==== Computer CPU and memory ====
  
-==== Disk space ====+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**!
  
-<​code>​stdu@sadira034:​~$ ls -lh /mnt/c/Users/jypeter/AppData/​Local/​Temp/​swap.vhdx +  * You should be able to //play// with WSL even with 8 Gb of RAM, but 16 Gb is recommended 
--rwxrwxrwx 1 root root 63M Aug 24 14:52 /​mnt/​c/​Users/​jypeter/​AppData/​Local/​Temp/​swap.vhdx+  * 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... :-)
  
-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 
  
-stdu@sadira034:​~$ sudo apt update && sudo apt upgrade +==== Disk usage ====
-[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:​~$ 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 2.6G Aug 24 15:24 /​mnt/​c/​Users/​jypeter/​AppData/​Local/​Packages/​CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/​LocalState/​ext4.vhdx +  * The Linux installation(s) will be installed (and updated) on ''​C:\''​ 
-</​code>​+    * They can only be relocated to other partitions afterwards
  
-<code>stdu@sadira034:/​usr/​lib/​wsl/​drivers$ df -h | grep drivers +  * =We should **start with at least 10 Gb of free space on ''​C:\''​** (but more space is always better and safer) 
-drivers ​        ​472G ​ 116G  356G  25% /​usr/​lib/​wsl/​drivers+    * 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, ...)
  
-stdu@sadira034:/​usr/​lib/​wsl/​drivers$ du -sh /​usr/​lib/​wsl/​drivers+<WRAP center round alert 60%> 
 +FIXME The rather technical //Disk usage// sections below should be moved somewhere else! 
 +</​WRAP>​ 
 + 
 + 
 +=== How does it work? === 
 + 
 +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 71: Line 103:
 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 2] move 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''​ 
  
 ===== Base installation ===== ===== Base installation =====
Line 225: Line 270:
 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 964: Line 1027:
  
 ===== Miscellaneous ===== ===== Miscellaneous =====
 +
 +==== Updating WSL 1 to 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
 +
 +PS C:​\Users\jypeter>​ 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 24/08/2022
 +Les mises à jour WSL automatiques sont activées.
 +
 +Version du noyau : 5.10.102.1</​code>​
 +
 +==== 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