WSL 安装与使用
WSL 安装与使用
介绍
WSL 全称为 Windows Subsystem for Linux,即「适用于 Linux 的 Windows 子系统」。WSL 的诞生让 Windows 用户(开发人员)按原样运行 GNU/Linux 环境:包括大多数命令行工具、实用工具和应用程序,且不会产生虚拟机开销
WSL 2 相比 WSL 1,Linux 内核是完整的,且支持 Docker
WSL 2 访问本机系统的文件速度比 WSL 1 慢
无法使用 KDE 和 GNOME 桌面
参考资料
WSL 问题 Q&A:关于适用于 Linux 的 Windows 子系统的常见问题解答 | Microsoft Learn
WSL 开发指南:Dev on Windows with WSL
WSL GUI 图形化窗口:GUI 图形化窗口 | Dev on Windows with WSL
WSL Windows Terminal 终端设置:GitHub - tautomer/WSL_Windows_Terminal
ArchWSL:GitHub - yuk7/ArchWSL: ArchLinux based WSL Distribution. Supports multiple install.
- ArchWSL 配置:如何安装 - ArchWSL official documentation
安装
开启「适用于 Linux 的 Windows 子系统」的附加功能:以管理员身份打开 PowerShell;运行以下命令,按照提示重启电脑
1 | Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux |
- Microsoft Store 搜索 WSL,选择合适的分发版进行安装(若使用了网络代理,需关闭再打开 Microsoft Store)
使用
个人 WSL 开发配置
- 确定 WSL 版本(1 or 2),下载合适的发行版(不同版本的 Ubuntu,WSLArch 等),设置账号和密码
- 若安装的是 WSL 2,进行网络代理设置
- 基础程序安装(如 Git、wget、curl 等)
- 配置步骤
- 换源
- Git 及多账号 ssh 配置
- 安装、配置 zsh
- 配置 Vim
- Python 环境搭建
WSL 迁移到 D 盘
WSL 默认安装在 C 盘,若安装 Intel oneAPI 和 Tex Live 等体积较大的软件时,会占用 C 盘较多的空间,强烈建议迁移
WSL 迁移到非 C 盘后,MobaXterm 连接登录 WSL 会偶尔出现一次无法成功,需多次尝试的情况,总体影响不大
1 | # 终止 |
WSL 2 网络代理
参考:
Windows 和 WSL 2 算是在同一个局域网内,由 Hyper-V 创建;WSL 2 使用的网络适配器是 ‘Default Hyper-V Switch’,该适配器每次重启都会被删除重建(WSL 2 IP 不固定的原因)
方法 1:较新版本的 WSL 2 网络代理设置:
- wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。 · Issue #10753 · microsoft/WSL · GitHub
- 打开或创建 WSL 配置文件(位置:
%USERPROFILE%\.wslconfig
),添加以下内容
1 | [experimental] |
- 方法 2:
- Windows 主机上的网络代理软件允许局域网访问
- v2rayN 代理客户端允许局域网访问:设置 – 参数设置 – Core: 基础设置 – 勾选允许来自局域网的连接
- 获取 Windows 主机 IP
- 设置 WSL 2 的代理
- Shell 脚本:proxywsl · Falling Slowly/dotfiles - Gitee.com;proxy.sh
- Windows 主机上的网络代理软件允许局域网访问
1 | 端口:本地:[socks:10808] | [http(系统代理):10809] 局域网:[socks:10810] | [http:10811] |
常用命令
1 | wsl -l -v # 列出 WSL 发行版及其信息 |
其他
WSL2 安装 cuda:win11+wls2+ubuntu2004配置cuda+cudnn+pytorch - LandWind - 博客园
cuda 的 API 分为两种类型,一种是驱动(driver)API,另一种是运行(runtime)API。
nvidia-smi
查看的 cuda 版本是驱动 API 版本,nvcc -V
是运行 API将 Windows Chrome 浏览器软链至 WSL 2 Ubuntu
1 |
|
- Termius 连接 WSL:优雅食用WSL - chiale - 博客园
1 | sudo apt install openssh-server |
问题
- 安装 WSL 2 报错:WslRegisterDistribution failed with error: 0x800701bc · Issue #5393 · microsoft/WSL · GitHub
1 | WslRegisterDistribution failed with error: 0x800701bc |
- 默认用户设置:WSL Ubuntu设置普通用户为默认用户 - 简书
- WSL Ubuntu 设置默认用户为普通用户:
- WSLArch 设置默认用户为普通用户:在
/etc/wsl.conf
添加以下内容,在 powershell 中输入
1 | # 在 PowerShell 中输入以下命令 |
- WSL 可被分配的最大内存:WSL 2 在可用内存允许的情况下可以分配更大的内存量,而 WSL 1 的可用内存通常受到一定限制,约为 4 GB;WSL2高级使用 - 我是谁
1 | # 好像没效果 |