wsl.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Wed, 02 Jun 2021 16:39:36 +0300
changeset 2508 fe9788ce44ba
parent 2493 e83847e718a0
child 2528 b86cd4fc873e
permissions -rw-r--r--
Mounting Windows file systems.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2365
d907310aeacf wsl utility.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     1
d907310aeacf wsl utility.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     2
==================================
d907310aeacf wsl utility.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
 WSL, Windows subsystem for Linux
d907310aeacf wsl utility.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
==================================
d907310aeacf wsl utility.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
.. contents::
d907310aeacf wsl utility.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
   :local:
d907310aeacf wsl utility.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
2457
9e6abc83e5d6 Windows Subsystem for Linux Documentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2423
diff changeset
     8
Documentation
2493
e83847e718a0 Fixed RST section format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2486
diff changeset
     9
=============
2457
9e6abc83e5d6 Windows Subsystem for Linux Documentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2423
diff changeset
    10
9e6abc83e5d6 Windows Subsystem for Linux Documentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2423
diff changeset
    11
https://docs.microsoft.com/en-us/windows/wsl/
9e6abc83e5d6 Windows Subsystem for Linux Documentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2423
diff changeset
    12
  Windows Subsystem for Linux Documentation.
9e6abc83e5d6 Windows Subsystem for Linux Documentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2423
diff changeset
    13
https://github.com/sirredbeard/Awesome-WSL
9e6abc83e5d6 Windows Subsystem for Linux Documentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2423
diff changeset
    14
  Awesome list dedicated to Windows Subsystem for Linux.
2469
d6eb5318b6ff Automatically Configuring WSL.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2459
diff changeset
    15
https://devblogs.microsoft.com/commandline/automatically-configuring-wsl/
d6eb5318b6ff Automatically Configuring WSL.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2459
diff changeset
    16
  Automatically Configuring WSL.
2457
9e6abc83e5d6 Windows Subsystem for Linux Documentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2423
diff changeset
    17
2365
d907310aeacf wsl utility.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    18
wsl utility
2493
e83847e718a0 Fixed RST section format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2486
diff changeset
    19
===========
2365
d907310aeacf wsl utility.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    20
d907310aeacf wsl utility.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    21
Run Linux command from default distro::
d907310aeacf wsl utility.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    22
d907310aeacf wsl utility.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    23
  wsl ls
d907310aeacf wsl utility.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    24
  wsl -e /bin/ls
d907310aeacf wsl utility.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    25
  wsl --exec /bin/bash
d907310aeacf wsl utility.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    26
2366
55f48026a610 Run Linux command from specific distro.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2365
diff changeset
    27
Run Linux command from specific distro::
55f48026a610 Run Linux command from specific distro.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2365
diff changeset
    28
55f48026a610 Run Linux command from specific distro.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2365
diff changeset
    29
  wsl -d ubuntu ls
55f48026a610 Run Linux command from specific distro.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2365
diff changeset
    30
  wsl -d debian -e /bin/ls
55f48026a610 Run Linux command from specific distro.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2365
diff changeset
    31
  wsl -d debian --exec /bin/bash
55f48026a610 Run Linux command from specific distro.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2365
diff changeset
    32
  wsl -distribution debian --exec /bin/bash
55f48026a610 Run Linux command from specific distro.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2365
diff changeset
    33
2367
f295973a87a5 Run Linux command from specific user.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2366
diff changeset
    34
Run Linux command from specific user::
f295973a87a5 Run Linux command from specific user.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2366
diff changeset
    35
f295973a87a5 Run Linux command from specific user.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2366
diff changeset
    36
  wsl -u user ls
f295973a87a5 Run Linux command from specific user.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2366
diff changeset
    37
  wsl --user root ls
f295973a87a5 Run Linux command from specific user.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2366
diff changeset
    38
2459
607f6d056e26 Added link to docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2457
diff changeset
    39
Combining user & distro::
607f6d056e26 Added link to docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2457
diff changeset
    40
607f6d056e26 Added link to docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2457
diff changeset
    41
  wsl -u root -d alpine -- ls
607f6d056e26 Added link to docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2457
diff changeset
    42
607f6d056e26 Added link to docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2457
diff changeset
    43
https://docs.microsoft.com/en-us/windows/wsl/wsl-config
607f6d056e26 Added link to docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2457
diff changeset
    44
  Ways to run WSL.
607f6d056e26 Added link to docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2457
diff changeset
    45
2368
574d07ac6f55 wslconfig utility
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2367
diff changeset
    46
wslconfig utility
2493
e83847e718a0 Fixed RST section format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2486
diff changeset
    47
=================
2368
574d07ac6f55 wslconfig utility
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2367
diff changeset
    48
574d07ac6f55 wslconfig utility
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2367
diff changeset
    49
List distros::
574d07ac6f55 wslconfig utility
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2367
diff changeset
    50
574d07ac6f55 wslconfig utility
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2367
diff changeset
    51
  wslconfig /l
574d07ac6f55 wslconfig utility
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2367
diff changeset
    52
  wslconfig /list
574d07ac6f55 wslconfig utility
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2367
diff changeset
    53
574d07ac6f55 wslconfig utility
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2367
diff changeset
    54
Set default distro::
574d07ac6f55 wslconfig utility
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2367
diff changeset
    55
574d07ac6f55 wslconfig utility
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2367
diff changeset
    56
  wslconfig /s debian
574d07ac6f55 wslconfig utility
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2367
diff changeset
    57
  wslconfig /setdefault debian
574d07ac6f55 wslconfig utility
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2367
diff changeset
    58
574d07ac6f55 wslconfig utility
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2367
diff changeset
    59
Terminate any running parts of distro::
574d07ac6f55 wslconfig utility
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2367
diff changeset
    60
2486
796bbf279e20 Fixed typo.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2469
diff changeset
    61
  wslconfig /t debian
2368
574d07ac6f55 wslconfig utility
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2367
diff changeset
    62
  wslconfig /terminate debian
574d07ac6f55 wslconfig utility
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2367
diff changeset
    63
2508
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    64
Mounting Windows file systems
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    65
=============================
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    66
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    67
From January 2018 WSL 1 allows to mount external NTFS file systems as ``drvfs``. ``metadata`` option
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    68
allows ``chmod`` operation on NTFS volumes, metadata will be shared across all WSL distros though.
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    69
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    70
https://devblogs.microsoft.com/commandline/chmod-chown-wsl-improvements/
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    71
  Chmod/Chown WSL Improvements.
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    72
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    73
To preserve customization between WSL reloads update ``/etc/wsl.conf`` with something like::
2423
6a4fd5ccb340 Mounting external drives.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2368
diff changeset
    74
2508
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    75
  [automount]
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    76
  enabled = true
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    77
  mountFsTab = false
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    78
  options = "metadata,noatime,uid=1000,gid=1000,umask=022,fmask=077"
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    79
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    80
Equivalent CLI call is::
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    81
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    82
  sudo mount -t drvfs 'C:\' /mnt/c -o metadata,noatime,uid=1000,gid=1000,umask=022,fmask=077
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    83
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    84
https://devblogs.microsoft.com/commandline/automatically-configuring-wsl/
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    85
  Automatically Configuring WSL.
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    86
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    87
To mount attached USB stick::
2423
6a4fd5ccb340 Mounting external drives.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2368
diff changeset
    88
6a4fd5ccb340 Mounting external drives.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2368
diff changeset
    89
  sudo mkdir /mnt/f
6a4fd5ccb340 Mounting external drives.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2368
diff changeset
    90
  sudo mount -t drvfs f: /mnt/f
2459
607f6d056e26 Added link to docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2457
diff changeset
    91
607f6d056e26 Added link to docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2457
diff changeset
    92
https://docs.microsoft.com/en-us/windows/wsl/wsl-config
607f6d056e26 Added link to docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2457
diff changeset
    93
  ``/etc/wsl.conf`` configuration options.
2508
fe9788ce44ba Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2493
diff changeset
    94