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)来说你需要满足这些前置条件:

  1. 操作系统为windows 11
  2. 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的支持也比较完善。

posted @ 2021-07-16 17:44  ZongweiBai  阅读(1548)  评论(0编辑  收藏  举报