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/09/06 15:40]
jypeter [Restoring or relocating a Linux installation] Improved
other:win10wsl [2022/09/08 14:40]
jypeter [Opening a terminal] Updated the WSLtty section
Line 206: 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\\ <wrap hi>Do not use an existing password!</​wrap> ​The security of the Linux running in WSL is weak by design, and somebody could easily extract your password information from a backup of your distribution+    * 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 233: Line 233:
 stdu@sadira034:​~$ echo $SHELL stdu@sadira034:​~$ echo $SHELL
 /​bin/​bash</​code>​ /​bin/​bash</​code>​
 +
 +  * Note: after installing (even from the PowerShell command line), Ubuntu will appear as a regular installed application in the //Microsoft Store// and the list of applications
 +    * {{ :​other:​ubuntu_ms-store.png?​direct&​400 |}}
 +    * {{ :​other:​ubuntu_applications.png?​direct&​400 |}}
  
   * Get some basic information about your new ''​Ubuntu''​ installation   * Get some basic information about your new ''​Ubuntu''​ installation
Line 385: Line 389:
 === The default terminal === === The default terminal ===
  
-The **Default WSL+Ubuntu //​terminal//​** is basically a //bash// shell running inside a regular Windows ''​cmd''​ text console. You do not need to have an //X server// running to use it!+The **Default WSL+Ubuntu //​terminal//​** is basically a //bash// shell running inside a regular Windows ''​cmd''​ text console. You do not need to have an [[other:​x_conf#​using_an_x_server_on_windows|X server]] running to use it!
  
 There are several ways to open a default terminal: There are several ways to open a default terminal:
Line 406: Line 410:
  
 <note tip> <note tip>
-  * This is the recommended (by JYP) option for now+  * This is the recommended (by JYP) option for now, until we can use regular Linux select-copy/​paste in the Windows Terminal ([[https://​github.com/​microsoft/​terminal/​issues/​7646|Feature request: add xterm-style select/​copy/​paste options]])
  
-  * If you can't open a terminal after Windows upgrades ​from WSL to WSL v2get and install the latest version of WSLtty !+  * If you can't open a WSLtty ​terminal after upgrading ​from ''​WSL'' ​to ''​WSL 2''​, install the latest version of WSLtty !
 </​note>​ </​note>​
  
-[[https://​github.com/​mintty/​wsltty|WSLtty]] allows you to use the efficient //Mintty// as a terminal for WSL. **You do not need to have an //X server// running to use it!**+[[https://​github.com/​mintty/​wsltty|WSLtty]] allows you to use the efficient //Mintty// as a terminal for WSL. **You do not need to have an [[other:​x_conf#​using_an_x_server_on_windows|X server]] running to use it!**
  
-  * Download and execute the latest ​[[https://​github.com/​mintty/​wsltty/releases|64bit installer]] (the most recent ''​wsltty-*-install-x86_64.exe''​ file) +  * Use [[https://​github.com/​mintty/​wsltty#​windows-package-manager|winget]] (in a PowerShell) to install WSLtty 
-  * After installing, you will get several ways to open a terminal: +    ​<​code>​PS C:​\Users\your_login>​ winget ​install ​wsltty 
-    * Double-click on the ''​WSL terminal''​ icon on the desktop +Trouvé WSLtty [Mintty.WSLtty] Version 3.6.0 
-    * ''​U''​=>''​Ubuntu terminal'' ​and ''​W''​=>''​WSL Terminal''​ in the ''​Start''​ menu +[...] 
-      * There is also a ''​W''​=>''​WSLtty''​ folder, than you don't really ​need+Installé correctement</​code>​ 
 + 
 +  * After installing, you will get **several ​new ways to open a terminal**
 +    * ''​WSL terminal''​ icon on the desktop 
 +    * ''​Start''​ => ''​U''​ => ''​Ubuntu terminal'' ​(or ''​Ubuntu_custom terminal''​ or something similar if you have [[other:​win10wsl#​restoring_or_relocating_a_linux_installation|restored/​relocated a Linux installation]])  
 +    * ''​Start''​ => ''​W''​ => ''​WSL Terminal''​ in the ''​Start''​ menu 
 +      * There is also a ''​W''​ => ''​WSLtty''​ folder, than you probably will not need (more details in [[https://​github.com/​mintty/​wsltty#​configuration|Configuration]]),​ except possibly ''​configure WSL shortcuts''​ (//run after adding or removing WSL distributions,​ in order to create the respective set of shortcuts in the Start menu//)
   * Open a terminal and right-click in it to check the available options   * Open a terminal and right-click in it to check the available options
 +    * Hint: use the ''​Text''​ option to select the nice //Cascadia Code// font bundled with the [[other:​win10apps#​windows_terminal|Windows Terminal]]
     * You can access even more options with CTRL+right-click     * You can access even more options with CTRL+right-click
     * You can cycle between the open WSLtty terminals with CTRL+Tab and Shift+CTRL+Tab     * You can cycle between the open WSLtty terminals with CTRL+Tab and Shift+CTRL+Tab
Line 434: Line 445:
 === Terminals started from Linux === === Terminals started from Linux ===
  
-You can install additional //​graphical//​ terminals inside the Linux running in WSL, but **you will need to have a running ​//X server// if you want to open them**. In these terminals, the //usual// Linux copy/paste rules will apply!+You can install additional //​graphical//​ terminals inside the Linux running in WSL, but **you will need to have a running ​[[other:​x_conf#​using_an_x_server_on_windows|X server]] if you want to open them**. In these terminals, the //usual// Linux copy/paste rules will apply!
  
 == xterm == == xterm ==
Line 988: Line 999:
 ===== Advanced usage ===== ===== Advanced usage =====
  
 +==== WSL security WARNING! ====
  
 +<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 ==== ==== Creating a backup ====
  
Line 1048: Line 1085:
 ==== Restoring or relocating a Linux installation ==== ==== Restoring or relocating a Linux installation ====
  
-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.+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.
  
 Note:  Note: 
   * This is currently the only way of **moving (//​relocating//​) a Linux installation** to another disk than the default ''​C:​\''​ location   * This is currently the only way of **moving (//​relocating//​) a Linux installation** to another disk than the default ''​C:​\''​ location
   * //​Importing//​ will mostly put the ''​ext4.vhdx''​ file in the specified target location   * //​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 ''​vhdx''​ file will start growing (as needed) as soon as you use your installation +    * 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**:​ the size of the ''​ext4.vhdx''​ file after importing can be smaller than the size of the originally exported ''​ext4.vhdx''​ file.+  * 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.
  
 Detailed [[https://​docs.microsoft.com/​en-us/​windows/​wsl/​basic-commands#​import-a-new-distribution|--import]] example: Detailed [[https://​docs.microsoft.com/​en-us/​windows/​wsl/​basic-commands#​import-a-new-distribution|--import]] example:
  
-  * We assume that we have an exported installation tar file available+  * 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''​     * 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 !]])+    * ''​%%--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   * Create the directory where the Linux installation (mostly its ''​ext4.vhdx''​ file) will be restored
-    * Hint: use 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''​+    * Hint: choose ​an explicit directory path and nameusing 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''​)   * Import the distribution,​ giving it a unique name (that does not appear already in ''​wsl -l -v''​)
     * <​code>>​ wsl -l -v     * <​code>>​ wsl -l -v
Line 1076: Line 1113:
     * After importing, there should be a new ''​ext4.vhdx''​ file in the previously empty ''​D:​\WSL_Distributions\Ubuntu_custom''​ directory     * 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   * Start the imported ''​Ubuntu_custom''​ distribution
-    * Directly from the Windows Terminal pull-down menu +    * Select ''​Ubuntu_custom''​ in the Windows Terminal pull-down menu 
-    * Or from a PowerShell, using ''​wsl --distribution Ubuntu_custom''​ +    * Or specify ''​Ubuntu_custom''​ in a PowerShell, using:\\ ''​%%wsl --distribution ​Ubuntu_custom%%''​\\ or ''​wsl -d Ubuntu_custom''​ 
-    * WARNING: even if the distribution we imported had an existing default ''​stdu'' ​user, the //new// default user will be ''​root''​ ! +    * 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 default user\\ ''​%%wsl --distribution Ubuntu_custom --user stdu%%''​+      * 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%%''​       * You can easily open a ''​root''​ session with\\ ''​%%wsl -d Ubuntu_custom -u root%%''​
-  * Specify ​a 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+  * Select ​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     * <​code>#​ cat /​etc/​wsl.conf
 cat: /​etc/​wsl.conf:​ No such file or directory cat: /​etc/​wsl.conf:​ No such file or directory
Line 1092: Line 1129:
     * Restart the Linux installation to take the new settings into account     * Restart the Linux installation to take the new settings into account
       * ''​%%wsl ​ --terminate Ubuntu_custom%%''​       * ''​%%wsl ​ --terminate Ubuntu_custom%%''​
-    * If you need the ''​root''​ account later, you will need to use the ''​sudo''​ command from the new default account+    * 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       * <​code>​$ whoami
 stdu stdu
Line 1099: Line 1136:
 root@sadira034:​~#​ whoami root@sadira034:​~#​ whoami
 root</​code>​ 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
  
-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+Questions ​FIXME 
 +  * Is it possible ​to restore ​to the default location (on ''​C:\''​) ? 
 +==== Uninstalling ​WSL or a distribution ====
  
-FIXME Check if [[https://wslhub.com/|WSL Manager]] is maintained and can be useful +Before uninstalling ​//something//, you probably want to [[other:win10wsl#creating_a_backup|create ​backup]], just to be safe...
- +
-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: +
-  * ''​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 ​distribution]])? +
-    * If we use a new distribution nameit 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 ==== +
- +
-Before starting, you may want to 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+
  
 === Removing a specific Linux installation === === Removing a specific Linux installation ===
Line 1145: Line 1169:
 * Ubuntu ​          ​Stopped ​        ​2</​code>​ * 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 === === Removing WSL ===
other/win10wsl.txt · Last modified: 2023/12/06 13:24 by jypeter