在 WSL 中安装 Arch Linux

安装

Windows 应用商店 安装 Ubuntu。

确保默认用户为 root:

1
ubuntu config --default-user root

从开始菜单打开 Ubuntu。

Arch Linux Downloads 下载 Arch bootstrap .tar.gz 然后解压:

1
$ tar -zxvf /mnt/c/Users/username/Downloads/archlinux-bootstrap-2017.06.01-x86_64.tar.gz

~/root.x86_64/etc/pacman.d/mirrorlist文件中,选择需要的服务器,取消注释。

让 WSL 自动生成 /etc/resolv.conf:

1
$ echo "# This file was automatically generated by WSL. To stop automatic generation of this file, remove this line." > ~/root.x86_64/etc/resolv.conf

退出所有打开的 Bash 命令行窗口。

在 Windows 资源管理器中打开 %localappdata%\Packages,并找到 CanonicalGroupLimited.UbuntuonWindows_* (其中, * 表示随机字符串 )。在 %localappdata%\Packages\CanonicalGroupLimited.UbuntuonWindows_*\LocalState\rootfs 中删除 bin, etc, lib, lib64, sbin, usr and var.

然后从rootfs\root\root.x86_64移动(不要复制)相同的文件到 rootfs

使用一台 Linux 电脑构建 fakeroot-tcp, 然后复制到 Windows 电脑。在 System V IPC 被完全实现之前 fakeroot-tcp 都是必需的。 (详情请见)。

github上有预编译的pkg文件,可以直接使用: 预编译的fakeroot-tcp包

(x86_64的1.23版本直接下载: fakeroot-tcp-1.22-1-x86_64.pkg.tar.xz)

再次打开Bash,开始安装Arch:

1
2
3
4
pacman-key --init
pacman-key --populate archlinux
pacman -U /mnt/c/Users/username/Downloads/fakeroot-tcp-1.21-2-x86_64.pkg.tar.xz
pacman -Syyu base base-devel

注意在base中取消fake-root的安装(与fake-root-tcp有冲突,wsl不支持fakeroot,因此需要用fakeroot-tcp替代)

基本设置

设置用户 (不需要和 Windows 用户名相同):

1
2
3
useradd -m -G wheel -s /bin/bash username
passwd root
passwd username

设置此用户为默认用户

1
ubuntu config --default-user username

完成以后还需要进行locale的设置,编辑/etc/locale.gen文件,取消注释需要的语言(如zh_CN.UTF-8 UTF-8),然后执行:

1
locale-gen

附录

LxRunOffline 对安装提供了更加优雅的方式,可以不通过替换rootfs的方式来进行arch的安装,限于篇幅不做介绍。

推荐阅读

ArchLinux on the Windows Subsystem for Linux

安装Manjaro