This repository contains the automatic build script of minimal Arch Linux on WSL2 RootFS, provided by Azure Zeng.
This repo will build RootFS automatically at 07:24 AM UTC on every 1st day of the month.
Please read this readme carefully before using this RootFS.
-
Please read this README thoroughly before using any RootFS archives provided by this repository.
-
Arch Linux on WSL installation is UNSUPPORTED BY OFFICIAL according to the official code of conduct. Before reporting problems to Arch Linux official, please ensure that the problems are REPRODUCIBLE in SUPPORTED Arch Linux installations.
-
As mentioned above, you should be familiar with Arch Linux in SUPPORTED installations.
-
The RootFS file provided in this repository is only intended to be installed in WSL2. WSL1 is not supported as Microsoft strongly advises using WSL2 now. If you are seeking Arch Linux on WSL1, ArchWSL provided by yuk7 might help.
Download the latest rootfs.tar.gz in the Repository Releases.
Then import RootFS by using wsl --import <Distro> <InstallLocation> <FileName>
.
For example:
wsl --import Arch C:\Users\azurezeng\WSL\Arch rootfs.tar.gz
You can use the RootFS with yuk7's wsldl together to get more convenient installation. The manual of wsldl can be found at here.
After importing, remember to do pacman-key --init
and pacman-key --populate
immediately, otherwise pacman
may not work.
Then, remember to do pacman -Syu
to update all packages to the latest as soon as possible.
-
Rename the file name of wsldl to customize your distro's name.
-
You can place
<distro-name>.exe
androotfs.tar.gz
in the same directory, then double-click<distro-name>.exe
to complete distro import.
UPDATE: rootfs-with-wsldl.zip
contains both rootfs.tar.gz
and wsldl.exe
(renamed to Arch.exe
). I would like to express sincere thanks to yuk7!
For detailed auto-build process, please visit build-rootfs.yml.
Summary:
-
Pre-installed packages:
base
curl
wget
vim
nano
sudo
texinfo
man-db
man-pages
-
/etc/pacman.d/mirrorlist
: Updated fromhttps://archlinux.org/mirrorlist/all/
, and all mirrorlist sites are enabled by default. -
/etc/pacman.conf
: EnabledColor
andParallelDownloads
options by default. -
/etc/locale.gen
: Enableden_US.UTF-8 UTF-8
by default. Then usedlocale-gen
to generate localization files. -
/etc/sudoers.d/wheel
: Enabled%wheel ALL=(ALL:ALL) ALL
, which means users inwheel
group will be able to usesudo
by default. -
Removed auto-generated
/etc/pacman.d/gnupg
for security reason (since 7/20/2024). -
/tmp
is mounted astmpfs
by adding this mount option to/etc/fstab
. This behavior is same as default Arch Linux installation.
-
After importing/installing the RootFS, it is advised to do
pacman -Syu
as early as possible, to ensure everything the latest. -
Install
mesa
mesa-utils
to get WSL GPU acceleration. -
Intel graphics user may experience some problems (see this issue on ArchWSL). A workaround:
sudo ln -sf libedit.so /usr/lib/libedit.so.2
- To download all packages (without package re-installing):
pacman -Qq | sudo pacman -Sw -
- To enable
systemd
support, create/etc/wsl.conf
with below content:
[boot]
systemd=true
- You can set the default user by putting the following content to
/etc/wsl.conf
:
[user]
default=USERNAME_IN_WSL
-
Error
error: restricting filesystem access failed because landlock is not supported by the kernel!
when usingpacman
Some security features are introduced in
pacman
v7.x, requiring a newer kernel version. However, Microsoft still sticks using Linux kernel v5.15.x.You can compile a newer kernel version and change WSL setting to use custom kernel, or just enable
DisableSandbox
setting in/etc/pacman.conf
.
#UseSyslog
Color
#NoProgressBar
CheckSpace
#VerbosePkgLists
ParallelDownloads = 5
DownloadUser = alpm
DisableSandbox