wsl安装archlinux
[原文链接](Windows10/11 wsl2 安装 ArchLinux 子系统 - RioTian - 博客园](https://www.cnblogs.com/RioTian/p/17965184)
安装 ArchLinux 子系统
最小 ArchLinux 安装
首先,需要确保你的系统已经安装并打开wsl2功能。详见官方文档。
Github上的ArchWSL项目已经帮我们把ArchLinux集成好了,可以到下载页面下载最新的Arch.zip文件:下载页面。
下载好之后,解压其中的文件到你需要存放ArchLinux的路径,例如D:\soft\wsl2\。随后执行目录下的Arch.exe文件,安装程序会自动将ArchLinux安装到同目录下面,并配置好wsl。
安装完成之后,打开终端,应该可以看到刚装好的ArchLinux系统:
1
2
3
4
5
6
7
$ wsl --list
适用于 Linux 的 Windows 子系统分发:
Ubuntu (默认)
Arch
可以看到我的电脑上除了ArchLinux之外还有别的子系统,你可以保留它们,也可以使用下面的命令卸载:
1
$ wsl --unregister Ubuntu
如有需要,使用下面命令将ArchLinux设为默认系统:
1
$ wsl --set-default Arch
使用下面的命令就可以进入ArchLinux了(如果你把ArchLinux设为默认系统了,则可以省略参数):
1
$ wsl -d Arch
进入系统之后,会做一些配置,结束之后就可以进入bash shell了。
安装较完整的ArchLinux并更改安装位置
- 使用wsl2或Microsoft Store安装archlinux
- 查看已安装的 WSL 发行版
wsl -l -v - 导出 WSL 发行版到备份文件
wsl --export Ubuntu "D:\wsl\ubuntu_backup.tar" - 卸载当前 WSL 发行版
wsl --unregister Ubuntu - 重新导入 WSL 到新路径
wsl --import Ubuntu "D:\wsl\ubuntu" "D:\wsl\ubuntu_backup.tar" --version 2 - 设置默认用户(如果之前有用户)
ubuntu config --default-user your_username
进入系统
命令:wsl -d <自定义WSL系统名称>
比如:wsl -d archlinux
配置源
在这里我们就进入了archlinux内部,然后以下操作在archlinux中进行
删除/etc/resolv.conf文件
执行命令
1
rm /etc/resolv.conf
重新启动Archlinux
1
exit
执行上述命令后会退出arch,回到powershell,然后在powershell中执行
1
wsl --shutdown <名字>
比如:
1
wsl --shutdown archLinux
然后再次进入Arch
1
wsl -d archLinux
在Arch中执行
1
2
3
cd /etc/
explorer.exe .
注意后面的点,执行这条命令后会用windows的文件管理器打开/etc目录,然后找到pacman.conf,解除SigLevel = Optional TrustAll的注释,添加下面两行
1
2
3
4
5
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
#Server = https://mirrors.aliyun.com/archlinuxcn/$arch
SigLevel = Optional TrustAll是为了避免执行pacman -S archlinuxcn-keyring时遇到【签名是勉强信任】的情况archlinux是由 Arch Linux 中文社区驱动的非官方软件仓库
然后进入下一级目录pacman.d,编辑里面的mirrolist文件,将China中的Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch注释去掉,然后回到Arch,执行
1
2
3
4
5
6
7
8
9
pacman -Syyu
pacman-key --init
pacman-key --populate
pacman -S archlinuxcn-keyring
pacman -S base base-devel vim git wget
如果执行pacman -Syy报:failed retrieving file ‘extra.db’ from 欢迎访问网易开源镜像站 : transfer closed with 560974 bytes remaining to read
则回到上一步mirrolist文件,将China的源中163中的源加上注释。
然后别忘了给当前的root设置密码
1
passwd
下述可不操作。
然后新建一个普通用户
1
2
3
useradd -m -G wheel -s /bin/bash <用户名>
passwd <用户名>
将文件/etc/sudoers中的wheel ALL=(ALL) ALL那一行前面的注释去掉
1
vim /etc/sudoers
查看当前用户id
1
id -u <用户名>
wslconfig配置
版本需求 OS: ≥ Windows 11 22H2(Build 22621.2359+)
WSLg/WSL2: Windows Subsystem for Linux 2.0.0+
配置参考
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
[wsl2] # 核心配置
autoProxy=true # 是否强制 WSL2/WSLg 子系统使用 Windows 代理设置(请根据实际需要启用)
dnsTunneling=true # WSL2/WSLg DNS 代理隧道,以便由 Windows 代理转发 DNS 请求(请根据实际需要启用)
firewall=true # WSL2/WSLg 子系统的 Windows 防火墙集成,以便 Hyper-V 或者 Windows 筛选平台(WFP)能过滤子系统流量(请根据实际需要启用)
guiApplications=true # 启用 WSLg GUI 图形化程序支持
ipv6=true # 启用 IPv6 网络支持
#localhostForwarding=true # 启用 localhost 网络转发支持(新版已不支持在 mirrored 模式下使用,会自动忽略,所以无需注释掉,只是启用会有条烦人的警告而已)
memory=8GB # 限制 WSL2/WSLg 子系统的最大内存占用
nestedVirtualization=true # 启用 WSL2/WSLg 子系统嵌套虚拟化功能支持
networkingMode=mirrored # 启用镜像网络特性支持
#pageReporting=true # 启用 WSL2/WSLg 子系统页面文件通报,以便 Windows 回收已分配但未使用的内存
processors=16 # 设置 WSL2/WSLg 子系统的逻辑 CPU 核心数为 8(最大肯定没法超过硬件的物理逻辑核心数)
vmIdleTimeout=-1 # WSL2 VM 实例空闲超时关闭时间,-1 为永不关闭,根据参数说明,目前似乎仅适用于 Win11+
[experimental] # 实验性功能(按照过往经验,若后续转正,则是配置在上面的 [wsl2] 选节)
autoMemoryReclaim=gradual # 启用空闲内存自动缓慢回收,其它选项:dropcache / disabled(立即/禁用)
hostAddressLoopback=true # 启用 WSL2/WSLg 子系统和 Windows 宿主之间的本地回环互通支持
sparseVhd=true # 启用 WSL2/WSLg 子系统虚拟硬盘空间自动回收
bestEffortDnsParsing=true # 和 dnsTunneling 配合使用,Windows 将从 DNS 请求中提取问题并尝试解决该问题,从而忽略未知记录(请根据实际需要启用)
#useWindowsDnsCache=false # 和 dnsTunneling 配合使用,决定是否使用 Windows DNS 缓存池(新版已移除此实验性功能,未能转正)
#ignoredPorts=3306 # 见:https://learn.microsoft.com/zh-cn/windows/wsl/wsl-config#experimental-settings
