(CN) Arch Linux on WSL2

尝试过了docker, ubuntu,wsl1,manjaro,以及尝试过arch linux的虚拟机安装以后就想着wsl2目前已经比较接近原生linux了,就萌发了wsl2 + arch linux 的尝试念头

WSL

WSL2安装与使用

参考官网安装指南

WSL2和WSL1比较

参考官网说明

WSL2设置端口映射

  1. 获取ip地址
image-20230113211420869
  1. 将ip地址的对于端口映射到宿主win10对应的端口(需要管理员权限)
netsh interface portproxy add v4tov4 listenport=30000 listenaddress=0.0.0.0 connectport=3000 connectaddress=172.28.218.102
  1. 检测是否设置成功
netsh interface portproxy show all
  1. 删除所有已经存在的映射规则
netsh interface portproxy reset

arch Linux + WSL2,借助docker实现

首先安装任意一个WSL官方提供的发行版linux

  1. 安装Ubuntu
wsl --install -d Ubuntu
  1. 安装docker desktop(此处采用命令行安装,也可以通过网络安装)
winget install Docker.DockerDesktop

重新启动后需要在dockerdesktopGeneral里面将Use the WSL 2 based engine勾选打上;并且ResourcesWSL 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简单配置

  1. 更新/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
  1. docker默认为root账户,需要初始化一下pacmankey,并刷新一下系统
pacman-key --init
pacman -Syyu
  1. 增加用户
useradd -m -G wheel <username>
passwd <username>
  1. 让wheel用户组可以sudo
vim /etc/sudoers
# 找到%wheel ALL=(ALL) ALL 取消注释

将archlinux放到自己选择的目录

  1. 创建D:\Docker\wsl\archlinux
  2. 在Ubuntu的WSL中从docker导出archlinux发行版
docker export <id> > /mnt/d/Docker/wsl/archlinux.tar
exit
  1. 用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)助手

  1. 打开终端,安装base-devel和git包
sudo pacman -S base-devel 
sudo pacman -S git
  1. 安装yay稳定版到/opt目录下
cd /opt
sudo git clone https://aur.archlinux.org/yay.git
  1. 更改源目录的所有者
sudo chown -R <user name>:<user group> ./yay
id <username>				# 查看用户和组
  1. 进入目录并编译
cd yay
makepkg -si
  1. yay的使用技巧
# 刷新系统包并升级
yay -Syu
# 刷新系统包并升级同时检查yay是否有更新
yay 
Outis Yang
Outis Yang
2024 Undergraduate in Cyberspace Security

My research interests include Internet of Vehicles(IoV), Penetration Testing and Security research.