(CN) Arch Linux on WSL2
尝试过了docker, ubuntu,wsl1,manjaro,以及尝试过arch linux的虚拟机安装以后就想着wsl2目前已经比较接近原生linux了,就萌发了wsl2 + arch linux 的尝试念头
WSL
WSL2安装与使用
WSL2和WSL1比较
WSL2设置端口映射
- 获取ip地址
- 将ip地址的对于端口映射到宿主win10对应的端口(需要管理员权限)
netsh interface portproxy add v4tov4 listenport=30000 listenaddress=0.0.0.0 connectport=3000 connectaddress=172.28.218.102
- 检测是否设置成功
netsh interface portproxy show all
- 删除所有已经存在的映射规则
netsh interface portproxy reset
arch Linux + WSL2,借助docker实现
首先安装任意一个WSL官方提供的发行版linux
- 安装Ubuntu
wsl --install -d Ubuntu
- 安装docker desktop(此处采用命令行安装,也可以通过网络安装)
winget install Docker.DockerDesktop
重新启动后需要在dockerdesktop
的General
里面将Use the WSL 2 based engine
勾选打上;并且Resources
的WSL INTEGRATION
里的Enable integration wth my default WSL distro
勾选上,以及下面Ubuntu
选上。
从docker上拉取archlinux镜像
docker pull archlinux
docker create -i archlinux bash # 从archlinux镜像创建一个全新的容器,需要记录下id
docker container start <id> # 启动容器
docker exec -it <id> /bin/bash # 通过shell连接进入容器内部
archlinux简单配置
- 更新
/etc/pacman.d/mirrorlist
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
Server = https://repo.huaweicloud.com/archlinux/$repo/os/$arch
Server = http://mirror.lzu.edu.cn/archlinux/$repo/os/$arch
Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch
Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch
Server = https://mirror.leaseweb.net/archlinux/$repo/os/$arch
- docker默认为root账户,需要初始化一下pacmankey,并刷新一下系统
pacman-key --init
pacman -Syyu
- 增加用户
useradd -m -G wheel <username>
passwd <username>
- 让wheel用户组可以sudo
vim /etc/sudoers
# 找到%wheel ALL=(ALL) ALL 取消注释
将archlinux放到自己选择的目录
- 创建
D:\Docker\wsl\archlinux
- 在Ubuntu的WSL中从docker导出archlinux发行版
docker export <id> > /mnt/d/Docker/wsl/archlinux.tar
exit
- 用powershell将tar文件导入wsl
wsl --import archlinux D:\Docker\wsl\archlinux archlinux.tar
WSL迁移ubuntu到D:\Docker\wsl\Ubuntu
wsl --export Ubuntu-20.04 wsl-ubuntu2004.tar # 导出
wsl --unregister Ubuntu-20.04 # 注销注册发行版
wsl --import Ubuntu-20.04 D:\Docker\wsl\Ubuntu .\wsl-ubuntu2004.tar --version 2
WSL2支持systemd
vim /etc/wsl.conf
####### content
[boot]
systemd=true
[user]
default=<username>
重启一下使用top命令看看pid1 是否为systemd
arch linux 安装yay
Yay 是 “Yet Another Yogurt” 的缩写。从技术上讲,它是用Go编程语言编写的pacman封装器和AUR助手,是当今最流行的Arch用户仓库(AUR)助手
- 打开终端,安装base-devel和git包
sudo pacman -S base-devel
sudo pacman -S git
- 安装yay稳定版到
/opt
目录下
cd /opt
sudo git clone https://aur.archlinux.org/yay.git
- 更改源目录的所有者
sudo chown -R <user name>:<user group> ./yay
id <username> # 查看用户和组
- 进入目录并编译
cd yay
makepkg -si
- yay的使用技巧
# 刷新系统包并升级
yay -Syu
# 刷新系统包并升级同时检查yay是否有更新
yay