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/24 12:17] jypeter [Base installation] |
other:win10wsl [2022/09/07 15:01] jypeter [Restoring or relocating a Linux installation] Added unregistration step to complete the relocation |
||
---|---|---|---|
Line 3: | Line 3: | ||
[[other:index#windows_10_notes|Other Windows 10 related notes]] | [[other:index#windows_10_notes|Other Windows 10 related notes]] | ||
- | <note warning> | + | <WRAP center round important 60%> |
* What is described on this page was tested with [[https://docs.microsoft.com/en-us/windows/wsl/compare-versions#whats-new-in-wsl-2|WSL 2]].\\ **WSL 2** is available in [[https://docs.microsoft.com/en-us/windows/wsl/install-manual#step-2---check-requirements-for-running-wsl-2|Windows 11 or Windows 10, Version 1903, Build 18362 or later]] | * What is described on this page was tested with [[https://docs.microsoft.com/en-us/windows/wsl/compare-versions#whats-new-in-wsl-2|WSL 2]].\\ **WSL 2** is available in [[https://docs.microsoft.com/en-us/windows/wsl/install-manual#step-2---check-requirements-for-running-wsl-2|Windows 11 or Windows 10, Version 1903, Build 18362 or later]] | ||
- | * You can also check JYP's [[other:win10_wsl_1|original WSL 1 instructions]] | + | * You can also check JYP's [[other:win10_wsl_1|original WSL 1 instructions]] |
+ | * ...but even **if you need WSL 1, you should use this page for installing WSL, and then switch to WSL 1** with [[https://docs.microsoft.com/en-us/windows/wsl/basic-commands#set-default-wsl-version|--set-default-version]] or [[https://docs.microsoft.com/en-us/windows/wsl/basic-commands#set-wsl-version-to-1-or-2|--set-version]] | ||
* The user can choose to install Linux using **WSL 1 or WSL 2** | * The user can choose to install Linux using **WSL 1 or WSL 2** | ||
* **WSL 2 should be your default choice** | * **WSL 2 should be your default choice** | ||
* If you have doubts, check the [[https://docs.microsoft.com/en-us/windows/wsl/compare-versions|differences between WSL1 and WSL2]] and read [[https://docs.microsoft.com/en-us/windows/wsl/compare-versions#exceptions-for-using-wsl-1-rather-than-wsl-2|Exceptions for using WSL 1 rather than WSL 2]] before choosing | * If you have doubts, check the [[https://docs.microsoft.com/en-us/windows/wsl/compare-versions|differences between WSL1 and WSL2]] and read [[https://docs.microsoft.com/en-us/windows/wsl/compare-versions#exceptions-for-using-wsl-1-rather-than-wsl-2|Exceptions for using WSL 1 rather than WSL 2]] before choosing | ||
- | </note> | + | </WRAP> |
+ | |||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | The commands on this page have to be typed: | ||
+ | * either in **Windows PowerShell terminals** | ||
+ | * or in **bash terminals running in WSL** | ||
+ | It should be clear enough which type of terminal you have to use | ||
+ | </WRAP> | ||
Line 31: | Line 41: | ||
- | ==== Computer memory ==== | + | ==== The basics before starting ==== |
- | FIXME | + | Once you have verified that your Windows is recent enough, you should also: |
+ | * Your should really **install the [[other:win10apps#windows_terminal|Windows terminal]]**, because it will be one of useful the ways to open ''Ubuntu'' terminals, once ''Ubuntu'' is installed | ||
+ | * **Know how to use copy-paste** in: | ||
+ | * a //Windows Terminal//: [[https://docs.microsoft.com/en-us/windows/terminal/selection|Selecting text in Windows Terminal]] | ||
+ | * an old ''cmd'' command prompt or 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 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**! |
- | FIXME | + | * 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) on ''C:\'' | ||
+ | * 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, ...) | ||
+ | |||
+ | <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'' | ||
+ | * Size of the [[other:win10wsl#creating_a_backup_of_the_linux_running_in_wsl|backup tar file]] of this installation, generated with ''%%wsl --export%%'': ~1.4 Gb | ||
+ | |||
+ | ==== Hyper-V requirements ==== | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | You can skip reading this WSL //requirement// if you are installing WSL for the first time, and are therefor directly installing WSL 2 | ||
+ | |||
+ | Come back later if you have problems | ||
+ | </WRAP> | ||
+ | |||
+ | |||
+ | 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 (e.g. [[https://docs.microsoft.com/en-us/windows/wsl/troubleshooting#error-0x80370102-the-virtual-machine-could-not-be-started-because-a-required-feature-is-not-installed|The virtual machine could not be started because a required feature is not installed]]), or if you are updating WSL 1 to WSL 2, type ''systeminfo'' in a PowerShell to check if your machine meets 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]].\\ You can have a look at the [[https://en.wikipedia.org/wiki/X86_virtualization|x86 virtualization]] wikipedia page if you are wondering what ''VT-x'' and ''VT-d'' means for //Intel// processors (''AMD-v'' and ''AMD IOMMU'' for //AMD//) | ||
- | * //Enough// space on ''C:\''. Microsoft instructions say //The Windows Subsystem for Linux only runs on your system drive (usually this is your C: drive)// | + | Example: HP laptop with an **Intel** CPU, and **virtualization not activated in the BIOS** |
- | * 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) | + | * //Hyper-V// section of the ''systeminfo'' output |
- | * 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 | + | * <code>Configuration requise pour Hyper-V: Extensions de mode du moniteur d’ordinateur virtuel : Oui |
- | * 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) | + | Virtualisation activée dans le microprogramme : Non |
- | * 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 | + | Traduction d’adresse de second niveau : Oui |
- | * 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) | + | Prévention de l’exécution des données disponible : Oui</code> |
- | * Be sure to monitor the remaining free space on ''C:''! | + | * //Virtualization// section of the [[other:bios#entering_the_bios|HP BIOS]]: you need to **enable ''Virtualization Technology (VTx)'' and ''Virtualization Technology for Directed I/O (VTd)''** in the BIOS, save the settings and finish booting |
- | * 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... | + | * {{ :other:hp_bios_vtx_vtd.png?direct&600 |}} |
- | * 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:'' | + | * //Hyper-V// section of the ''systeminfo'' output with **virtualization activated in the BIOS** (after activation and reboot) |
+ | * <code> Virtualisation activée dans le microprogramme : Oui</code> | ||
===== Base installation ===== | ===== Base installation ===== | ||
Line 57: | Line 174: | ||
* If you have an older Windows version (at least //Version 1903, Build 18362//), follow the [[https://docs.microsoft.com/en-us/windows/wsl/install-manual|Manual installation steps for older versions of WSL]] | * If you have an older Windows version (at least //Version 1903, Build 18362//), follow the [[https://docs.microsoft.com/en-us/windows/wsl/install-manual|Manual installation steps for older versions of WSL]] | ||
- | * Open a ''Powershell'' in //administrator// mode | + | * Open a ''PowerShell'' in //administrator// mode |
* ''Start''=>''W''=>''Windows PowerShell'' then right-click on ''Windows PowerShell'' and select //Run as Administrator// | * ''Start''=>''W''=>''Windows PowerShell'' then right-click on ''Windows PowerShell'' and select //Run as Administrator// | ||
* Use a [[https://wiki.lsce.ipsl.fr/pmip3/doku.php/other:win10apps#windows_terminal|Windows Terminal]], if you have already installed it. Use ''CTRL''+<left click> on ''Windows Powershell'' in the pull-down menu to get a ''Powershell'' in //administrator// mode | * Use a [[https://wiki.lsce.ipsl.fr/pmip3/doku.php/other:win10apps#windows_terminal|Windows Terminal]], if you have already installed it. Use ''CTRL''+<left click> on ''Windows Powershell'' in the pull-down menu to get a ''Powershell'' in //administrator// mode | ||
Line 63: | Line 180: | ||
* Determine which Linux distributions are (directly) available for installation.\\ We will use the default ''Ubuntu'' distribution | * Determine which Linux distributions are (directly) available for installation.\\ We will use the default ''Ubuntu'' distribution | ||
* ''Ubuntu'' will always automatically upgrade to the latest ''LTS'' release available (contrary to ''Ubuntu-<even_number>.04'' that will stick to the specified ''<even-number>'' release) | * ''Ubuntu'' will always automatically upgrade to the latest ''LTS'' release available (contrary to ''Ubuntu-<even_number>.04'' that will stick to the specified ''<even-number>'' release) | ||
- | * We could specify a specific Linux version (or even [[https://docs.microsoft.com/en-us/windows/wsl/use-custom-distro|import any Linux distribution]]!) | + | * We could specify a specific Linux version (or even [[https://docs.microsoft.com/en-us/windows/wsl/use-custom-distro|import any Linux distribution]], or [[https://docs.microsoft.com/en-us/windows/wsl/build-custom-distro|create a custom Linux distribution]]!) |
* <code>PS C:\> wsl --list --online | * <code>PS C:\> wsl --list --online | ||
Line 89: | Line 206: | ||
* Reboot the computer and be patient | * 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// | * 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 | + | * 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\\ <wrap hi>[[other:win10wsl#wsl_security_warning|Do not use an existing password for the Linux installation]]</wrap> |
* <code>Installing, this may take a few minutes... | * <code>Installing, this may take a few minutes... | ||
Please create a default UNIX user account. The username does not need to match your Windows username. | Please create a default UNIX user account. The username does not need to match your Windows username. | ||
Line 163: | Line 280: | ||
stdu@sadira034:/mnt/c/Users/jypeter/AppData/Local/Packages$ ls -lh /mnt/c/Users/jypeter/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/LocalState/ext4.vhdx | 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</code> | -rwxrwxrwx 1 root root 1.2G Aug 24 11:37 /mnt/c/Users/jypeter/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/LocalState/ext4.vhdx</code> | ||
+ | * Note: location of the //vhdx swap file//: | ||
+ | * From windows: ''C:\Users\jypeter\AppData\Local\Temp\swap.vhdx'' | ||
+ | * From WSL:\\ <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> | ||
- | * Update your Ubuntu Linux with: | + | * Update //Ubuntu// with: ''sudo apt update && sudo apt upgrade'' |
- | * ''sudo apt update && sudo apt upgrade'' | + | * <code>stdu@sadira034:~$ lsb_release -a |
- | * Use the Left arrow to select ''<Yes>''+''Enter'' when some services have to be restarted | + | No LSB modules are available. |
- | * [[other:win10wsl#updating_wsl_and_ubuntu|More details about updating WSL and/or Ubuntu]] (you can safely skip this for now) | + | 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</code> | ||
+ | * [[other:win10wsl#updating_wsl_and_ubuntu|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 | ||
+ | * <code>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</code> | ||
+ | * Create a [[other:win10wsl#backup_of_a_full_linux_installation|backup of the newly installed distribution]] | ||
+ | * This will allow you to easily [[other:win10wsl#restoring_or_relocating_a_linux_installation|restore or relocate your distribution later]] | ||
===== After the base installation ===== | ===== 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). | + | After completing the base installation steps, you get a //Ubuntu// machine with: |
+ | * a //root// and //user// account | ||
+ | * the //user// account is pre-configured to use ''sudo'' for commands that need root access | ||
+ | * pre-installed base Linux applications | ||
+ | * **no** graphics | ||
+ | * enough to play a bit with a Linux computer and test that the installation is working, but not enough to do some real work | ||
==== Opening a terminal ==== | ==== Opening a terminal ==== | ||
Line 301: | Line 503: | ||
==== Ubuntu packages installed ==== | ==== Ubuntu packages installed ==== | ||
- | <code>$ dpkg --list | + | <code>$ dpkg --list | head -n 10 |
Desired=Unknown/Install/Remove/Purge/Hold | Desired=Unknown/Install/Remove/Purge/Hold | ||
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend | | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend | ||
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) | |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) | ||
- | ||/ Name Version Architecture Description | + | ||/ Name Version Architecture Description |
- | +++-=====================-===============-===============-================================================ | + | +++-==============================-=================================-============-=============================================================================== |
- | ii accountsservice 0.6.45-1ubuntu1 amd64 query and manipulate user account information | + | ii accountsservice 0.6.55-0ubuntu12~20.04.5 amd64 query and manipulate user account information |
- | ii acl 2.2.52-3build1 amd64 Access control list utilities | + | ii adduser 3.118ubuntu2 all add and remove users and groups |
- | ii acpid 1:2.0.28-1ubunt amd64 Advanced Configuration and Power Interface event | + | ii alsa-topology-conf 1.2.2-1 all ALSA topology configuration files |
- | ii adduser 3.116ubuntu1 all add and remove users and groups | + | ii alsa-ucm-conf 1.2.2-1ubuntu0.13 all ALSA Use Case Manager configuration files |
- | + | ii apparmor 2.13.3-7ubuntu5.1 amd64 user-space parser utility for AppArmor | |
- | [...] | + | |
- | 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 | + | $ dpkg --list > /mnt/c/Scratch/jypeter/Ubuntu_Installed_List_`date +"%y-%m-%d"`.txt |
- | $ wc -l /mnt/c/Scratch/jyp/pkg_initial_201601.txt | + | $ wc -l /mnt/c/Scratch/jypeter/Ubuntu_Installed_List_*.txt |
- | 628 /mnt/c/Scratch/jypeter/pkg_initial_201601.txt</code> | + | 642 /mnt/c/Scratch/jypeter/Ubuntu_Installed_List_22-08-29.txt</code> |
- | Full (example) list of installed packages: {{:other:pkg_initial_201601.txt|pkg_initial_201601.txt}} | + | Full (example) list of installed packages: {{ :other:ubuntu_installed_list_22-08-29.txt |}} |
==== Update ubuntu ==== | ==== Update ubuntu ==== | ||
Line 358: | Line 554: | ||
en_US.UTF8 | en_US.UTF8 | ||
</code> | </code> | ||
+ | |||
+ | |||
==== Package management ==== | ==== Package management ==== | ||
Line 366: | Line 564: | ||
* Install the **synaptic** package manager: ''aptitude install synaptic'' | * Install the **synaptic** package manager: ''aptitude install synaptic'' | ||
* [[https://doc.ubuntu-fr.org/synaptic|details]] (fr) | * [[https://doc.ubuntu-fr.org/synaptic|details]] (fr) | ||
+ | |||
=== Useful commands === | === Useful commands === | ||
Line 372: | Line 571: | ||
* ''dpkg -L package_name'': list files installed from ''package_name'' | * ''dpkg -L package_name'': list files installed from ''package_name'' | ||
* ''dpkg -S path/command'': name of the package used to install ''path/command'' | * ''dpkg -S path/command'': name of the package used to install ''path/command'' | ||
+ | |||
=== Example === | === Example === | ||
Line 541: | Line 741: | ||
* [[https://linoxide.com/how-to-clear-apt-cache/|How to Clear Apt Cache]] | * [[https://linoxide.com/how-to-clear-apt-cache/|How to Clear Apt Cache]] | ||
+ | |||
+ | |||
===== Advanced configuration ===== | ===== Advanced configuration ===== | ||
Line 765: | Line 967: | ||
* [[https://github.com/Microsoft/WSL/issues/2636|Automount additonal filesystems from fstab]] | * [[https://github.com/Microsoft/WSL/issues/2636|Automount additonal filesystems from fstab]] | ||
* [[https://gist.github.com/sgtoj/f82990bcd9e89db49b84e2d2e70b281d|Ubuntu for Windows: Mounting C: Drive to WSL's Root]] | * [[https://gist.github.com/sgtoj/f82990bcd9e89db49b84e2d2e70b281d|Ubuntu for Windows: Mounting C: Drive to WSL's Root]] | ||
+ | |||
==== Rebooting WSL ==== | ==== Rebooting WSL ==== | ||
Line 783: | Line 986: | ||
- | ==== Creating a backup of the Linux running in WSL ==== | + | ===== Advanced usage ===== |
- | There are several types of WSL related directories that you may want to back up: | + | ==== WSL security WARNING! ==== |
- | * <wrap hi>Your Linux //home// directory</wrap> (''/home/<your_login>''), or some specific sub-directories of the //Ubuntu// running in WSL (sub-directories of ''/''): all these files are located in a [[other:win10wsl#location_of_the_files|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>'' or ''c:\Scratch\<your_login>'') | + | <WRAP center round important 60%> |
+ | A regular Linux installation (on a Linux-only computer) is fairly secure,\\ but a Linux installation on WSL is not secure at all, **by design** | ||
+ | </WRAP> | ||
+ | |||
+ | WSL+Linux is designed to allow you to easily use Linux on Windows, including **very easily using the Linux root account without knowing any password** of the Linux installation! | ||
+ | |||
+ | <code>PS C:\Users\your_login> wsl | ||
+ | wsl_default_user@your_machine:/mnt/c/Users/your_login$ whoami | ||
+ | wsl_default_user | ||
+ | |||
+ | PS C:\Users\your_login> wsl -u root | ||
+ | root@your_machine:/mnt/c/Users/your_login# whoami | ||
+ | root</code> | ||
+ | |||
+ | This is **a feature and not a security issue**, because your installation is protected by your Windows account security | ||
+ | |||
+ | You should be aware (and act accordingly) that: | ||
+ | * Somebody gaining access to your Windows account will also have full access to the Linux installation | ||
+ | * <wrap hi>Do not use an existing password for the WSL Linux account</wrap>\\ Somebody could easily extract your password information... | ||
+ | * Storing data in the Linux part of your computer does not add any extra security | ||
+ | * Always **make sure that only you can access your Windows account** | ||
+ | * Your LSCE Windows laptop (not your desktop) is encrypted with [[https://docs.microsoft.com/en-us/windows/security/information-protection/Bitlocker/bitlocker-overview|BitLocker]], which adds some extra security | ||
+ | |||
+ | * Somebody gaining access to a backup of your Linux installation will easily have access to the Linux installation itself | ||
+ | * You can store your Linux installation backup to [[https://docs.microsoft.com/en-us/windows/security/information-protection/bitlocker/bitlocker-to-go-faq|an external disk encrypted with BitLocker]] | ||
+ | ==== Creating a backup ==== | ||
+ | |||
+ | === Backup of a FULL Linux installation === | ||
+ | |||
+ | You can use ''wsl'' to [[https://docs.microsoft.com/en-us/windows/wsl/faq#how-can-i-back-up-my-wsl-distributions--or-move-them-from-one-drive-to-another-|save a full Linux installation]] to a //tar// file, that can be: | ||
+ | * used later for //restoring// the full installation | ||
+ | * used for //relocating// the full installation from ''C:\'' to another disk | ||
+ | |||
+ | Detailed [[https://docs.microsoft.com/en-us/windows/wsl/basic-commands#export-a-distribution-to-a-tar-file|--export]] example: | ||
+ | * Determine the name of the current Linux installation(s) used in WSL | ||
+ | * <code>> wsl --list --verbose | ||
+ | NAME STATE VERSION | ||
+ | * Ubuntu Running 2</code> | ||
+ | * [[other:win10wsl#rebooting_wsl|Stop WSL+Linux]] | ||
+ | * <code>> wsl --shutdown | ||
+ | |||
+ | > wsl -l -v | ||
+ | NAME STATE VERSION | ||
+ | * Ubuntu Stopped 2</code> | ||
+ | * Export the specified Linux installation to a //tar// file: | ||
+ | * You should export to a directory or external disk where you have //enough// space\\ e.g. The tar file for a [[other:win10wsl#base_installation|newly installed and updated]] //Ubuntu 20.04.5 LTS// is ~1.4 Gb | ||
+ | * You should use a detailed enough file name for the tar file\\ e.g. WSL_<Linux_Distribution>_<Distribution_Version>_<User>_<Date>.tar | ||
+ | * Example: ''%%wsl --export Ubuntu C:\Scratch\<your_login>\WSL\WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar%%'' | ||
+ | |||
+ | * If you are not going to use the backup tar file right away, you can optionally compress it in order to save some space | ||
+ | * <code>$ ls -lh /mnt/c/Scratch/<your_login>/WSL/WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar | ||
+ | 1.4G Aug 29 17:49 /mnt/c/Scratch/<your_login>/WSL/WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar | ||
+ | |||
+ | $ gzip /mnt/c/Scratch/<your_login>/WSL/WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar | ||
+ | |||
+ | $ ls -lh /mnt/c/Scratch/<your_login>/WSL/WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar.gz | ||
+ | 549M Aug 29 17:49 /mnt/c/Scratch/<your_login>/WSL/WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar.gz</code> | ||
+ | |||
+ | === Backup of specific directories === | ||
+ | |||
+ | You can also just create backups of specific directories: | ||
+ | |||
+ | * Your Linux //home// directory (''/home/<your_login>/''), or some specific sub-directories of the //Ubuntu// running in WSL (sub-directories of ''/''): 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>'' or ''c:\Scratch\<your_login>'') | ||
* <code bash>$ cd /home | * <code bash>$ cd /home | ||
Line 803: | Line 1068: | ||
95K Feb 24 12:09 /mnt/c/Scratch/<your_login>/<your_login>_home_210224_1209.tgz</code> | 95K Feb 24 12:09 /mnt/c/Scratch/<your_login>/<your_login>_home_210224_1209.tgz</code> | ||
- | * <wrap hi>Regular Windows folders</wrap> 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 [[other:win10apps#backup_software|backup software]]) | + | * 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 [[other:win10apps#backup_software|backup software]]) |
+ | * WARNING: there should not be performance issues using ''tar'' (from Linux) to make a backup of Windows files with WSL 1, but **WSL 2 is significantly slower than WSL 1 to access Windows files** ([[https://docs.microsoft.com/en-us/windows/wsl/compare-versions#exceptions-for-using-wsl-1-rather-than-wsl-2|Exceptions for using WSL 1 rather than WSL 2]]) | ||
- | * <wrap hi>The **full** Linux/Ubuntu installation</wrap> running in WSL (based on [[https://docs.microsoft.com/en-us/windows/wsl/faq#how-can-i-back-up-my-wsl-distros-or-move-them-from-one-drive-to-another|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 the ''wsl'' 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//) | ||
- | * <code>> wsl --list --all | ||
- | Distributions du sous-système Windows pour Linux : | ||
- | Ubuntu (par défaut) | ||
- | > wsl --list --verbose | + | ==== Restoring or relocating a Linux installation ==== |
- | NAME STATE VERSION | + | |
- | * Ubuntu Running 1</code> | + | When we have the ''tar'' file of a [[other:win10wsl#creating_a_backup|FULL backup]], we can use [[https://docs.microsoft.com/en-us/windows/wsl/basic-commands#import-a-new-distribution|--import]] to install or restore it to a specific location. |
- | * [[other:win10wsl#rebooting_wsl|Stop WSL+Linux]] | + | |
- | * <code>> wsl --list --verbose | + | Note: |
- | NAME STATE VERSION | + | * This is currently the only way of **moving (//relocating//) a Linux installation** to another disk than the default ''C:\'' location |
- | * Ubuntu Running 1 | + | * //Importing// will mostly put the ''ext4.vhdx'' file in the specified target location |
+ | * You need [[other:win10wsl#disk_usage|enough disk space]] in the new disk location, knowing that the size of the //restored// ''vhdx'' file will start growing (as needed) as soon as you use your installation | ||
+ | * Creating a backup and restoring it is an indirect way of **reclaiming the unused space of a Linux installation ''vhdx'' file**: the size of the ''ext4.vhdx'' file after importing can be smaller than the size of the originally exported ''ext4.vhdx'' file. | ||
- | > wsl --shutdown | + | Detailed [[https://docs.microsoft.com/en-us/windows/wsl/basic-commands#import-a-new-distribution|--import]] example: |
- | > wsl --list --verbose | + | * We assume that we have an exported installation ''tar'' file available |
+ | * In this example, we use the compressed backup file created in [[other:win10wsl#backup_of_a_full_linux_installation|Backup of a FULL Linux installation]]\\ ''C:\Scratch\<your_login>\WSL\WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar.gz'' | ||
+ | * ''%%--import%%'' can directly use a ''.tar.gz'' file! ([[https://github.com/MicrosoftDocs/WSL/issues/1607|wsl --import should mention 'tar.gz' support !]]) | ||
+ | * Create the directory where the Linux installation (mostly its ''ext4.vhdx'' file) will be restored | ||
+ | * Hint: choose an explicit directory path and name, using the name of the distribution that will be restored, because the name of the restored file itself will always be the same (''ext4.vhdx'')\\ e.g. ''D:\WSL_Distributions\Ubuntu_custom'' | ||
+ | * Import the distribution, giving it a unique name (that does not appear already in ''wsl -l -v'') | ||
+ | * <code>> wsl -l -v | ||
NAME STATE VERSION | NAME STATE VERSION | ||
- | * Ubuntu Stopped 1</code> | + | * Ubuntu Stopped 2 |
- | * Export the current Linux to a //tar// file: | + | |
- | * <code> > wsl --export Ubuntu C:\Scratch\<your_login>\<your_login>_ubuntu-<ubuntu_version>-full_<some_date>.tar</code> | + | |
- | * 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 | + | |
- | * <code>$ cd /mnt/c/Scratch/<your_login> | + | |
- | $ ls -ltrh *ubuntu*tar* | + | > wsl --import Ubuntu_custom D:\WSL_Distributions\Ubuntu_custom C:\Scratch\<your_login>\WSL\WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar.gz |
- | 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 | + | > wsl -l -v |
- | $ tar tvf <your_login>-20-04-1-full_210224.tar | wc -l | + | NAME STATE VERSION |
- | 112711 | + | * Ubuntu Stopped 2 |
+ | Ubuntu_custom Stopped 2</code> | ||
+ | * After importing, there should be a new ''ext4.vhdx'' file in the previously empty ''D:\WSL_Distributions\Ubuntu_custom'' directory | ||
+ | * Start the imported ''Ubuntu_custom'' distribution | ||
+ | * Select ''Ubuntu_custom'' in the Windows Terminal pull-down menu | ||
+ | * Or specify ''Ubuntu_custom'' in a PowerShell, using:\\ ''%%wsl --distribution Ubuntu_custom%%''\\ or ''wsl -d Ubuntu_custom'' | ||
+ | * WARNING: even if the imported distribution had an existing default user (''stdu'' in our example), the //new// default user will be ''root'' ! | ||
+ | * It is possible to explicitly specify the requested user each time we start a terminal, but it will be more convenient to specify a new default user\\ ''%%wsl --distribution Ubuntu_custom --user stdu%%'' | ||
+ | * You can easily open a ''root'' session with\\ ''%%wsl -d Ubuntu_custom -u root%%'' | ||
+ | * Select a new (non ''root'') default user (note: [[https://docs.microsoft.com/en-us/windows/wsl/use-custom-distro#add-wsl-specific-components-like-a-default-user|Add WSL a default user]] also shows how to //create a new user//). We just have to use the ''root'' account to add a default user (user ''stdu'' in this example) to the [[https://docs.microsoft.com/en-us/windows/wsl/wsl-config#user-settings|/etc/wsl.conf]] file | ||
+ | * <code># cat /etc/wsl.conf | ||
+ | cat: /etc/wsl.conf: No such file or directory | ||
- | $ gzip *ubuntu*.tar | + | # echo -e "[user]\ndefault=stdu" >> /etc/wsl.conf |
- | $ ls -ltrh *ubuntu*tar* | + | # cat /etc/wsl.conf |
- | 976M Jan 21 2020 <your_login>_200121.tar.gz | + | [user] |
- | 1.2G Aug 22 2020 <your_login>-16.04-full_200822.tar.gz | + | default=stdu</code> |
- | 1.8G Feb 24 14:06 <your_login>-20-04-1-full_210224.tar.gz | + | * Restart the Linux installation to take the new settings into account |
- | </code> | + | * ''%%wsl --terminate Ubuntu_custom%%'' |
+ | * If you need the ''root'' account later, you will need to use the ''sudo'' command from the new default account (or use ''wsl -d Ubuntu_custom -u root'' in a PowerShell) | ||
+ | * <code>$ whoami | ||
+ | stdu | ||
+ | stdu@sadira034:~$ sudo su - | ||
+ | [sudo] password for stdu: | ||
+ | root@sadira034:~# whoami | ||
+ | root</code> | ||
+ | * If the //relocation// goal was to free up some space on ''C:'', it is possible to [[other:win10wsl#removing_the_main_linux_installation|Remove the main installation]], once the relocated installation has been successfully tested | ||
- | ==== Restoring a WSL backup ==== | + | Questions FIXME |
+ | * Is it possible to restore to the default location (on ''C:\'') ? | ||
+ | ==== Uninstalling WSL or a distribution ==== | ||
- | FIXME Read [[https://www.howtogeek.com/426562/how-to-export-and-import-your-linux-systems-on-windows-10/|How to Export and Import Your Linux Systems on Windows 10]] and [[https://winaero.com/blog/export-import-wsl-linux-distro-windows-10/|Export and Import WSL Linux Distro in Windows 10]] and similar threads | + | Before uninstalling //something//, you probably want to [[other:win10wsl#creating_a_backup|create a backup]], just to be safe... |
- | FIXME Check if [[https://wslhub.com/|WSL Manager]] is maintained and can be useful | + | === Removing a specific Linux installation === |
- | 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: | + | This process is called //unregistering// (based on [[https://docs.microsoft.com/en-us/windows/wsl/basic-commands#unregister-or-uninstall-a-linux-distribution|Unregister or uninstall a Linux distribution]]) |
- | * ''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 with ''unregister'' ([[https://docs.microsoft.com/en-us/windows/wsl/wsl-config#unregister-and-reinstall-a-distribution|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 [[https://docs.microsoft.com/en-us/windows/wsl/user-support#for-fall-creators-update-and-later|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... | + | You just need to get the list of the currently installed Linux distributions, stop them and remove/unregister a specific distribution name |
+ | |||
+ | <code>> wsl -l -v | ||
+ | NAME STATE VERSION | ||
+ | * Ubuntu Stopped 2 | ||
+ | Ubuntu_custom Running 2 | ||
+ | |||
+ | > wsl --terminate Ubuntu_custom | ||
+ | |||
+ | > wsl -l -v | ||
+ | NAME STATE VERSION | ||
+ | * Ubuntu Stopped 2 | ||
+ | Ubuntu_custom Stopped 2 | ||
+ | |||
+ | > wsl --unregister Ubuntu_custom | ||
+ | Désinscription... | ||
+ | |||
+ | > wsl -l -v | ||
+ | NAME STATE VERSION | ||
+ | * Ubuntu Stopped 2</code> | ||
+ | |||
+ | |||
+ | === Removing the main Linux installation === | ||
+ | |||
+ | If you remove the main installation (on ''C:\''): | ||
+ | * Another //relocated// installation will become the new default installation (if present) | ||
+ | * <code>PS C:\Users\your_login> wsl -l -v | ||
+ | NAME STATE VERSION | ||
+ | Ubuntu_custom Running 2 | ||
+ | * Ubuntu Running 2 | ||
+ | |||
+ | PS C:\Users\your_login> wsl --unregister Ubuntu | ||
+ | Désinscription... | ||
+ | |||
+ | PS C:\Users\your_login> wsl -l -v | ||
+ | NAME STATE VERSION | ||
+ | * Ubuntu_custom Running 2</code> | ||
+ | |||
+ | * The initial installation directory will still be present on ''C:\'', and should probably be left untouched: | ||
+ | * ''C:\Users\your_login\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\'' | ||
+ | * ...with a very low disk usage (the big ''ext4.vhdx'' is removed during the ''unregister'' step) | ||
+ | |||
+ | * ''Ubuntu'' will still appear in the Microsoft store, and clicking on ''Launch'' will trigger a re-installation on ''C:\'' | ||
+ | * If you end up with an installation error message and a new //orphan// ''ext4.vhdx'' file on ''C'', click on ''Launch'' to restart and complete the installation | ||
+ | |||
+ | * ''Ubuntu'' will still appear in the list of installed applications (''Windows'' + ''I'' => ''Applications'') but with a smaller disk usage, probably just the size of the //Linux kernel// installed and updated independently of the Linux installations) | ||
+ | |||
+ | === Removing WSL === | ||
+ | |||
+ | ''wsl'' is a part of the Windows system and probably can't be removed. | ||
+ | |||
+ | Anyway, when all existing Linux distributions are uninstalled, there should not be any big ''.vhdx'' files remaining (i.e. //no extra disk space used//), and there will not be any Linux processes running (i.e. //no extra CPU used//). | ||
- | * 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 [[https://docs.microsoft.com/en-us/windows/wsl/wsl-config|Manage and configure Windows Subsystem for Linux]] page | ||
- | * and then disable WSL??? | ||
===== Miscellaneous ===== | ===== Miscellaneous ===== | ||
+ | |||
+ | ==== Upgrading WSL 1 to WSL 2 ==== | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | You will be able to run existing WSL 1 installations with WSL 2, so upgrading should not be a problem! | ||
+ | </WRAP> | ||
+ | |||
+ | |||
+ | === Determining which version of WSL is installed === | ||
+ | |||
+ | If you have never used WSL on a computer, WSL 2 will be installed directly when you follow the [[other:win10wsl#base_installation|Base installation]] steps | ||
+ | |||
+ | You can determine if your installed Linux distributions are running on WSL 1 or WSL 2 by typing ''wsl -l -v'' in a PowerShell, but if you are not sure if you are currently using WSL 1 or WSL 2 for running Linux, you can check if [[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]] | ||
+ | |||
+ | === Upgrading WSL === | ||
+ | |||
+ | |||
+ | [[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#determining_which_version_of_wsl_is_installed|Determining which version of WSL is installed]] 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 | ||
Line 880: | Line 1241: | ||
* [[https://docs.microsoft.com/en-us/windows/wsl/release-notes|Release Notes for Windows Subsystem for Linux]] | * [[https://docs.microsoft.com/en-us/windows/wsl/release-notes|Release Notes for Windows Subsystem for Linux]] | ||
+ | * [[https://craigloewen-msft.github.io/WSLTipsAndTricks/|WSL Tips and Tricks]] | ||
* [[https://docs.microsoft.com/en-us/windows/wsl/faq|Frequently Asked Questions]] | * [[https://docs.microsoft.com/en-us/windows/wsl/faq|Frequently Asked Questions]] | ||
* [[https://docs.microsoft.com/en-us/windows/wsl/troubleshooting|Troubleshooting]] | * [[https://docs.microsoft.com/en-us/windows/wsl/troubleshooting|Troubleshooting]] |