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:32]
jypeter [Base installation] Added the kernel update step
other:win10wsl [2022/08/25 15:57]
jypeter [Disk usage]
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
  
-FIXME+  * => 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, ...) 
 + 
 +<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 
 + 
 +stdu@sadira034:/​usr/​lib/​wsl/​drivers$ du -sh /​mnt/​c/​Windows/​System32/​DriverStore/​ 
 +9.1G    /​mnt/​c/​Windows/​System32/​DriverStore/</​code>​ 
 + 
 + 
 +=== Some important disk locations === 
 + 
 +  * Accessing **Windows files from Linux**: ''/​mnt/''​\\ e.g ''​C:​\''​ 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''​ 
 +      * <​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 1 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''​
  
-  * //Enough// space on ''​C:​\''​. Microsoft instructions say //The Windows Subsystem for Linux only runs on your system drive (usually this is your C: drive)// 
-    * 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 
-      * 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 
-      * 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:''​! 
-  * 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... 
-    * 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:''​ 
  
 ===== Base installation ===== ===== Base installation =====
other/win10wsl.txt · Last modified: 2023/12/06 13:24 by jypeter