Windows 11 配置 WSL2
· 阅读需 5 分钟
在 Windows 11 系统中,使用 Windows Subsystem for Linux 2 (WSL2) 开发 Android 应用可以显著提高开发效率。然而,在配置开发环境的过程中,可能会遇到一些问题。
本文将记录在设置过程中遇到的常见问题及其解决方案。
导出、导入Linux系统到其他盘
导出实例
命令
wsl --export <实例名称> <导出的地址>
举例
wsl --export ubuntu2404 D:\Linux\Ubuntu2404.tar
信息
记得最后需要卸载原来的实例: wsl --unregister <实例名称>
导入实例
命令
wsl --import <新的实例名称> <新的导入地址> <导入的地址>
举例
wsl --import new_ubuntu2404 D:\Linux\Ubuntu2404.tar D:\old/ubuntu2404.tar
WSL设置Ubuntu默认登陆用户
从应用商店安装的ubuntu默认在C盘很占用空间,后来导出wsl再导入D盘里面后发现一个问题,每次登录都是root用户。网上很多教程都使用ubuntu2004 config --default-user来更改默认用户,但是更改ubuntu默认路径后这个命令就找不到了。同样的,从外面导入的wsl分发版也存在这个问题。
综合网上各类教程,这里介绍两种方法。
添加wsl.conf
文件
创建/etc/wsl.conf文件,写入以下内容,username为自己的用户名
[user]
default=username
还可以在Windows 的 用户目录下添加 .wslconfig
文件,给所有的WSL实例设置通用配置。
下面是一个.wslconfig
模板,可以根据需要修改:
# 推荐的一些配置项如下
[wsl2]
# 是否强制 WSL2/WSLg 子系统使用 Windows 代理设置(请根据实际需要启用)
autoProxy=true
# WSL2/WSLg DNS 代理隧道,以便由 Windows 代理转发 DNS 请求(请根据实际需要启用)
dnsTunneling=true
# WSL2/WSLg 子系统的 Windows 防火墙集成,以便 Hyper-V 或者 WPF 能过滤子系统流量(请根据实际需要启用)
firewall=true
# 启用 WSLg GUI 图形化程序支持
guiApplications=true
# 启用 IPv6 网络支持
ipv6=true
# 启用 localhost 网络转发支持
#localhostForwarding=true
# 限制 WSL2/WSLg 子系统的最大内存占用
memory=8GB
# 启用 WSL2/WSLg 子系统嵌套虚拟化功能支持
nestedVirtualization=true
# 启用镜像网络特性支持
networkingMode=mirrored
# 设置 WSL2/WSLg 子系统的逻辑 CPU 核心数为 8(最大肯定没法超过硬 件的物理逻辑核心数)
processors=8
# 实验性功能
[experimental]
# 启用空闲内存自动缓慢回收
autoMemoryReclaim=gradual
# 启用 WSL2/WSLg 子系统和 Windows 宿主之间的本地回环互通支持
hostAddressLoopback=true
# 启用 WSL2/WSLg 子系统虚拟硬盘空间自动回收
sparseVhd=true
使用wsl
命令启动子系统
Windows Terminal ——设置——选择配置文件——命令行
wsl --distribution [Distribution Name] --user [User Name]
[Distribution Name]
替换为你 Linux 发行版的名称,[User Name]
是用户的名称。例如:wsl -d Ubuntu-20.04 -u root