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
other:win10wsl [2022/09/19 11:27]
jypeter [Opening a terminal] Added location of WSLtty config file
other:win10wsl [2023/12/06 13:24] (current)
jypeter [Other WSL resources and links] Added phoronix benchmarks link
Line 2: Line 2:
  
 [[other:​index#​windows_10_notes|Other Windows 10 related notes]] [[other:​index#​windows_10_notes|Other Windows 10 related notes]]
 +
 +<WRAP center round alert 60%>
 +JYP is still working on this page! Some content may be out of date, or still related to WSL 1
 +</​WRAP>​
 +
  
 <WRAP center round important 60%> <WRAP center round important 60%>
Line 144: Line 149:
  
 <WRAP center round tip 60%> <WRAP center round tip 60%>
-You can skip reading this WSL //​requirement//​ if you are installing WSL for the first time, and are therefor ​directly installing WSL 2+You can skip reading this WSL //​requirement//​ if you are installing WSL for the first time, and are therefore ​directly installing WSL 2
  
-Come back later if you have problems+Come back here later (only) ​if you have problems
 </​WRAP>​ </​WRAP>​
  
Line 167: Line 172:
     * <​code> ​                                           Virtualisation activée dans le microprogramme :​ Oui</​code>​     * <​code> ​                                           Virtualisation activée dans le microprogramme :​ Oui</​code>​
  
 +=== Hyper-V related information ===
 +
 +Miscellaneous technical links and information,​ in case we need this later...
 +
 +  * [[https://​learn.microsoft.com/​en-us/​virtualization/​|Virtualization documentation]]
 +    * [[https://​learn.microsoft.com/​en-us/​virtualization/​api/​|Hyper-V APIs]]
 +  * ''​hcsdiag list''​ and ''​hcsdiag kill <​ID>''​
 ===== Base installation ===== ===== Base installation =====
  
Line 354: Line 366:
  
 ==== Opening a terminal ==== ==== Opening a terminal ====
 +
 +<WRAP center round tip 60%>
 +Having a terminal you can efficiently interact with is the basis of your future work with WSL+Ubuntu!
 +</​WRAP>​
  
   * Read the sub-sections below to find out the different ways to open //​terminals//​   * Read the sub-sections below to find out the different ways to open //​terminals//​
Line 360: Line 376:
   * 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
  
-Having ​a terminal ​you can efficiently interact with is the basis of your future work with WSL+Ubuntu! You can **optionally** read the [[https://​nickjanetakis.com/​blog/​conemu-vs-hyper-vs-terminus-vs-mobaxterm-terminator-vs-ubuntu-wsl|ConEmu vs Hyper vs Terminus vs MobaXTerm Terminator vs Ubuntu WSL]] blog if you really want more details+Optional reading (if you really have time): 
 +  * [[https://​unix.stackexchange.com/​questions/​4126/​what-is-the-exact-difference-between-a-terminal-a-shell-a-tty-and-a-con|What ​is the exact difference between a '​terminal',​ a '​shell',​ a '​tty'​ and a '​console'?​]] 
 +  ​* [[https://​nickjanetakis.com/​blog/​conemu-vs-hyper-vs-terminus-vs-mobaxterm-terminator-vs-ubuntu-wsl|ConEmu vs Hyper vs Terminus vs MobaXTerm Terminator vs Ubuntu WSL]] for more details ​about terminals 
  
 === The default terminal === === The default terminal ===
Line 425: Line 444:
 === 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 [[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! +You can [[other:​win10wsl#​adding_useful_packages|install additional graphical terminals ​in the Linux installation]], 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 == +
- +
-  * Install with: ''​apt-get install xterm''​ +
-  * Start from another terminal with: ''​xterm &''​ +
- +
-== xfce-terminal ==+
  
-  * Install with: ''​apt-get install xfce4-terminal''​ +  * ''​xterm'' ​package 
-  * Start from another terminal with: ''​xfce4-terminal ​&''​+  * ''​xfce4-terminal'' ​package
  
 ==== Where are the files? ==== ==== Where are the files? ====
Line 603: Line 615:
  
 FIXME [[https://​snapcraft.io/​docs|Snap documentation]] FIXME [[https://​snapcraft.io/​docs|Snap documentation]]
 +
  
 === Installing extra package managers === === Installing extra package managers ===
Line 632: Line 645:
       * EN: [[https://​help.ubuntu.com/​community/​SynapticHowto|synaptic Howto @ Ubuntu]]       * EN: [[https://​help.ubuntu.com/​community/​SynapticHowto|synaptic Howto @ Ubuntu]]
       * FR: [[https://​doc.ubuntu-fr.org/​synaptic|synaptic @ ubuntu-fr]]       * FR: [[https://​doc.ubuntu-fr.org/​synaptic|synaptic @ ubuntu-fr]]
 +
  
 === Some useful commands === === Some useful commands ===
Line 672: Line 686:
 [...]</​code>​ [...]</​code>​
  
-=== Adding some useful packages === 
  
-There is not that much installed by default in Ubuntu, ​now is the time to get ready for work!+=== Adding useful packages === 
 + 
 +There is not that much installed by default in Ubuntu, ​and we use ''​apt insall'' ​to get ready for some real work!
  
 <​code>​$ sudo apt install gcc libglu1-mesa mesa-utils x11-apps xterm xfce4-terminal emacs evince eog imagemagick nco cdo netcdf-bin ncview</​code>​ <​code>​$ sudo apt install gcc libglu1-mesa mesa-utils x11-apps xterm xfce4-terminal emacs evince eog imagemagick nco cdo netcdf-bin ncview</​code>​
 +
 +Notes:
 +  * Some of the installed packages (''​nco cdo netcdf-bin ncview''​) are used for handling data files in //NetCDF format// may not be useful to people outside LSCE
 +  * Adding lots of extra packages requires **much more disk space**, and the size of the ''​.vhdx''​ will increase significantly!
 +    * <​code>​$ ls -lh /​mnt/​d/​WSL_Distributions/​Ubuntu_custom/​ext4.vhdx
 +4.7G Sep 16 18:02 /​mnt/​d/​WSL_Distributions/​Ubuntu_custom/​ext4.vhdx</​code>​
 +    * Size of the [[other:​win10wsl#​creating_a_backup|backup]] after adding the extra packages: we go from 549 Mb to 1.2 Gb!\\ 1.2G Sep 19 13:52 WSL_Ubuntu_20.04.5_LTS_stdu_22-09-19.tar.gz
 ==== Using an X server ==== ==== Using an X server ====
  
Line 706: Line 728:
   * FIXME **//X server// and WSL2** : check ''​export DISPLAY=$(cat /​etc/​resolv.conf | grep nameserver | awk '​{print $2}'​):​0.0''​ in [[https://​solvercube.com/​how-to-install-ubuntu-20-04-on-windows-using-wsl/​|How to install Ubuntu 20.04 on Windows using WSL]]   * FIXME **//X server// and WSL2** : check ''​export DISPLAY=$(cat /​etc/​resolv.conf | grep nameserver | awk '​{print $2}'​):​0.0''​ in [[https://​solvercube.com/​how-to-install-ubuntu-20-04-on-windows-using-wsl/​|How to install Ubuntu 20.04 on Windows using WSL]]
  
- 
-==== Adding useful packages ==== 
- 
-Reminder: you need to use the ''​root''​ account (with ''​sudo -s''​) in order to use the following commands 
- 
-<​code>​$ apt-get install gcc libglu1-mesa mesa-utils libsm6 x11-apps 
- 
-# Check the "​Terminals started from Linux" section 
-# if you need to install extra terminals 
- 
-# Install emacs 
-$ apt-get install emacs 
- 
-# Install pdf (evince) and image (eog) viewers 
-$ apt-get install evince eog 
- 
-# Install wslu to improve the Windows<​->​Linux communication 
-$ apt-get install wslu 
- 
-# The packages below are useful for dealing with climate data 
-# in netCDF files (and are also requirements of CLIMAF) 
-$ aptitude install imagemagick nco cdo netcdf-bin ncview exiv2</​code>​ 
  
  
Line 763: Line 763:
 578 /​mnt/​h/​Scratch/​jyp/​pkg_190221.txt</​code>​ 578 /​mnt/​h/​Scratch/​jyp/​pkg_190221.txt</​code>​
  
-==== Upgrading ​ubuntu ​====+==== Upgrading ​Ubuntu ​====
  
 <WRAP center round tip 60%> <WRAP center round tip 60%>
-You can skip this section if you have just installed ​ubuntu, since you are already running the latest stable release available+You can skip this section if you have just installed ​Ubuntu, since you are already running the latest stable release available
 </​WRAP>​ </​WRAP>​
  
  
-The **updates** are for maintaining the same version of ubuntu ​(e.g. you go from version ''​18.04.2''​ to ''​18.04.5''​),​ while **upgrades** are for going from one major version to the next (e.g ''​16.xx''​ => ''​18.xx''​ => ''​20.xx''​). We try to only use the stable major releases, that have an even version number.+The **updates** are for maintaining the same version of Ubuntu ​(e.g. you go from version ''​18.04.2''​ to ''​18.04.5''​),​ while **upgrades** are for going from one major version to the next (e.g ''​16.xx''​ => ''​18.xx''​ => ''​20.xx''​). We try to only use the stable major releases, that have an even version number.
  
-We use the **LTS versions** (//Long Time Support//) to ensure even more stability, which means that we will get updates of a given major release for quite some time after the next major release is available, so it is not mandatory to updgrade ubuntu ​if you are still receiving updates for the release you use+We use the **LTS versions** (//Long Time Support//) to ensure even more stability, which means that we will get updates of a given major release for quite some time after the next major release is available, so it is not mandatory to upgrade Ubuntu ​if you are still receiving updates for the (major) ​release you are using
  
-There should not be any risk, but it may be a good idea to [[other:​win10wsl#​creating_a_backup_of_the_linux_running_in_wsl|create a backup]] of your current ​ubuntu ​before upgrading it!+There should not be any risk, but it may be a good idea to [[other:​win10wsl#​creating_a_backup_of_the_linux_running_in_wsl|create a backup]] of your current ​Ubuntu ​before upgrading it!
  
 Use ''​sudo''​ for each command below, or just become root by using ''​sudo su -''​ Use ''​sudo''​ for each command below, or just become root by using ''​sudo su -''​
Line 1110: Line 1110:
   * 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
-  NAME      STATE           ​VERSION +  NAME             ​STATE           ​VERSION 
-Ubuntu ​   ​Running ​        ​2</​code>​+Ubuntu_custom ​   ​Running ​        ​2</​code>​
   * [[other:​win10wsl#​rebooting_wsl|Stop all running installations]]   * [[other:​win10wsl#​rebooting_wsl|Stop all running installations]]
       * <​code>>​ wsl --shutdown       * <​code>>​ wsl --shutdown
  
 > wsl -l -v > wsl -l -v
-  NAME      STATE           ​VERSION +  NAME             ​STATE           ​VERSION 
-Ubuntu ​   ​Stopped ​        ​2</​code>​+Ubuntu_custom ​   ​Stopped ​        ​2</​code>​
       * ... or stop just the specific installation that you want to save:\\ ''​%%>​ wsl --terminate Ubuntu_custom%%''​       * ... or stop just the specific installation that you want to save:\\ ''​%%>​ wsl --terminate Ubuntu_custom%%''​
  
   * Export the specified Linux installation to a //tar// file:   * 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 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 (550 Mb after compression)
     * You should use a detailed enough file name for the tar file\\ e.g. WSL_<​Linux_Distribution>​_<​Distribution_Version>​_<​User>​_<​Date>​.tar     * 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%%''​+    * Example: ''​%%wsl --export Ubuntu C:​\Scratch\your_login\WSL\WSL_Ubuntu_20.04.5_LTS_stdu_22-10-27.tar%%''​
  
     * You can (probably) save a lot of space by compressing the backup     * You can (probably) save a lot of space by compressing the backup
-      * It is not documented (yet), but the [[https://​github.com/​MicrosoftDocs/​WSL/​issues/​1607|wsl --import]] command can directly import ''​tar.gz''​ files! +      * It is not documented (yet), but the [[https://​github.com/​MicrosoftDocs/​WSL/​issues/​1607|wsl --import]] command ​(if you need to use it later) ​can directly import ''​tar.gz''​ files! 
-      * <​code>​$ ls -lh /​mnt/​c/​Scratch/​your_login/​WSL/​WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar +      * <​code>​$ ls -lh /​mnt/​c/​Scratch/​your_login/​WSL/​WSL_Ubuntu_20.04.5_LTS_stdu_22-10-27.tar 
- 1.4G Aug 29 17:49 /​mnt/​c/​Scratch/​your_login/​WSL/​WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar+ 3.3G Oct 27 18:01 /​mnt/​c/​Scratch/​your_login/​WSL/​WSL_Ubuntu_20.04.5_LTS_stdu_22-10-27.tar
  
-$ gzip  /​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-10-27.tar
  
 $ ls -lh /​mnt/​c/​Scratch/​your_login/​WSL/​WSL_Ubuntu_* $ ls -lh /​mnt/​c/​Scratch/​your_login/​WSL/​WSL_Ubuntu_*
  549M Aug 29 17:49 /​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
- 548M Sep 14 16:18 /​mnt/​c/​Scratch/​your_login/​WSL/​WSL_Ubuntu_20.04.5_LTS_stdu_22-09-14.tar.gz</​code>​+ 548M Sep 14 16:18 /​mnt/​c/​Scratch/​your_login/​WSL/​WSL_Ubuntu_20.04.5_LTS_stdu_22-09-14.tar.gz 
 + 1.2G Sep 19 13:52 /​mnt/​c/​Scratch/​your_login/​WSL/​WSL_Ubuntu_20.04.5_LTS_stdu_22-09-19.tar.gz 
 + 1.3G Oct 27 18:01 /​mnt/​c/​Scratch/​your_login/​WSL/​WSL_Ubuntu_20.04.5_LTS_stdu_22-10-27.tar.gz</​code>​
  
 === Backup of specific directories === === Backup of specific directories ===
Line 1140: Line 1142:
 You can also just create backups of specific directories:​ You can also just create backups of specific directories:​
  
-  * 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''​)+  * 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/WSL''​ or ''​c:​\Scratch\your_login\WSL''​)
     * <code bash>$ cd /home     * <code bash>$ cd /home
  
 $ du -sh $USER $ du -sh $USER
-232K    ​your_login+88K    ​your_login
  
-# We assume below that there is an existing /​mnt/​c/​Scratch/​your_login/​ directory +# We assume below that there is an existing /​mnt/​c/​Scratch/​your_login/WSL/ directory 
-It's a WINDOWS ​directory C:​\Scratch\your_login +Same directory ​(seen from WINDOWS) ​C:​\Scratch\your_login\WSL\ 
-$ tar cfz /​mnt/​c/​Scratch/​$USER/​${USER}_home_`date +%y%m%d_%H%M`.tgz $USER+$ tar cfz /​mnt/​c/​Scratch/​$USER/WSL/​${USER}_home_`date +%y-%m-%d_%H%M`.tgz $USER
  
 # Check the size of the new (and existing old) backup(s) # Check the size of the new (and existing old) backup(s)
-$ ls -ltr /​mnt/​c/​Scratch/​$USER/​${USER}_*.tgz +$ ls -ltrh /​mnt/​c/​Scratch/​your_login/​WSL/​${USER}_*.tgz 
-81K Jan 21  2020 /​mnt/​c/​Scratch/​your_login/​your_login_home_200121.tgz + 5.0K Oct 28 16:09 /​mnt/​c/​Scratch/​your_login/​WSL/​stdu_home_22-10-28_1609.tgz</​code>​
-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>​+
  
   * 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]])   * 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]])
Line 1337: Line 1337:
  
   * [[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://​www.phoronix.com/​search/​WSL|WSL performance benchmarks @ phoronix]]
  
   * [[https://​craigloewen-msft.github.io/​WSLTipsAndTricks/​|WSL Tips and Tricks]]   * [[https://​craigloewen-msft.github.io/​WSLTipsAndTricks/​|WSL Tips and Tricks]]
other/win10wsl.1663586832.txt.gz · Last modified: 2022/09/19 11:27 by jypeter