The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Difference between revisions of "Windows Subsystem for Linux"
(14 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
=== Introduction === | === Introduction === | ||
Line 18: | Line 16: | ||
{{console|body= | {{console|body= | ||
%PowerShell | %PowerShell>% ##i##wsl --install | ||
}} | }} | ||
Line 28: | Line 26: | ||
{{console|body= | {{console|body= | ||
%PowerShell>% ##i##wget -Uri https://build.funtoo.org/next/x86-64bit/amd64-zen3/2023-09-25/stage3-amd64-zen3-next-2023-09-25.tar.xz -OutFile stage3.tar.xz | |||
}} | }} | ||
Line 34: | Line 32: | ||
{{console|body= | {{console|body= | ||
%PowerShell>% ##i##.\Downloads\7zr.exe x stage3.tar.xz | |||
}} | }} | ||
Now run the following command in PowerShell -- you do not need to be administrator to run this as long as you have previously installed WSL 2 | Now run the following command in PowerShell -- you do not need to be administrator to run this as long as you have previously installed WSL 2. The arguments specify that we want to import a distribution named "funtoo", which will be installed to the {{f|funtoo}} directory, using {{f|stage3.tar}} as a source. | ||
{{console|body= | {{console|body= | ||
%PowerShell>%##i## wsl.exe --import "funtoo" funtoo stage3.tar --version 2 | |||
Import in progress, this may take a few minutes. | |||
The operation completed successfully. | |||
%PowerShell>% | |||
}} | }} | ||
When this command completes, Funtoo Linux has been | |||
The {{c|wsl -d}} command ({{c|-d}} stands for "distribution") is an oddly-named command which will start the named imported distribution (in our case, Funtoo Linux) if it is not started, and then provide a direct root console to Funtoo Linux. Alternatively, simply typing {{c|wsl}} and hitting Enter also curiously has this same behavior: | |||
{{console|body= | {{console|body= | ||
%PowerShell>%##i## wsl -d funtoo | |||
# | |||
}} | }} | ||
You are now running Funtoo under Windows 11. However, Funtoo is not fully set up. We will want to configure WSL 2 to start the {{c|default}} runlevel when Funtoo is started. To do this, we create a {{f|/etc/wsl.conf}} file inside your Funtoo installation as follows: | |||
{{console|body= | {{console|body= | ||
###i## | # ##i##nano /etc/wsl.conf | ||
}} | |||
Add the following contents to this file: | |||
{{file|name=/etc/wsl.conf|desc=wsl.conf file|body= | |||
[boot] | |||
systemd=false | |||
command = "/sbin/openrc default" | |||
}} | }} | ||
Now, it is necessary to stop and restart Funtoo to have this setting take effect. However, OpenRC is not working yet, so you will need to do this from the PowerShell command prompt: | |||
{{console|body= | {{console|body= | ||
###i## | # ##i##exit | ||
%PowerShell>%##i## wsl -t funtoo | |||
### | %PowerShell>%##i## wsl -d funtoo | ||
# | |||
}} | }} | ||
The above command terminates the existing Funtoo VM, and then re-starts and re-enters it. At this point, you should see OpenRC functioning properly: | |||
{{console|body= | |||
# ##i##rc-status | |||
Runlevel: default | |||
netmount ##c##[ ##g##started##!g## ] | |||
sshd ##c##[ ##g##started##!g## ] | |||
udev-postmount ##c##[ ##g##started##!g## ] | |||
local ##c##[ ##g##started##!g## ] | |||
Dynamic Runlevel: hotplugged | |||
Dynamic Runlevel: needed/wanted | |||
Dynamic Runlevel: manual | |||
}} | |||
As you can see, {{c|sshd}} is running which will allow you to locally "ssh" into the Funtoo VM if you like, and it also demonstrates | |||
that other services can be added to the default runlevel that you might want to start. You can now start using Funtoo Linux as you normally would, | |||
with the exception that the {{c|reboot}} and {{c|shutdown}} commands will not work. | |||
{{console|body= | {{console|body= | ||
###i## emerge | ###i## ego sync | ||
###i## emerge -C debian-sources | |||
###i## emerge -avuND @world | |||
}} | }} | ||
=== bash_profile === | |||
instead of putting goodies to be executed at start in .bashrc, you should place them in .bash_profile | |||
==uninstall== | ==uninstall== |
Latest revision as of 21:30, November 25, 2023
Introduction
Windows Subsystem for Linux provides support for running Funtoo Linux under Windows 10 and Windows 11. The latest version is WSL 2, which provides full system call compatibility, and improvement over the original WSL.
Requirements
To install WSL 2 on Windows, you need the following things:
- Windows 11 (any version, including Home), or:
- Windows 10 (any version, including Home) builds 18917 or higher
Technically you can install WSL 2 on an “insider” build of Windows 10 build 18917 or later.
Installation
To initially set up WSL 2, run a PowerShell prompt as an administrator and type:
PowerShell> # wsl --install
After this command completes, and you reboot your system, it is then recommended to install Windows Terminal, which is available from this link -- this is actually a Microsoft Learn site describing Windows Terminal, but it does provide a link to the Microsoft Store page for Windows Terminal:
https://learn.microsoft.com/en-us/windows/terminal/
Start Windows Terminal. You can now use wget
under PowerShell to download the stage3 of your choice:
PowerShell> # wget -Uri https://build.funtoo.org/next/x86-64bit/amd64-zen3/2023-09-25/stage3-amd64-zen3-next-2023-09-25.tar.xz -OutFile stage3.tar.xz
Once the download completes, you will need to decompress it. This can be done by directly downloading the .exe for Windows, available from https://7-zip.org/a/7zr.exe, and running the following command:
PowerShell> # .\Downloads\7zr.exe x stage3.tar.xz
Now run the following command in PowerShell -- you do not need to be administrator to run this as long as you have previously installed WSL 2. The arguments specify that we want to import a distribution named "funtoo", which will be installed to the funtoo
directory, using stage3.tar
as a source.
PowerShell> # wsl.exe --import "funtoo" funtoo stage3.tar --version 2 Import in progress, this may take a few minutes. The operation completed successfully. PowerShell> #
When this command completes, Funtoo Linux has been
The wsl -d
command (-d
stands for "distribution") is an oddly-named command which will start the named imported distribution (in our case, Funtoo Linux) if it is not started, and then provide a direct root console to Funtoo Linux. Alternatively, simply typing wsl
and hitting Enter also curiously has this same behavior:
PowerShell> # wsl -d funtoo root #
You are now running Funtoo under Windows 11. However, Funtoo is not fully set up. We will want to configure WSL 2 to start the default
runlevel when Funtoo is started. To do this, we create a /etc/wsl.conf
file inside your Funtoo installation as follows:
root # nano /etc/wsl.conf
Add the following contents to this file:
/etc/wsl.conf
- wsl.conf file[boot]
systemd=false
command = "/sbin/openrc default"
Now, it is necessary to stop and restart Funtoo to have this setting take effect. However, OpenRC is not working yet, so you will need to do this from the PowerShell command prompt:
root # exit PowerShell> # wsl -t funtoo PowerShell> # wsl -d funtoo root #
The above command terminates the existing Funtoo VM, and then re-starts and re-enters it. At this point, you should see OpenRC functioning properly:
root # rc-status Runlevel: default netmount [ started ] sshd [ started ] udev-postmount [ started ] local [ started ] Dynamic Runlevel: hotplugged Dynamic Runlevel: needed/wanted Dynamic Runlevel: manual
As you can see, sshd
is running which will allow you to locally "ssh" into the Funtoo VM if you like, and it also demonstrates
that other services can be added to the default runlevel that you might want to start. You can now start using Funtoo Linux as you normally would,
with the exception that the reboot
and shutdown
commands will not work.
root # ego sync root # emerge -C debian-sources root # emerge -avuND @world
bash_profile
instead of putting goodies to be executed at start in .bashrc, you should place them in .bash_profile
uninstall
- in powershell:
root # wsl.exe --unregister funtoo