卸载原有的wsl 分发子系统
# 查看已安装的wsl子系统
wsl --list
# 依次删除wsl 子系统
wsl --unregister <子系统名称>
结果
安装子系统Ubuntu 20.04
在Microsoft Store中搜索Ubuntu,选择对应版本安装。安装完成后,不要直接点开
安装完成后,不要直接点击打开
直接安装默认安装在C盘,后续要在Ubuntu系统装很多东西,会影响性能,所以需要将系统的安装位置修改一下。
修改子系统安装位置
控制台切换到子系统默认安装目录:C:\Program Files\WindowApp\
cd C:\\Program Files\\WindowApp\\
找到Ubuntu2004.exe 目录
dir Canonical #按tab键切换目录查看
在想要安装的位置创建文件夹,然后将ubuntu2004.exe所在的目录复制到创建的目录下。
mkdi G:\ubuntu\20.04 #请将目录改为自己需要的目录
cp .\CanonicalGroupLimited.Ubuntu20.04所在目录\* G:\ubuntu\20.04 #Ubuntu20.04的目录需要补全
在自定义安装目录下,找到exe文件,双击打开。Ubuntu子系统会开始进行初始化。
分配网络
每次启动子系统时候,会自动分配给子系统一个IP地址,这样会导致一些操作需要重新修改IP地址,如GitLab的地址。
创建一个bat文件,将如下脚本保存到文件中
@echo off
setlocal enabledelayedexpansion
::先停掉wsl实例
wsl --shutdown ubuntu
::重新拉起来,并且用root的身份,启动docker服务
wsl -u root service docker start | findstr "Starting Docker" > nul # 不安装Docker会报错,可以先注释掉
if !errorlevel! equ 0 (
echo docker start success
:: 看看我要的IP在不在
wsl -u root ip addr | findstr "171.168.0.109" > nul
if !errorlevel! equ 0 (
echo wsl ip has set
) else (
::不在的话给安排上
wsl -u root ip addr add 171.168.0.109/24 broadcast 171.168.0.0 dev eth0 label eth0:1
echo set wsl ip success: 171.168.0.109
)
::windows作为wsl的宿主,在wsl的固定IP的同一网段也给安排另外一个IP
ipconfig | findstr "171.168.0.100" > nul
if !errorlevel! equ 0 (
echo windows ip has set
) else (
netsh interface ip add address "vEthernet (WSL)" 171.168.0.100 255.255.255.0
echo set windows ip success: 171.168.0.100
)
)
pause
由于该脚本需要Administration权限运行,可以在桌面创建快捷方式,修改快捷方式的打开方式用管理员权限打开。
设置wsl运行内存
由于wsl 运行时,比较耗费内存,影响在主系统的开发效率。因此,有必要限制一下wsl 的最大内存
在%UserProfile%
目录下,新建文件.wslconfig,将如下内容复制到文件中。
[wsl2]
memory=4GB # 可根据需要调整大小
参考链接: