This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
other:win10wsl [2022/08/25 08:57] jypeter Added the 'basics' section |
other:win10wsl [2022/08/26 08:31] jypeter [Updating WSL 1 to WSL 2] Updated |
||
---|---|---|---|
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 | ||
+ | * 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 | ||
- | ==== Computer memory ==== | + | ==== Computer CPU and memory ==== |
- | FIXME | + | 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 space ==== | ||
- | <code>stdu@sadira034:~$ ls -lh /mnt/c/Users/jypeter/AppData/Local/Temp/swap.vhdx | + | ==== Disk usage ==== |
- | -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 | + | === Overview === |
- | -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 | + | * ''WSL'' is part of the Windows operating system and will be installed (and updated) on ''C:\'' |
- | [sudo] password for stdu: | + | * The Linux installation(s) will be installed (and updated) on ''C:\'' |
- | Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB] | + | * They can only be relocated to other partitions afterwards |
- | 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 | + | * => We should **start with at least 10 Gb of free space on ''C:\''** (but more space is always better and safer) |
- | -rwxrwxrwx 1 root root 63M Aug 24 14:52 /mnt/c/Users/jypeter/AppData/Local/Temp/swap.vhdx | + | * 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:~$ ls -lh /mnt/c/Users/jypeter/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/LocalState/ext4.vhdx | + | <WRAP center round alert 60%> |
- | -rwxrwxrwx 1 root root 2.6G Aug 24 15:24 /mnt/c/Users/jypeter/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/LocalState/ext4.vhdx | + | FIXME The rather technical //Disk usage// sections below should be moved somewhere else! |
- | </code> | + | </WRAP> |
- | <code>stdu@sadira034:/usr/lib/wsl/drivers$ df -h | grep drivers | ||
- | drivers 472G 116G 356G 25% /usr/lib/wsl/drivers | ||
- | stdu@sadira034:/usr/lib/wsl/drivers$ du -sh /usr/lib/wsl/drivers | + | === 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 78: | 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 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'' | ||
===== Base installation ===== | ===== Base installation ===== | ||
Line 232: | 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 971: | Line 1027: | ||
===== Miscellaneous ===== | ===== Miscellaneous ===== | ||
+ | |||
+ | ==== Updating WSL 1 to WSL 2 ==== | ||
+ | |||
+ | On a system where WSL 2 was installed directly | ||
+ | |||
+ | <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> | ||
+ | |||
+ | On a system where WSL 1 was initially installed | ||
+ | |||
+ | <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 | ||
+ | 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> | ||
+ | |||
+ | |||
+ | ==== 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 |