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/31 11:47]
jypeter [Creating a backup of a Linux installation] Improved
other:win10wsl [2022/09/05 15:45]
jypeter [Other WSL resources and links] Added link to Tips and Tricks
Line 983: Line 983:
  
  
-==== Creating a backup of the Linux running ​in WSL ====+===== Advanced usage ===== 
 + 
 + 
 +==== 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 ​===
  
-There are several types of WSL related ​directories ​that you may want to back up:+You can also just create backups ​of specific ​directories:​
  
-  * <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>''​)+  * 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 1003: Line 1039:
 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]])
  
  
 +==== 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.
 +
 +Note: 
 +  * 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!
 +    * 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
 +  * This is an indirect way of reclaiming the unused space of a Linux installation,​ i.e 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:
 +
 +  * 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''​
 +  * 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\\ e.g. ''​D:​\WSL_Distributions\Ubuntu_custom''​
 +  * Import the distribution,​ giving it a name that does not appear in ''​wsl -l -v''​
 +    * <​code>>​ wsl -l -v
 +  NAME      STATE           ​VERSION
 +* Ubuntu ​   Stopped ​        2
 +
 +> 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
 +
 +> wsl -l -v
 +  NAME             ​STATE ​          ​VERSION
 +* 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
 +    * Directly from the Windows Terminal pull-down menu
 +    * Or from a PowerShell, using ''​wsl --distribution Ubuntu_custom''​
 +    * WARNING: even if the distribution we imported had an existing default ''​stdu''​ user, 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
 +  * 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''​ here) 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
 +
 +# echo -e "​[user]\ndefault=stdu"​ >> /​etc/​wsl.conf
  
-==== Restoring a WSL backup ====+# cat /​etc/​wsl.conf 
 +[user] 
 +default=stdu</​code>​ 
 +    * Restart the Linux installation to take the new settings into account 
 +      * ''​%%wsl ​ --terminate Ubuntu_custom%%''​ 
 +    * If you need the ''​root''​ account later, you will need to use the ''​sudo''​ command from the new default account 
 +      * <​code>​$ whoami 
 +stdu 
 +stdu@sadira034:​~$ sudo su - 
 +[sudo] password for stdu: 
 +root@sadira034:​~#​ whoami 
 +root</​code>​
  
 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 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
Line 1025: Line 1111:
  
  
-===== Advanced usage ===== 
- 
- 
-==== 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 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 
-* 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.G 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.4_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>​Add compression example here</​code>​ 
- 
-=== Other types of backup === 
- 
- 
-==== Restoring or relocating a Linux installation ==== 
- 
-When we have a backup in a tar file, we can restore it to the default location (Check ?? FIXME), or specify where we want to restore it. This is a way of moving (relocating) an installation to another disk or partition than the default location ''​C:​\''​ 
 ==== Uninstalling WSL ==== ==== Uninstalling WSL ====
  
Line 1148: Line 1198:
   * [[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]]
other/win10wsl.txt · Last modified: 2023/12/06 13:24 by jypeter