启用WSL

用管理员打开powershell输入:

1
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

升级为WSL2的必要条件

  • 对于x64的系统要求win10版本为1903 或者更高
  • win + R 输入 winver查看版本

启用虚拟平台

用管理员打开powershell输入

1
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

执行完毕后重启

需要在BIOS中开启虚拟化,Intel CPU开启VT选项,AMD CPU开启SVM选项。

下载Linux内核升级包

下载地址:

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

下载完成后双击安装。

将WSL2设置为默认版本

用管理员打开powershell输入

1
wsl --set-default-version 2

到这里WSL就安装好了,下面安装ArchLinux。

安装LxRunOffline

下载地址:

https://github.com/DDoSolitary/LxRunOffline/releases

选择最新版下载,解压后将LxRunOffline.exe放入任意一个path文件夹下(比如C:/Windows/System32)。也可以把LxRunOffline.exe的目录添加到环境变量中。

当前最新版为LxRunOffline-v3.5.0-msvc.zip

下载Archlinux

下载地址:https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/latest/

找到archlinux-bootstrap-2021.04.01-x86_64.tar.gz

安装archlinux到WSL2

命令1:

1
LxRunOffline i -n <自定义名称> -f <Arch镜像位置> -d <安装系统的位置> -r root.x86_64

比如:

1
LxRunOffline i -n ArchLinux -f C:\Users\19146\Downloads\archlinux-bootstrap-2021.04.01-x86_64.tar.gz -d C:\Users\19146\ArchLinux -r root.x86_64

命令2:

1
wsl --set-version <名称> 2

比如:

1
wsl --set-version ArchLinux 2

进入系统

命令:

1
wsl -d <你的archlinux名字>

比如:

1
wsl -d ArchLinux

在这里我们就进入了archlinux内部,然后以下操作在archlinux中进行

删除/etc/resolv.conf文件,让archlinux自己生成resolve.conf文件

执行命令

1
rm /etc/resolv.conf

重新启动Archlinux

1
exit

执行上述命令后会退出arch,回到powershell,然后在powershell中执行

1
wsl --shutdown <你的archlinux名字>

比如:

1
wsl --shutdown ArchLinux

然后再次进入Arch:

1
wsl -d ArchLinux

添加清华源

使用vim

安装vim:

1
pacman -S vim

编辑pacman配置文件:

1
vim /etc/pacman.conf

在文件末尾添加:

1
2
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch

然后退出,编辑镜像源列表:

1
vim /etc/pacman.d/mirrolist

将China的源注释去掉(选择部分即可)

不会用vim的可以用资源管理器打开

很难相信有人居然不会用vim

在Arch中执行:

1
2
cd /etc/
explorer.exe .

注意后面的点,执行这条命令后会用windows的文件管理器打开/etc目录,然后找到pacman.conf,在这个文件最后加入

1
2
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch

然后进入下一级目录pacman.d,编辑里面的mirrolist文件,将China的源注释去掉。

安装pacman-key

然后回到ArchLinux,执行:

1
2
3
4
pacman -Syy
pacman-key --init
pacman-key --populate
pacman -Sy archlinuxcn-keyring

Archwiki提示:

注意: 如果pacman-key --init运行时系统没有足够的熵,可能会需要很长时间。请在目标机器上安装 havegedrng-tools。然后在用 root 权限执行pacman-key --init启动 haveged.service

1
2
3
pacman -Syu haveged
systemctl start haveged
systemctl enable haveged

如果pacman -S archlinuxcn-keyring 报错,删除gnupg,重建密钥:

1
2
3
4
rm -rf /etc/pacman.d/gnupg
pacman-key --init
pacman-key --populate archlinux
pacman-key --populate archlinuxcn

配置sudo

安装一些常用软件:

1
pacman -S base base-devel vim git wget python

给当前的root设置密码:

1
passwd

Archwiki提示:

警告: /etc/sudoers格式错误会导致sudo不可用。必须使用visudo编辑该文件防止出错。

visudo调用的默认编辑器是vi。官方仓库里的 sudo 编译时开启了--with-env-editor,会采用环境变量 VISUALEDITOR的设置。如果设置了VISUAL 就不会使用EDITOR

如果要临时使用其他编辑器,在该命令前加上EDITOR环境变量即可。例如,要使用 nano,用root运行以下命令:

1
EDITOR=nano visudo

要永久设置编辑器,请查看 定义本地环境变量.

系统级的设置可以把编辑器设置到 /etc/sudoers。以 nano 为例,使用visudo打开该文件,加入以下内容:

1
2
3
4
5
# Defaults specification
# Reset environment by default
Defaults env_reset
# Set default EDITOR to vim, and do not allow visudo to use EDITOR/VISUAL.
Defaults editor=/usr/bin/nano, !env_editor

使用vim作为编辑器,就需要在 /etc/sudoers中加入:

1
2
3
4
5
# Defaults specification
# Reset environment by default
Defaults env_reset
# Set default EDITOR to vim, and do not allow visudo to use EDITOR/VISUAL.
Defaults editor=/usr/bin/vim, !env_editor

或者直接ln -s /bin/vim /bin/vi

执行visudo,将/etc/sudoers中的wheel ALL=(ALL) ALL那一行前面的注释去掉:

1
visudo

设置语言,安装字体

编辑locale.gen

1
vim /etc/locale.gen

取消下面两行的注释:

1
2
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8

如果不取消en_US.UTF-8 UTF-8前面的注释,你就会发现终端无法正常显示中文。

设置语言:

1
echo 'LANG=zh_CN.UTF-8' > /etc/locale.conf

生成语言配置:

1
locale-gen 

安装字体配置工具:

1
pacman -S fontconfig

安装字体:

1
pacman -S ttf-dejavu wqy-zenhei wqy-microhei

刷新字体缓存:

1
fc-cache

设置使用普通用户登录Archlinux

新建一个普通用户并设置密码:

1
2
useradd -m -G wheel -s /bin/bash <用户名>
passwd <用户名>

查看当前用户id:

1
id -u <用户名>

退出ArchLinux:

1
exit

在powershell中执行

1
lxrunoffline su -n <你的archlinux名字> -v <账户id>

运行linux:

1
wsl -d ArchLinux # wsl -d <你的archlinux名字>

卸载

输入指令:

1
LxRunOffline ui -n ArchLinux # LxRunOffline ui -n <你的archlinux名字>

安装Windows Terminal

在微软商店搜索Windows Terminal,安装后打开,就会发现下拉菜单有ArchLinux选项卡,不用每次执行wsl -d ArchLinux进入系统了。


参考文献

在WSL2中安装ArchLinux

sudo pacman -S archlinuxcn-keyring 报错

Archwiki: pacman (简体中文)

Archwiki: Sudo (简体中文)