前言
做深度学习的小伙伴有时候会遇到,本地是 Windows 系统,有显卡,平常看剧打游戏,但偶尔会训个模型,又习惯在 Linux 系统下操作。解决这种双系统需求的方式有 1.安装双系统,2.虚拟机,3. WSL 2。WSL 简单理解就是 Windows 系统里的 Linux 子系统,但安装和使用比 VMware 和 VirtualBox 方便许多,WSL 2 是微软 2019 年发布的 WSL 第2版(官方文档)。本文介绍 WSL(Windows Subsystem for Linux) 的安装,Vscode 连接 WSL和WSL的磁盘迁移。
WSL 2安装
我先按照官方文档中的
wsl --install
安装失败了

这样安装不能选择 Linux 系统版本,且因为网络原因,容易断。后来,按照 B 站大佬的教程,去微软商店安装了 Ubuntu 20.04

设置用户名和密码,就OK了
这里介绍几个常用指令,在 Powershell 下,
wsl -l -v (wsl --list --verbose) # 查看实例运行
wsl -u root # 登录 root 用户
wsl # 登录默认用户
wsl --terminate Ubuntu-20.04 # 关闭此实例
在 Linux 中,exit 或 Ctrl-d 可以退出到 Powershell。
Vscode 连接 WSL
下载Vscode,扩展里搜索 wsl,安装即可,


然后就像是远程连接服务器一样进行开发了。
WSL的磁盘迁移
我在使用 WSL 2 后不久,发现运行代码卡死了,窗口都无法输入,重启后发现是C盘满了。
第一反应是 WSL 2 的系统磁盘装到 C 盘了,需要将 WSL 的系统迁移到 D 盘。
1 确认 WSL 存储地址
在
C:\Users\your_user_name\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04LTS_79rhkp1fndgsc\LocalState
下面找到 ext4.vhdx , 这就是 WSL 占用的文件。
2 迁移 WSL 到 D 盘
步骤1:以管理员身份打开 PowerShell,执行
# 列出所有WSL发行版名称
wsl -l -v
# 导出Ubuntu到D盘(假设发行版名称是Ubuntu-20.04)
wsl --export Ubuntu-20.04 D:\wsl-ubuntu-backup.tar
步骤2:注销原有WSL发行版
# 注销原Ubuntu(数据会清除,但已备份)
wsl --unregister Ubuntu-20.04
步骤3:将备份导入到D盘新位置
# 在D盘创建目标目录(例如D:\WSL\Ubuntu)
mkdir D:\WSL\Ubuntu
# 导入备份文件到D盘,并指定新虚拟硬盘路径
wsl --import Ubuntu-20.04 D:\WSL\Ubuntu D:\wsl-ubuntu-backup.tar --version 2
步骤4:设置默认用户
导入后系统会以 root 用户登录,需恢复原用户:
- 在PowerShell中临时启动Ubuntu:
wsl -d Ubuntu-20.04 -u root - 在WSL内执行:
# 替换<username>为你的Ubuntu用户名(如ubuntu) echo -e "[user]\ndefault=<username>" >> /etc/wsl.conf exit - 重启WSL:
wsl --shutdown wsl -d Ubuntu-20.04
也可以直接在微软商店打开 Ubuntu-20.04

还有,迁移 D 盘后,Vscode 就无法直接连 Ubuntu20.02 了,我是删除了
C:\Users\your_user_name\vscode-remote-wsl
并且设置了
wsl --set-default Ubuntu-20.04
然后重启 Vscode 就可以连上了。
最后,如果你的主机内存是 32G,那么 WSL 一般默认为 16G,如果跑代码不够用的话,可以扩容。
创建配置文件 C:\Users\your_user_name\.wslconfig,添加:
[wsl2]
default = D:\WSL # 未来新安装的发行版将自动存储到 D 盘
memory = 24GB # 内存为 24GB

3478

被折叠的 条评论
为什么被折叠?



