author | Oleksandr Gavenko <gavenkoa@gmail.com> |
Wed, 08 Jun 2022 13:42:24 +0300 | |
changeset 2533 | 3d0d8ed75cb5 |
parent 2532 | 67f29096ae1f |
child 2534 | f63a05c1ce4f |
permissions | -rw-r--r-- |
2365 | 1 |
|
2 |
================================== |
|
3 |
WSL, Windows subsystem for Linux |
|
4 |
================================== |
|
5 |
.. contents:: |
|
6 |
:local: |
|
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. |
2532 | 17 |
https://docs.microsoft.com/en-us/windows/wsl/troubleshooting |
18 |
Troubleshooting Windows Subsystem for Linux. |
|
2457
9e6abc83e5d6
Windows Subsystem for Linux Documentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2423
diff
changeset
|
19 |
|
2528
b86cd4fc873e
Switching WSL version.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2508
diff
changeset
|
20 |
https://github.com/sirredbeard/Awesome-WSL |
b86cd4fc873e
Switching WSL version.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2508
diff
changeset
|
21 |
Awesome list dedicated to Windows Subsystem for Linux. |
b86cd4fc873e
Switching WSL version.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2508
diff
changeset
|
22 |
|
2365 | 23 |
wsl utility |
2493
e83847e718a0
Fixed RST section format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2486
diff
changeset
|
24 |
=========== |
2365 | 25 |
|
26 |
Run Linux command from default distro:: |
|
27 |
||
28 |
wsl ls |
|
29 |
wsl -e /bin/ls |
|
30 |
wsl --exec /bin/bash |
|
31 |
||
2366
55f48026a610
Run Linux command from specific distro.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2365
diff
changeset
|
32 |
Run Linux command from specific distro:: |
55f48026a610
Run Linux command from specific distro.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2365
diff
changeset
|
33 |
|
55f48026a610
Run Linux command from specific distro.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2365
diff
changeset
|
34 |
wsl -d ubuntu ls |
55f48026a610
Run Linux command from specific distro.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2365
diff
changeset
|
35 |
wsl -d debian -e /bin/ls |
55f48026a610
Run Linux command from specific distro.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2365
diff
changeset
|
36 |
wsl -d debian --exec /bin/bash |
55f48026a610
Run Linux command from specific distro.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2365
diff
changeset
|
37 |
wsl -distribution debian --exec /bin/bash |
55f48026a610
Run Linux command from specific distro.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2365
diff
changeset
|
38 |
|
2367
f295973a87a5
Run Linux command from specific user.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2366
diff
changeset
|
39 |
Run Linux command from specific user:: |
f295973a87a5
Run Linux command from specific user.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2366
diff
changeset
|
40 |
|
f295973a87a5
Run Linux command from specific user.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2366
diff
changeset
|
41 |
wsl -u user ls |
f295973a87a5
Run Linux command from specific user.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2366
diff
changeset
|
42 |
wsl --user root ls |
f295973a87a5
Run Linux command from specific user.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2366
diff
changeset
|
43 |
|
2459
607f6d056e26
Added link to docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2457
diff
changeset
|
44 |
Combining user & distro:: |
607f6d056e26
Added link to docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2457
diff
changeset
|
45 |
|
607f6d056e26
Added link to docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2457
diff
changeset
|
46 |
wsl -u root -d alpine -- ls |
2532 | 47 |
wsl -u root -e sh -c "service apache status || service apache start" |
2459
607f6d056e26
Added link to docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2457
diff
changeset
|
48 |
|
607f6d056e26
Added link to docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2457
diff
changeset
|
49 |
https://docs.microsoft.com/en-us/windows/wsl/wsl-config |
607f6d056e26
Added link to docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2457
diff
changeset
|
50 |
Ways to run WSL. |
607f6d056e26
Added link to docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2457
diff
changeset
|
51 |
|
2368 | 52 |
wslconfig utility |
2493
e83847e718a0
Fixed RST section format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2486
diff
changeset
|
53 |
================= |
2368 | 54 |
|
55 |
List distros:: |
|
56 |
||
57 |
wslconfig /l |
|
58 |
wslconfig /list |
|
59 |
||
60 |
Set default distro:: |
|
61 |
||
62 |
wslconfig /s debian |
|
63 |
wslconfig /setdefault debian |
|
64 |
||
65 |
Terminate any running parts of distro:: |
|
66 |
||
2486 | 67 |
wslconfig /t debian |
2368 | 68 |
wslconfig /terminate debian |
69 |
||
2508
fe9788ce44ba
Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2493
diff
changeset
|
70 |
Mounting Windows file systems |
fe9788ce44ba
Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2493
diff
changeset
|
71 |
============================= |
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 |
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
|
74 |
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
|
75 |
|
fe9788ce44ba
Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2493
diff
changeset
|
76 |
https://devblogs.microsoft.com/commandline/chmod-chown-wsl-improvements/ |
fe9788ce44ba
Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2493
diff
changeset
|
77 |
Chmod/Chown WSL Improvements. |
fe9788ce44ba
Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2493
diff
changeset
|
78 |
|
fe9788ce44ba
Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2493
diff
changeset
|
79 |
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
|
80 |
|
2508
fe9788ce44ba
Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2493
diff
changeset
|
81 |
[automount] |
fe9788ce44ba
Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2493
diff
changeset
|
82 |
enabled = true |
fe9788ce44ba
Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2493
diff
changeset
|
83 |
mountFsTab = false |
fe9788ce44ba
Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2493
diff
changeset
|
84 |
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
|
85 |
|
fe9788ce44ba
Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2493
diff
changeset
|
86 |
Equivalent CLI call is:: |
fe9788ce44ba
Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2493
diff
changeset
|
87 |
|
fe9788ce44ba
Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2493
diff
changeset
|
88 |
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
|
89 |
|
fe9788ce44ba
Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2493
diff
changeset
|
90 |
https://devblogs.microsoft.com/commandline/automatically-configuring-wsl/ |
fe9788ce44ba
Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2493
diff
changeset
|
91 |
Automatically Configuring WSL. |
fe9788ce44ba
Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2493
diff
changeset
|
92 |
|
fe9788ce44ba
Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2493
diff
changeset
|
93 |
To mount attached USB stick:: |
2423
6a4fd5ccb340
Mounting external drives.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2368
diff
changeset
|
94 |
|
6a4fd5ccb340
Mounting external drives.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2368
diff
changeset
|
95 |
sudo mkdir /mnt/f |
6a4fd5ccb340
Mounting external drives.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2368
diff
changeset
|
96 |
sudo mount -t drvfs f: /mnt/f |
2459
607f6d056e26
Added link to docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2457
diff
changeset
|
97 |
|
607f6d056e26
Added link to docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2457
diff
changeset
|
98 |
https://docs.microsoft.com/en-us/windows/wsl/wsl-config |
607f6d056e26
Added link to docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2457
diff
changeset
|
99 |
``/etc/wsl.conf`` configuration options. |
2508
fe9788ce44ba
Mounting Windows file systems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2493
diff
changeset
|
100 |
|
2528
b86cd4fc873e
Switching WSL version.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2508
diff
changeset
|
101 |
Switching WSL version |
b86cd4fc873e
Switching WSL version.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2508
diff
changeset
|
102 |
===================== |
b86cd4fc873e
Switching WSL version.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2508
diff
changeset
|
103 |
|
b86cd4fc873e
Switching WSL version.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2508
diff
changeset
|
104 |
Set default version for new containers:: |
b86cd4fc873e
Switching WSL version.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2508
diff
changeset
|
105 |
|
b86cd4fc873e
Switching WSL version.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2508
diff
changeset
|
106 |
wsl --set-default-version 1 |
b86cd4fc873e
Switching WSL version.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2508
diff
changeset
|
107 |
|
b86cd4fc873e
Switching WSL version.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2508
diff
changeset
|
108 |
Convert a specific distro to WSL v1:: |
b86cd4fc873e
Switching WSL version.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2508
diff
changeset
|
109 |
|
b86cd4fc873e
Switching WSL version.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2508
diff
changeset
|
110 |
wsl --set-version Debian 1 |
b86cd4fc873e
Switching WSL version.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2508
diff
changeset
|
111 |
|
2532 | 112 |
Debugging WSL |
113 |
============= |
|
114 |
||
115 |
https://github.com/Microsoft/WSL/blob/master/CONTRIBUTING.md |
|
116 |
https://raw.githubusercontent.com/microsoft/WSL/master/diagnostics/wsl.wprp |
|
117 |
https://github.com/Microsoft/WSL/blob/master/diagnostics/collect-wsl-logs.ps1 |
|
118 |
||
2533
3d0d8ed75cb5
Custom WSL 2 Linux kernel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2532
diff
changeset
|
119 |
Custom WSL 2 Linux kernel |
3d0d8ed75cb5
Custom WSL 2 Linux kernel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2532
diff
changeset
|
120 |
========================= |
3d0d8ed75cb5
Custom WSL 2 Linux kernel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2532
diff
changeset
|
121 |
|
3d0d8ed75cb5
Custom WSL 2 Linux kernel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2532
diff
changeset
|
122 |
Register kernel in ``/etc/wsl.conf``:: |
3d0d8ed75cb5
Custom WSL 2 Linux kernel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2532
diff
changeset
|
123 |
|
3d0d8ed75cb5
Custom WSL 2 Linux kernel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2532
diff
changeset
|
124 |
[wsl2] |
3d0d8ed75cb5
Custom WSL 2 Linux kernel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2532
diff
changeset
|
125 |
kernel=C:\\Users\\<USER>\\vmlinux |
3d0d8ed75cb5
Custom WSL 2 Linux kernel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2532
diff
changeset
|
126 |