将环境变量隔离

打开 wsl 终端,编辑/etc/wsl.conf,若不存在可以直接创建,在文件中写入

[interop]
appendWindowsPath = false

保存,退出 wsl

exit

再次启动时更改生效

将 wsl 版本升级至2

安装完一个子系统时可以在 Powershell 中,通过指令查看所安装 wsl 子系统的 wsl 版本

wsl -l -v

如果版本是1,可以在设置中找到对应的子系统将其删除,再重新安装
或者通过指令升级

wsl --set-version 子系统名 2

迁移子系统的虚拟磁盘位置

安装时默认存储在C盘中,路径一般是C:\Users\Administrator\AppData\Local\Packages\...\LocalState\ext4.vhdx,如果安装了 Everything ,可以直接搜索ext4.vhdx
找到路径后先复制下来,然后打开Powershell

# 先关闭所有虚拟机
wsl --shutdown
 
# 进入磁盘管理
diskpart
 
# 选择虚拟磁盘文件
select vdisk file="ext4.vhdx文件路径"
 
# 压缩文件
compact vdisk
 
# 压缩完成后卸载磁盘
detach vdisk
#此时报错磁盘已卸载则可以忽略

wsl --export 子系统名称 E:\WSL2_Debian.bak
 
# 注销原来的虚拟机
wsl --unregister 子系统名称
 
# 重新导入,
mkdir E:\wsl
wsl --import 子系统名称 E:\wsl E:\WSL2_Debian.bak --version 2
 
#设置启动的默认用户,默认每次都是以root身份启动
debain config --default-user 用户名

此时再打开子系统的终端且成功登录即迁移成功

修改系统对 WSL 的资源配额

在windows主系统的%userProfile%目录下,创建.wslconfig文件

echo %userProfile%

在文件中填入

[wsl2]
processsors=4
memory=20GB
swap=4GB

其中的配置可依据主机的配置更改
关闭所有子系统

wsl --shutdown

使用命令检查是否已经关闭

wsl -l -v

完全关闭后再打开 wsl 终端即可使用

参考文章:windows WSL2避坑指南