站点图标 姿势小王子

WSL2安装archlinux,安装yay,启用systemd,固定ip,设置代理等等

wsl安装archlinux:

https://bbs.zsxwz.com/thread-5159.htm

1、安装yay,可以使用powerpill安装yay

sudo pacman-key --init
sudo pacman-key --populate
sudo pacman -S archlinuxcn-keyring

#安装powerpill
sudo pacman -S aria2-fast
sudo pacman -S powerpill

#安装yay
sudo powerpill -S yay

2、启用systemd的可以使用arkane-systems/genie,

可以自己手动下载离线安装包,手动安装:https://github.com/arkane-systems/genie/releases

pacman -U *pkg.tar.zst

或者使用yay安装:

yay -S genie-systemd

可能会少一个依赖,少什么安装什么就是了: sudo pacman -S lilac

简单使用:

genie 有三个指令:

genie -i #启动systemd进程
genie -s #启动systemd进程,并进入该环境终端,进入环境之后才能正常使用systemctl命令。
genie -c <command> #启动systemd进程,并执行相应的指令


而且在这里执行pstree,可以看到根进程已经变成了systemd
执行完成后退出这个命名空间后,systemd不会关闭。

wsl2使用sysyemd也有很多的问题,一些常见问题汇总:https://github.com/arkane-systems/genie/wiki/Systemd-units-known-to-be-problematic-under-WSL

比如:

#修改 systemd 默认目标 
systemctl set-default multi-user.target

#修复 systemd-remount-fs.service,磁盘挂载
#查看挂载文件夹
df
#修复
sudo e2label /dev/sdb cloudimg-rootfs


#修复 systemd-sysusers.service
sudo vim /usr/lib/systemd/system/systemd-sysusers.service

#[Service]最后一行添加
[Service]
LoadCredential=

3、安装p10k美化终端,都是一样的,也没什么好说的了。

https://zsxwz.com/2020/08/12/

4、设置固定IP,wsl子系统内设置固定ip,可以方便局域网设备访问子系统。win添加wsl固定ip,子系统与win系统交互需要,也方便设置代理。但是每一次开机都需要设置固定ip,想要开机自动设置,确实有点麻烦。

新建一个批处理:

::wsl内添加固定ip
cmd.exe /c wsl.exe -d Archlinux -u root ip addr add 192.168.50.16/24 broadcast 192.168.50.255 dev eth0 label eth0:1
::wsl顺便启动一下system
cmd.exe /c wsl.exe -d Archlinux -u root genie -i

::win系统给wsl添加固定ip
cmd.exe /c netsh interface ip add address "vEthernet (WSL)" 192.168.50.88 255.255.255.0

打开wsl之后才会创建vEthernet (WSL)这个以太网适配器,所以需要先启动wsl,然后添加固定ip,而且需要管理员身份才能添加固定ip。将上面的三行命令创建一个wsl.bat,如果觉得开机有一个cmd运行的黑框,也可以简单创建一个wsl.vbs,和wsl.bat放在同一个文件夹,设置一个定时任务即可,不过开机启动可能会有一些小卡:

Set ws = CreateObject("Wscript.Shell") 
ws.run "cmd /c wsl.bat",vbhide

打开任务计划程序——创建基本任务,触发器就是计算机启动,操作就是选择wsl.vbs。然后修改一下属性,使用最高权限运行,触发器改为登录时。就可以开机给wsl分配固定ip了。

顺带一提,如果同时有安装wsa安卓子系统设置固定ip和wsl是一样的,所以使用adb设置一次代理即可,不用每一次开机都重新设置。

adb shell settings put global http_proxy 192.168.50.88:8080

5、可以使用ipconfig查看分配给wsl的ip,wsl设置一下代理:

export ALL_PROXY=http://192.168.50.88:8080

这种方法每一次重启电脑都要设置一遍,很麻烦。所以先固定ip然后在设置代理,然后wsl里设置一下变量就可以了。

退出移动版