User Tools

Site Tools


other:win10wsl

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
other:win10wsl [2022/08/30 15:49]
jypeter [Advanced usage]
other:win10wsl [2022/08/31 12:42]
jypeter Finished moving the backup section
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 541: Line 551:
 en_US.UTF8 en_US.UTF8
 </​code>​ </​code>​
 +
 +
 ==== Package management ==== ==== Package management ====
  
Line 549: Line 561:
   * 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 555: Line 568:
   * ''​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 724: Line 738:
  
  * [[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 948: Line 964:
   * [[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 966: Line 983:
  
  
-==== Creating ​backup of the Linux running in WSL ====+==== Restoring ​a WSL backup ​====
  
-There are several types of WSL related directories that you may want to back up:+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
  
-  * <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>''​) +FIXME Check if [[https://wslhub.com/|WSL Manager]] is maintained ​and can be useful
-    * <code bash>$ cd /home+
  
-$ du -sh $USER +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: 
-232K    <your_login>+  * ''​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
  
-# We assume below that there is an existing /​mnt/​c/​Scratch/<​your_login>/​ directory 
-# It's a WINDOWS directory C:​\Scratch\<​your_login>​ 
-$ tar cfz /​mnt/​c/​Scratch/​$USER/​${USER}_home_`date +%y%m%d_%H%M`.tgz $USER 
  
-# Check the size of the new (and existing old) backup(s) +===== Advanced usage ===== 
-$ ls -ltr /​mnt/​c/​Scratch/​$USER/​${USER}_*.tgz +
-81K Jan 21  2020 /​mnt/​c/​Scratch/<​your_login>/<​your_login>​_home_200121.tgz +
-93K Aug 22  2020 /​mnt/​c/​Scratch/<​your_login>/<​your_login>​_home_200822_1151.tgz +
-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 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]])+==== Creating ​a backup ​====
  
-  * <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 tar file, that can be used later for restoring the full installation (//​restoration//​ not tested yet) +=== Backup of FULL Linux installation ​===
-    * 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+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 steps: 
 +  * 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 --verbose
   NAME      STATE           ​VERSION   NAME      STATE           ​VERSION
 * Ubuntu ​   Running ​        ​2</​code>​ * Ubuntu ​   Running ​        ​2</​code>​
-    ​* [[other:​win10wsl#​rebooting_wsl|Stop WSL+Linux]] +  ​* [[other:​win10wsl#​rebooting_wsl|Stop WSL+Linux]] 
-      * <​code>​> wsl --list --verbose +      * <​code>>​ wsl --shutdown
-  NAME      STATE           ​VERSION +
-* Ubuntu ​   Running ​        2 +
- +
-> wsl --shutdown+
  
 > wsl -l -v > wsl -l -v
   NAME      STATE           ​VERSION   NAME      STATE           ​VERSION
-* Ubuntu ​   Stopped ​       21</​code>​ +* Ubuntu ​   Stopped ​        2</​code>​ 
-    * Export the current ​Linux to a //tar// file: +  * Export the specified ​Linux installation ​to a //tar// file: 
-      FIXME ''​wsl --export ​Ubuntu C:\Scratch\jypeter\WSL\WSL_Ubuntu_20.04.4_LTS_stdu_22-08-29.tar''​ +    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.Gb 
-        * 1.Gb +    You should use a detailed enough file name for the tar file\\ e.g. WSL_<Linux_Distribution>_<​Distribution_Version>​_<​User>_<​Date>​.tar 
-      * <code> > wsl --export Ubuntu C:​\Scratch\<​your_login>​\<​your_login>​_ubuntu-<​ubuntu_version>​-full_<​some_date>​.tar</​code>​ +    * Example: ''​wsl --export Ubuntu C:​\Scratch\<​your_login>​\WSL\WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar''​
-    * 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* +    ​If you are not going to use the backup ​tar file right away, you can optionally compress it in order to save some space 
-976M Jan 21  2020 <your_login>_200121.tar.gz +      ​* <code>Add compression example here</code>
-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 +=== Other types of backup ​===
-$ tar tvf <​your_login>​-20-04-1-full_210224.tar | wc -l +
-112711+
  
-$ gzip *ubuntu*.tar+You can also just create backups of specific directories:​
  
-$ ls -ltrh *ubuntu*tar* +  * 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>​''​) 
-976M Jan 21  2020 <​your_login>​_200121.tar.gz +    ​* ​<​code ​bash>$ cd /home
-1.2G Aug 22  2020 <​your_login>​-16.04-full_200822.tar.gz +
-1.8G Feb 24 14:06 <​your_login>​-20-04-1-full_210224.tar.gz +
-</code>+
  
-==== Restoring a WSL backup ====+$ du -sh $USER 
 +232K    <​your_login>​
  
-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+# We assume below that there is an existing ​/mnt/c/Scratch/<​your_login>​directory 
 +# It's a WINDOWS directory C:\Scratch\<​your_login>​ 
 +$ tar cfz /mnt/c/Scratch/$USER/${USER}_home_`date +%y%m%d_%H%M`.tgz $USER
  
-FIXME Check if [[https://wslhub.com/|WSL Manager]] is maintained and can be useful +Check the size of the new (and existing old) backup(s) 
- +$ ls -ltr /mnt/c/Scratch/$USER/​${USER}_*.tgz 
-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: +81K Jan 21  2020 /​mnt/​c/​Scratch/​<your_login>/<​your_login>​_home_200121.tgz 
-  ​* ''​wsl %%--%%import ​<DistributionName<​InstallLocation>​ ubuntu_<​your_login>​_<​some_date>​.tar''​ +93K Aug 22  2020 /mnt/c/Scratch/<​your_login>​/<your_login>_home_200822_1151.tgz 
-    * Note: found a page mentioning that you should be in a terminal with admin rights when using ''​%%--%%import''​ +95K Feb 24 12:09 /mnt/c/Scratch/<​your_login>​/<​your_login>​_home_210224_1209.tgz</code>
-    * 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 +
- +
- +
-===== Advanced usage =====+
  
-==== Creating ​backup ​of Linux installation ====+  * Regular Windows folders where you store data used by WSL: you can use ''​tar''​ in 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]]
  
  
other/win10wsl.txt · Last modified: 2023/12/06 13:24 by jypeter