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/09/07 09:42] jypeter [Advanced usage] Started the security section |
other:win10wsl [2022/09/14 14:03] jypeter [Getting ready for some real work] |
||
---|---|---|---|
Line 45: | Line 45: | ||
Once you have verified that your Windows is recent enough, you should also: | 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 | + | * **Install the [[other:win10apps#windows_terminal|Windows terminal]]** |
- | * **Know how to use copy-paste** in: | + | * Once //Ubuntu// is installed, there will be additional ways to open [[other:win10wsl#opening_a_terminal|Linux terminals]] |
- | * a //Windows Terminal//: [[https://docs.microsoft.com/en-us/windows/terminal/selection|Selecting text in Windows Terminal]] | + | * **Know how to use copy-paste** in a //Windows Terminal//, a //PowerShell// or a ''cmd'' interpreter |
- | * an old ''cmd'' command prompt or a //PowerShell//: FIXME | + | * It should work more or less the same way everywhere as in a [[other:win10apps#windows_cmd_command_interpreter|cmd interpreter]] |
- | * It will be useful to **be able to [[other:win10config#displaying_hidden_folders_and_files_and_the_files_extension|see hidden folders and files]]** | + | * Follow the instructions to **be able to [[other:win10config#displaying_hidden_folders_and_files_and_the_files_extension|see hidden folders and files i n the Windows explorer]]** |
* **Have some basic knowledge of Linux**... | * **Have 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 | ||
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 234: | Line 234: | ||
/bin/bash</code> | /bin/bash</code> | ||
- | * Get some basic information about your new ''Ubuntu'' installation | + | * 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 |
- | * <code>stdu@sadira034:~$ lsb_release -a | + | * {{ :other:ubuntu_ms-store.png?direct&400 |}} |
- | No LSB modules are available. | + | * {{ :other:ubuntu_applications.png?direct&400 |}} |
- | Distributor ID: Ubuntu | + | |
- | Description: Ubuntu 20.04 LTS | + | |
- | Release: 20.04 | + | |
- | Codename: focal | + | |
- | + | ||
- | stdu@sadira034:~$ uname -a | + | |
- | Linux sadira034 5.10.16.3-microsoft-standard-WSL2 #1 SMP Fri Apr 2 22:23:49 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux | + | |
- | + | ||
- | stdu@sadira034:~$ cat /proc/version | + | |
- | Linux version 5.10.16.3-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 Fri Apr 2 22:23:49 UTC 2021 | + | |
- | stdu@sadira034:~$ df -h | + | * Get some information about your new ''Ubuntu'' installation |
+ | * <code>$ lsb_release -d | ||
+ | Description: Ubuntu 20.04.5 LTS</code> | ||
+ | * [[other:win10wsl#linux_version_installed|More information]] example | ||
+ | * Disk usage example | ||
+ | * <code>$ df -h | ||
Filesystem Size Used Avail Use% Mounted on | Filesystem Size Used Avail Use% Mounted on | ||
/dev/sdb 251G 1.1G 238G 1% / | /dev/sdb 251G 1.1G 238G 1% / | ||
Line 309: | Line 304: | ||
Description: Ubuntu 20.04.4 LTS | Description: Ubuntu 20.04.4 LTS | ||
Release: 20.04 | Release: 20.04 | ||
- | Codename: focal | + | Codename: focal</code> |
- | + | * [[other:win10wsl#linux_version_installed|More installed version information]] | |
- | 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 377: | Line 355: | ||
==== Opening a terminal ==== | ==== Opening a terminal ==== | ||
- | * Check the next sections to find out the different ways to open terminals | + | * Read the sub-sections below to find out the different ways to open //terminals// |
- | * Opening the first terminal will start WSL+Ubuntu | + | * Opening the first terminal (after opening a regular Windows session) will start WSL+Ubuntu |
+ | * The next terminals will open instantly (because Ubuntu is already running) | ||
* Closing all terminals will not stop WSL+Ubuntu. Read the [[#rebooting_wsl|rebooting WSL section]] if you need a clean start of WSL without rebooting Windows | * Closing all terminals will not stop WSL+Ubuntu. Read the [[#rebooting_wsl|rebooting WSL section]] if you need a clean start of WSL without rebooting Windows | ||
Line 385: | Line 364: | ||
=== 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! | + | <WRAP center round tip 60%> |
+ | The default terminal will be available without installing extra applications like ''WSLtty'' or the ''Windows Terminal''. It will work for testing WSL, but it is **not recommended** if you want to work comfortably | ||
+ | </WRAP> | ||
+ | |||
+ | 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: | ||
- | * Select //Ubuntu// from the ''Start'' menu | + | * Type ''wsl''+''<Enter>'' in the (Cortana) Search field on the task bar |
- | * Click on the //Ubuntu// icon on the task bar | + | * The other ways listed below **will only work as supposed if you have not [[other:win10wsl#restoring_or_relocating_a_linux_installation|restored or relocated a Linux installation]]!**\\ If you are using a restored/relocated installation, this will trigger a re-installation of the default Ubuntu on ''C:\''. Not a major problem, but it will use some unwanted space on ''C:\'' and you will need to [[other:win10wsl#uninstalling_wsl_or_a_distribution|use 'wsl --unregister Ubuntu']] to remove this unwanted version |
- | * if you don't have a //Ubuntu// icon on the task bar yet: right-click on the //Ubuntu// icon (in the ''Start'' menu) -> More -> Pin to the task bar | + | * Type ''ubuntu''+<Enter> in the (Cortana) Search field on the task bar |
- | * to open more terminals: right-click on the //Ubuntu// icon on the task bar -> Ubuntu | + | * Select //Ubuntu// from the ''Start'' menu |
- | * Type ''ubuntu''+<Enter> or ''wsl''+''<Enter>'' in the (Cortana) Search field on the task bar | + | * Click on the //Ubuntu// icon on the task bar |
+ | * if you don't have a //Ubuntu// icon on the task bar yet: right-click on the //Ubuntu// icon (in the ''Start'' menu) -> More -> Pin to the task bar | ||
+ | * to open more terminals: right-click on the //Ubuntu// icon on the task bar -> Ubuntu | ||
== Copy/paste in the default terminal == | == Copy/paste in the default terminal == | ||
- | Follow the steps in [[https://blogs.msdn.microsoft.com/commandline/2018/04/13/copy-and-paste-arrives-for-linuxwsl-consoles/|Copy and Paste arrives for Linux/WSL Consoles]] and you will then be able to **copy/paste by using ''Shift+Ctrl+C/V''** | + | Check this [[other:win10apps#windows_terminal|Windows Terminal]] section |
- | * The //QuickEdit mode// should already be selected by default and you can also: | ||
- | * **select** text with the left mouse button | ||
- | * **paste** the selected text with the right mouse button (click **twice** after a new selection) | ||
- | * Use ''Alt''+''<Enter>'' to toggle the terminal to full screen (maybe more useful options [[https://docs.microsoft.com/en-us/previous-versions/orphan-topics/ws.11/mt427362(v=ws.11)|here?]]) | ||
=== The WSLtty terminal === | === The WSLtty terminal === | ||
- | <note tip> | + | <WRAP center round tip 60%> |
- | * This is the recommended (by JYP) option for now | + | |
- | * If you can't open a terminal after Windows upgrades from WSL to WSL v2, get and install the latest version of WSLtty ! | + | * 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]]) |
- | </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!** | + | * If you can't open a ''WSLtty'' terminal after upgrading from ''WSL'' to ''WSL 2'', install the latest version of WSLtty ! |
+ | </WRAP> | ||
+ | |||
+ | |||
+ | |||
+ | [[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!** | ||
+ | |||
+ | * Use [[https://github.com/mintty/wsltty#windows-package-manager|winget]] (in a PowerShell) to install WSLtty | ||
+ | * <code>PS C:\Users\your_login> winget install wsltty | ||
+ | Trouvé WSLtty [Mintty.WSLtty] Version 3.6.0 | ||
+ | [...] | ||
+ | Installé correctement</code> | ||
- | * Download and execute the latest [[https://github.com/mintty/wsltty/releases|64bit installer]] (the most recent ''wsltty-*-install-x86_64.exe'' file) | + | * After installing, you will get **several new ways to open a terminal**: |
- | * After installing, you will get several ways to open a terminal: | + | * ''WSL terminal'' icon on the desktop |
- | * Double-click on the ''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]]) |
- | * ''U''=>''Ubuntu terminal'' and ''W''=>''WSL Terminal'' in the ''Start'' menu | + | * ''Start'' => ''W'' => ''WSL Terminal'' in the ''Start'' menu |
- | * There is also a ''W''=>''WSLtty'' folder, than you don't really need | + | * 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 | ||
* [[https://github.com/mintty/mintty/wiki|Technical stuff]] (on the Mintty wiki) | * [[https://github.com/mintty/mintty/wiki|Technical stuff]] (on the Mintty wiki) | ||
- | === The new Windows Terminal === | + | === The Windows Terminal === |
- | Microsoft is working on a powerful replacement of the old ''cmd'' terminal! Check [[https://github.com/microsoft/terminal|Windows Terminal, Console and Command-Line @ github]] | + | The [[other:win10apps#windows_terminal|Windows Terminal]] is really nice and powerful, and will become the recommended (by JYP) option as soon as we can use regular Linux select-copy/paste ([[https://github.com/microsoft/terminal/issues/7646|Feature request: add xterm-style select/copy/paste options]]) |
- | Note: the //Windows Terminal// looks really promising, but will be nice when there is a GUI for editing the options (rather the editing a //json// file with a text editor...) and a way to select //xterm-style// copy-pasting. See [[https://github.com/microsoft/terminal/issues/7646|Feature request: add xterm-style select/copy/paste options]] | ||
- | |||
- | * [[https://aka.ms/terminal|Getting the Windows Terminal from the Microsoft Store]] | ||
- | * [[https://docs.microsoft.com/en-us/windows/terminal/|Documentation]] | ||
=== 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 446: | Line 433: | ||
* Start from another terminal with: ''xfce4-terminal &'' | * Start from another terminal with: ''xfce4-terminal &'' | ||
- | ==== Location of the files ==== | + | ==== Where are the files? ==== |
- | You can optionally read the detailed [[https://blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support/|WSL File System Support]] page if you want to (try to) understand how things work and how both systems can share files. | + | === Accessing Linux files from the Windows Explorer === |
- | === Linux files seen from Windows === | + | * You can access the Linux files in ''/'' from Windows by opening the //virtual// ''\\wsl$'' path in the Windows explorer |
- | + | ||
- | * You can access the Linux files in ''/'' from Windows by opening the //virtual// ''\\wsl$'' path in the Windows explorer (since [[https://docs.microsoft.com/en-us/windows/wsl/release-notes#build-18342|Windows build 18342]]) | + | |
* Your Linux //home// directory is located in ''\\wsl$\Ubuntu\home\<your_login>'' | * Your Linux //home// directory is located in ''\\wsl$\Ubuntu\home\<your_login>'' | ||
+ | * There will be some content in ''\\wsl$'' only if a Linux installation is running (i.e. it shows as //Running// in ''wsl -l -v'') | ||
+ | * It's useful to [[[other:win10config#local_linux_folders|create a shortcut to wsl$ on the desktop]] | ||
- | * The content of the Ubuntu ''/'' directory is actually located in the following //hidden// sub-directory of the user's Windows //home// directory: ''C:\Users\<your_login>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs'' | + | === Accessing Windows files from Linux === |
- | <note important>[[https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/|Do not change Linux files in '/' from Windows!]] (it's safe **only** if you use the ''\\wsl$'' path) | + | <WRAP center round tip 60%> |
- | + | When you are in a Windows //explorer// window, you can directly open a Linux terminal in a specific directory by holding Shift and right-clicking on a directory and selecting //Ouvrir l'interpréteur de commandes Linux ici// (//Open the Linux command line here//?) in the context menu.</WRAP> | |
- | If you need to easily update files from both Linux and Windows, put them in a regular Windows directory (not in the hidden directory mentioned above, where the Linux system is installed)</note> | + | |
- | + | ||
- | === Windows files seen from Linux === | + | |
- | + | ||
- | Note: When you are in an explorer window, you can open a Windows terminal with Linux by holding Shift and right-clicking on a directory and choosing Linux in the context menu. | + | |
The Windows partitions are mounted under ''/mnt'' in Linux: | The Windows partitions are mounted under ''/mnt'' in Linux: | ||
Line 469: | Line 451: | ||
<code>$ df -h | <code>$ df -h | ||
Filesystem Size Used Avail Use% Mounted on | Filesystem Size Used Avail Use% Mounted on | ||
- | rootfs 111G 30G 82G 27% / | + | /dev/sdb 251G 1.5G 237G 1% / |
- | none 111G 30G 82G 27% /dev | + | [...] |
- | none 111G 30G 82G 27% /run | + | C:\ 472G 121G 351G 26% /mnt/c |
- | none 111G 30G 82G 27% /run/lock | + | D:\ 480G 4.2G 476G 1% /mnt/d</code> |
- | none 111G 30G 82G 27% /run/shm | + | |
- | none 111G 30G 82G 27% /run/user | + | |
- | C: 111G 30G 82G 27% /mnt/c | + | |
- | H: 366G 138M 366G 1% /mnt/h</code> | + | |
Read the [[#mounting_disks_and_network_drives|Mounting disks and network drives]] section if you want to access remote server disks on your local network, or just want to access USB disks/sticks on your local computer. | Read the [[#mounting_disks_and_network_drives|Mounting disks and network drives]] section if you want to access remote server disks on your local network, or just want to access USB disks/sticks on your local computer. | ||
Line 483: | Line 461: | ||
* The ''wslpath'' command can be used to make Windows<->Linux path conversion | * The ''wslpath'' command can be used to make Windows<->Linux path conversion | ||
+ | * FIXME More technical WSL disks information (move the disk technical information to the advanced usage section, and link to it) | ||
==== Linux version installed ==== | ==== Linux version installed ==== | ||
+ | |||
+ | You can use the following commands to get some information about WSL and the currently installed Linux | ||
<code>$ date | <code>$ date | ||
- | Thu Feb 20 11:18:57 CET 2020 | + | Tue Sep 13 16:48:10 CEST 2022 |
+ | |||
+ | $ env | grep WSL | ||
+ | WSL_DISTRO_NAME=Ubuntu_custom | ||
+ | WSL_INTEROP=/run/WSL/12_interop | ||
+ | WSL_GUEST_IP=192.168.113.203 | ||
+ | WSLENV= | ||
+ | WSL_HOST_IP=192.168.112.1 | ||
$ lsb_release -a | $ lsb_release -a | ||
No LSB modules are available. | No LSB modules are available. | ||
Distributor ID: Ubuntu | Distributor ID: Ubuntu | ||
- | Description: Ubuntu 18.04.4 LTS | + | Description: Ubuntu 20.04.5 LTS |
- | Release: 18.04 | + | Release: 20.04 |
- | Codename: bionic | + | Codename: focal |
$ cat /proc/version | $ cat /proc/version | ||
- | Linux version 4.4.0-18362-Microsoft (Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) ) #476-Microsoft Fri Nov 01 16:53:00 PST 2019 | + | 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 |
$ uname -a | $ uname -a | ||
- | Linux some_machine_name 4.4.0-18362-Microsoft #476-Microsoft Fri Nov 01 16:53:00 PST 2019 x86_64 x86_64 x86_64 GNU/Linux</code> | + | Linux sadira034 5.10.102.1-microsoft-standard-WSL2 #1 SMP Wed Mar 2 00:30:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux |
+ | |||
+ | $ cat /etc/*release* | ||
+ | DISTRIB_ID=Ubuntu | ||
+ | DISTRIB_RELEASE=20.04 | ||
+ | DISTRIB_CODENAME=focal | ||
+ | DISTRIB_DESCRIPTION="Ubuntu 20.04.5 LTS" | ||
+ | NAME="Ubuntu" | ||
+ | VERSION="20.04.5 LTS (Focal Fossa)" | ||
+ | ID=ubuntu | ||
+ | ID_LIKE=debian | ||
+ | PRETTY_NAME="Ubuntu 20.04.5 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> | ||
==== Ubuntu packages installed ==== | ==== Ubuntu packages installed ==== | ||
Line 516: | Line 522: | ||
- | $ dpkg --list > /mnt/c/Scratch/jypeter/Ubuntu_Installed_List_`date +"%y-%m-%d"`.txt | + | $ dpkg --list > /mnt/c/Scratch/your_login/Ubuntu_Installed_List_`date +"%y-%m-%d"`.txt |
- | $ wc -l /mnt/c/Scratch/jypeter/Ubuntu_Installed_List_*.txt | + | $ wc -l /mnt/c/Scratch/your_login/Ubuntu_Installed_List_*.txt |
- | 642 /mnt/c/Scratch/jypeter/Ubuntu_Installed_List_22-08-29.txt</code> | + | 642 /mnt/c/Scratch/your_login/Ubuntu_Installed_List_22-08-29.txt</code> |
Full (example) list of installed packages: {{ :other:ubuntu_installed_list_22-08-29.txt |}} | Full (example) list of installed packages: {{ :other:ubuntu_installed_list_22-08-29.txt |}} | ||
Line 526: | Line 532: | ||
Use the following to update your ubuntu installation: | Use the following to update your ubuntu installation: | ||
- | <code>$ sudo -s | + | ''$ sudo apt update && sudo apt upgrade'' |
+ | |||
+ | or <code>$ sudo -s | ||
$ apt-get update | $ apt-get update | ||
$ apt-get upgrade</code> | $ apt-get upgrade</code> | ||
Line 542: | Line 551: | ||
===== Getting ready for some real work ===== | ===== Getting ready for some real work ===== | ||
- | <note important>We often assume below that you are using the **root** account (''sudo -s''), or ''sudo'' when executing the ''apt*'' installation commands, and othe admin commands</note> | + | <note>We often assume below that you are using the **root** account (with ''sudo -s'', or ''sudo'') when executing the ''apt*'' installation commands, and other //admin// commands</note> |
==== Specifying correctly the display language ==== | ==== Specifying correctly the display language ==== | ||
Line 988: | Line 997: | ||
===== Advanced usage ===== | ===== Advanced usage ===== | ||
- | ==== WSL security WARNING ==== | + | ==== WSL security WARNING! ==== |
- | 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. WSL+Linux is designed to allow you to easily use Linux on Windows, including easily using the Linux root account without having to know any password of the Linux installation! | + | <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> | ||
- | This is not a security issue, because your installation is protected by your Windows account security | + | 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! |
- | You should still be aware that: | + | <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 | * Somebody gaining access to your Windows account will also have full access to the Linux installation | ||
- | * Always make sure that only you can access your Windows account. And your LSCE Windows laptop will be encrypted with bitlocker | + | * <wrap hi>Do not use an existing password for the WSL Linux account</wrap>\\ Somebody could easily extract your password information... |
- | * somebody gaining access to a backup of your Linux installation will easily have access to the Linux installation | + | * Storing data in the Linux part of your computer does not add any extra security |
- | * You can save your backup to an external disk encrypted with bitlocker | + | * 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 1058: | Line 1083: | ||
==== 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 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'') | * 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 1086: | Line 1111: | ||
* 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 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 | * <code># cat /etc/wsl.conf | ||
cat: /etc/wsl.conf: No such file or directory | cat: /etc/wsl.conf: No such file or directory | ||
Line 1102: | Line 1127: | ||
* 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 1109: | Line 1134: | ||
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 a 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 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 ==== | + | |
- | + | ||
- | 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 1155: | Line 1167: | ||
* 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 === | ||
Line 1207: | Line 1244: | ||
* 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 | ||
- | wsl</code> | + | wsl |
+ | |||
+ | $ env | grep -i wsl | ||
+ | WSL_DISTRO_NAME=Ubuntu | ||
+ | WSLENV= | ||
+ | </code> | ||
===== Other WSL resources and links ===== | ===== Other WSL resources and links ===== | ||
+ | |||
+ | * Possibly useful things to sort | ||
+ | * [[https://docs.microsoft.com/en-us/windows/wsl/networking|Accessing network applications with WSL]] | ||
+ | * [[https://docs.microsoft.com/en-us/windows/wsl/faq#how-do-i-run-an-openssh-server-|How do I run an OpenSSH server?]] | ||
* [[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]] |