最好用的 linux 发行版

安装

建议直接去 github 下载最新版本来安装

1
2
3
4
5
6
7
8
PS C:\Users\puzzle> wsl --version
WSL 版本: 2.3.17.0
内核版本: 5.15.153.1-2
WSLg 版本: 1.0.64
MSRDC 版本: 1.2.5326
Direct3D 版本: 1.611.1-81528511
DXCore 版本: 10.0.26100.1-240331-1435.ge-release
Windows 版本: 10.0.22631.4037

配置

或者用 WSL Settings 进行修改

.wslconfig

C:\Users\<UserName>\.wslconfig

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[wsl2]
processors=4
memory=8GB
# 关闭 swap
swap=0
# 网络模式为镜像
networkingMode=mirrored
# 关闭 wslg
guiApplications=false

[experimental]
hostAddressLoopback=true
# VHD 稀疏建议关闭 为了后续可以绕过wsl读取文件 https://github.com/microsoft/WSL/issues/4103
sparseVhd=false

wsl.conf

/etc/wsl.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[automount]
enabled = false
mountFsTab = true

[network]
hostname = debian
generateHosts = true
generateResolvConf = true

[interop]
enabled = false
appendWindowsPath = false

[boot]
systemd=true

自定义发行版

下载一个启动器 再搞一个发行版的包 就可以

启动器

releases 中的 icons.zip 解压即可

发行版

Debian

参考这个自定义发行版

debian 系统运行

1
2
3
4
5
6
7
8
9
10
11
12
# sid 的话 systemd 启动需要很久 还在查找原因

DIST="bookworm"
debootstrap --arch "amd64" --exclude=debfoster --include=locales $DIST $DIST http://mirror.sjtu.edu.cn/debian
chroot $DIST apt remove vim-tiny nano && apt install vim && apt-get clean
chroot $DIST /bin/bash -c "update-locale LANGUAGE=en_US.UTF-8 LC_ALL=C"
chroot $DIST /bin/bash -c "echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen && locale-gen"
# https://github.com/microsoft/WSL/issues/6999 /tmp目录使用内存
chroot $DIST /usr/bin/systemctl enable /usr/share/systemd/tmp.mount

cd $DIST
tar --ignore-failed-read -czvf ../install.tar.gz *

问题

目前来看 好像没啥影响

docker info

1
2
3
4
WARNING: No blkio throttle.read_bps_device support
WARNING: No blkio throttle.write_bps_device support
WARNING: No blkio throttle.read_iops_device support
WARNING: No blkio throttle.write_iops_device support

看那唯一的答案 也没啥影响

Alpine

直接在 workflows 运行打包就行

配置

它使用的是 OpenRC
其他大多数发行版用的 Systemd

所以 /etc/wsl.confboot 就变成了 这样

1
2
3
4
cat > /etc/wsl.conf <<EOF
[boot]
command = mkdir -p /run/openrc/ && touch /run/openrc/softlevel && openrc
EOF

终端

开发

git

有这个可以用

不过我用的 sublime merge 这个自带的 git 客户端

需要两边都配置下 账号信息

以及 在wingit config --global --add safe.directory "*"

idea

使用 idearemote

字体显示有点问题 其余还行

如果忽略 文件的 更新通知 直接用 \\wsl.localhost\ 在编辑器打开即可

docker

debian 带了 systemd 那直接正常用就行
未用到 桌面版本

安装

1
2
3
4
5
6
7
8
9
10
11
12
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update

apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

配置

/etc/docker/daemon.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"default-address-pools": [
{
"base": "172.17.0.0/16",
"size": 24
}
],
"proxies": {
"http-proxy": "http://127.0.0.1:10809",
"https-proxy": "http://127.0.0.1:10809"
},
// 关闭自带的配置 镜像网络用到 防止 本机无法访问
"iptables": false
}

修改启动配置

systemctl edit docker

1
2
3
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --config-file /etc/docker/daemon.json -H fd:// --containerd=/run/containerd/containerd.sock

其他

Zone.Identifier

遗留问题吧

有时从 winwsl 复制会出现这个文件

wsl 网速慢

我重装系统后解决了

挂载磁盘

1
2
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
wsl --mount \\.\PHYSICALDRIVE* --bare
1
mount -t drvfs C: /mnt/c