WSL2安装Archlinux
一、WSL2安装Archlinux
1.1 前置条件
1.1.1 虚拟化设置
Windows11环境下安装WSL2非常简单,首先确保虚拟化选项开启。这个如果没有开启的话,需要进电脑的BIOS设置里开启。
1.1.2 系统设置
控制面板->程序->启用或关闭 windows 功能,开启 Windows 虚拟化和 Linux 子系统(WSL2)以及Hyper-V。勾选完成后,Windows11 会自己下载些东西,并提示你重启。等电脑彻底重启完以后,进行后续操作。
打开Power Shell 以管理员命令输入下方代码:
bcdedit /set hypervisorlaunchtype auto
1.2 安装步骤
升级WSL内核
wsl --update
下载LxRunOffline
https://github.com/DDoSolitary/LxRunOffline/releases
解压后将所有的文件放入一个文件。
下载Archlinux bootstrap镜像,本文使用镜像源文件名格式如下archlinux-bootstrap-2021.07.01-x86_64.tar.gz
安装archlinux,命令格式如下
.\LxRunOffline.exe i -n <自定义名称> -f <Arch镜像位置> -d <安装系统的位置> -r root.x86_64
例如
.\LxRunOffline.exe i -n Archlinux -f D:\wsl\Downloads\archlinux-bootstrap-2021.07.01-x86_64.tar.gz -d D:\wsl\archlinux -r root.x86_64
进入系统
wsl -d archlinux
若出现FATAL: kernel too old
的报错,可使用 wsl --set-version <distribution name> 2or1
为当前linux系统设置正确的wsl版本。
转换为版本2的时候,再次进入可能会出现: Error code: Wsl/Service/0x800706f7
的错误,在 windows 的 terminal 中输入(需要以管理员权限)netsh winsock reset
,然后就可以正常启动 WSL2 了,不用重启电脑。
1.3 配置
重新启动 archlinux,执行如下命令
wsl -t Archlinux # 关闭 archlinux
wsl -d Archlinux # 启动 archlinux
修改archlinux源,添加 archlinuxcn
cd /etc/
explorer.exe .
打开 /etc/pacman.conf
文件最后添加如下内容
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
进入 /etc/pacman.d/mirrorlist
,取消China
源注释(注销一部分也行)。
更新系统
pacman -Syy
pacman-key --init
pacman-key --populate
pacman -S archlinuxcn-keyring
添加个人用户(可选)
# 添加用户
useradd -m zongwei
# 设置密码
passwd zongwei
设置默认登录用户
# linux 中执行
id -u username # 查看用户ID
# windows 执行
lxrunoffline su -n archlinux -v 用户ID
二、安装常用软件
sudo pacman -S base-devel
sudo pacman -S net-tools
sudo pacman -S mycli
sudo pacman -S pgcli
sudo pacman -S scp
sudo pacman -S openssh
sudo pacman -S less
sudo pacman -S which
sudo pacman -S git
sudo pacman -S nodejs
sudo pacman -S gcc
sudo pacman -S npm
sudo pacman -S gzip
sudo pacman -S unzip
sudo pacman -S bat
sudo pacman -S lsd
sudo pacman -S fd
sudo pacman -S tcpdump
sudo pacman -S inetutils
sudo pacman -S bash-completion
sudo pacman -S axel
sudo pacman -S jq
sudo pacman -S cargo
sudo pacman -S systemd
sudo pacman -S httpie
sudo pacman -S iputils
sudo pacman -S curlie
sudo pacman -S yay
sudo pacman -S redis
三、启用systemctl(已过时)
3.1 安装subsystemctl
新建目录下载 PKGBUILD,cd到有PKGBUILD
文件的目录下,执行以下命令:
# 生成后缀.pkg.tar.xz的压缩文件
makepkg
# 使用pacman安装
sudo pacman -U *.pkg.tar.xz
安装失败可能是缺少软件,使用 sudo pacman -S xxx
进行安装。
安装成功后重新启动wsl
wsl -d Archlinux -u root -- subsystemctl start
或者执行以下命令:
sudo subsystemctl start
【推荐】可以写一个vb脚本(wsl-startup.vbs) 放入windows的自启动目录
set ws=wscript.createobject("wscript.shell")
ws.run "C:\Windows\System32\wsl.exe -d Archlinux -u root -- subsystemctl start",0
3.2 启用Docker
sudo pacman -S docker
sudo subsystemctl exec sudo systemctl start docker
sudo subsystemctl exec sudo systemctl enable docker
验证subsystemctl
可用,此时已经可以使用完整的systemctl
命令。
四、启用systemd(推荐)
如果需要使用微软官方支持的systmed,在目前(2022/12/12)来说你需要满足这些前置条件:
- 操作系统为windows 11
- wsl 版本为 0.67.6 或以上(目前均为预览版本)。
查看wsl版本号命令为: wsl --version
,如果此命令未正常回显版本号,或版本号低于0.67.6,那么你安装的wsl还不支持systemd。
那么可以通过 https://github.com/microsoft/WSL/releases 下载最新的版本。
安装后,可以通过以下命令进行更新: wsl.exe --update --web-download
。此命令是在0.67.6版本中新增的。
在/etc/下面增加一个wsl.conf文件,这个操作需要sudo权限,文件里面输入下面的内容:
[boot]
systemd=true
保存退出,并执行wsl --shutdown,重新进入wsl
切记一个字都不要错,否则可能导致wsl进不去,所以备份很重要
如果一切正常,这时候已经可以使用systemd,对docker的支持也比较完善。