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/31 12:50] jypeter [Creating a backup] Improved |
other:win10wsl [2022/09/06 14:54] jypeter [Base installation] Added a backup step |
||
---|---|---|---|
Line 174: | 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 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 | + | * 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 |
* <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 363: | Line 363: | ||
PS C:\> wsl cat /proc/version | 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> | 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 ===== | ||
Line 981: | Line 984: | ||
* Stop //this instance// of Linux (e.g. if it is named //Ubuntu//): **''wsl %%--%%terminate Ubuntu''** | * Stop //this instance// of Linux (e.g. if it is named //Ubuntu//): **''wsl %%--%%terminate Ubuntu''** | ||
* or Stop //all// the currently running Linux distributions: **''wsl %%--%%shutdown''** | * or Stop //all// the currently running Linux distributions: **''wsl %%--%%shutdown''** | ||
- | |||
- | |||
- | ==== Restoring a WSL backup ==== | ||
- | |||
- | 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 Check if [[https://wslhub.com/|WSL Manager]] is maintained and can be useful | ||
- | |||
- | 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 | ||
Line 1012: | Line 997: | ||
* used for //relocating// the full installation from ''C:\'' to another disk | * used for //relocating// the full installation from ''C:\'' to another disk | ||
- | Detailed steps: | + | 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 | * Determine the name of the current Linux installation(s) used in WSL | ||
* <code>> wsl --list --verbose | * <code>> wsl --list --verbose | ||
Line 1029: | Line 1014: | ||
* If you are not going to use the backup tar file right away, you can optionally compress it in order to save some space | * 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> | + | * <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 === | === Backup of specific directories === | ||
Line 1057: | Line 1048: | ||
==== Restoring or relocating a Linux installation ==== | ==== 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:\'' | + | 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 | ||
+ | |||
+ | # 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 Check if [[https://wslhub.com/|WSL Manager]] is maintained and can be useful | ||
+ | |||
+ | 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 ==== | ==== Uninstalling WSL ==== | ||
Line 1145: | Line 1201: | ||
* [[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]] |