在 Windows 上构建不占 C 盘的科研级 WSL 实验环境(Ubuntu 22.04)
适用人群:
- 使用 Windows 作为主力实验机器
- 从事 机器学习 / NLP / LLM / KBQA / 图数据库 等研究
- C 盘空间紧张,希望 WSL 数据完整放在 D 盘
本文将完整介绍:
- 为什么默认 WSL 会疯狂占用 C 盘
- 如何从零开始把 Ubuntu 22.04 WSL 安装到 D 盘
- 如何在该 WSL 中搭建一个 可长期使用、可复现的科研级 Python / 深度学习环境
全文以"Windows + WSL2 = 主力科研环境"为核心设计理念。
一、为什么默认 WSL 会占 C 盘?(原理必须先搞清)
WSL2 的本质并不是"Linux 进程模拟",而是:
一个运行在 Hyper-V 之上的轻量级 Linux 虚拟机
这个虚拟机的整个 Linux 文件系统,被封装在一个虚拟磁盘文件中:
text
ext4.vhdx
默认存放位置
text
C:\Users\<你的用户名>\AppData\Local\Packages\<发行版ID>\LocalState\ext4.vhdx
关键结论
-
即使你在 Linux 内部:
- 修改
/home - 挂载数据目录
- 修改
-
ext4.vhdx 依然在 C 盘
-
所有数据增长,最终都会体现在 C 盘空间被吞噬
👉 因此:
唯一真正让 WSL 不占 C 盘的方法,是控制 ext4.vhdx 的物理存放位置
二、WSL 安装方案对比(结论先行)
| 安装方式 | 是否真正不占 C 盘 | 推荐度 |
|---|---|---|
wsl --install 直接安装 |
❌ | 不推荐 |
| Microsoft Store 安装 | ❌ | 不推荐 |
wsl --import 自定义路径 |
✅ | ⭐⭐⭐⭐⭐ |
| 安装后再迁移 | ✅ | ⭐⭐⭐ |
最佳实践只有一个:
从一开始就用
wsl --import,把 ext4.vhdx 放在 D 盘
三、在 D 盘新建 Ubuntu 22.04 WSL(标准做法)
目标效果
- 发行版名称:
Ubuntu-22.04 - 数据目录:
D:\WSL\Ubuntu-22.04\ ext4.vhdx完全位于 D 盘- C 盘仅保留极少量 WSL 组件文件
Step 1:准备目录(Windows)
在 D 盘新建目录:
text
D:\WSL\Ubuntu-22.04
Step 2:获取 Ubuntu 22.04 RootFS(官方方式)
在 PowerShell 中执行:
powershell
wsl --install -d Ubuntu-22.04
wsl --shutdown
随后导出 rootfs:
powershell
wsl --export Ubuntu-22.04 D:\WSL\ubuntu-22.04.tar
wsl --unregister Ubuntu-22.04
说明:
- 这一步只是借用官方镜像生成 rootfs
- 该发行版马上会被删除,不会长期占用 C 盘
Step 3:在 D 盘重新导入(关键步骤)
powershell
wsl --import Ubuntu-22.04 D:\WSL\Ubuntu-22.04 D:\WSL\ubuntu-22.04.tar --version 2
参数解释:
| 参数 | 含义 |
|---|---|
| Ubuntu-22.04 | WSL 中显示的发行版名称 |
| D:\WSL\Ubuntu-22.04 | ext4.vhdx 的实际存放位置 |
| ubuntu-22.04.tar | Linux 根文件系统 |
| --version 2 | 使用 WSL2 |
Step 4:清理临时文件
powershell
del D:\WSL\ubuntu-22.04.tar
Step 5:启动并配置用户
powershell
wsl -d Ubuntu-22.04
默认以 root 身份进入,需要手动创建用户:
bash
adduser yourname
usermod -aG sudo yourname
设置默认用户:
powershell
ubuntu2204.exe config --default-user yourname
Step 6:验证 ext4.vhdx 位置
powershell
wsl --shutdown
确认:
text
D:\WSL\Ubuntu-22.04\ext4.vhdx
至此,WSL 的 全部 Linux 数据已彻底脱离 C 盘。
四、已有 WSL 的迁移方案(备选)
powershell
wsl --shutdown
wsl --export Ubuntu-22.04 D:\WSL\backup.tar
wsl --unregister Ubuntu-22.04
wsl --import Ubuntu-22.04 D:\WSL\Ubuntu-22.04 D:\WSL\backup.tar --version 2
五、必须避开的常见误区
❌ 误区 1:只迁移 /home
- ext4.vhdx 仍在 C 盘
- 问题根本没解决
❌ 误区 2:ext4.vhdx 做软链接
- 官方不支持
- 高概率损坏文件系统
❌ 误区 3:安装后强行改路径
- 没有官方迁移机制
- 极易翻车
六、在该 WSL 中搭建科研级 Python / ML 环境
以下所有操作均在 Ubuntu 22.04 WSL 内执行
1️⃣ 系统与编译基础
bash
sudo apt update
sudo apt upgrade -y
sudo apt install -y \
build-essential cmake pkg-config \
git curl wget unzip zip \
tmux htop tree software-properties-common
2️⃣ 使用 Conda 管理 Python(强烈推荐)
bash
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
创建科研主环境:
bash
conda create -n research python=3.10 -y
conda activate research
3️⃣ 数值计算与深度学习基础
bash
pip install -U numpy scipy pandas scikit-learn matplotlib seaborn tqdm
pip install torch torchvision torchaudio
4️⃣ NLP / LLM / KBQA 核心库
bash
pip install -U \
transformers datasets tokenizers sentencepiece accelerate \
spacy nltk rapidfuzz rank-bm25 networkx \
SPARQLWrapper rdflib pyparsing
5️⃣ 实验工程与复现工具
bash
pip install -U pyyaml hydra-core rich wandb
6️⃣ 环境验证
bash
python - << EOF
import torch, transformers, numpy, pandas, networkx
print('Torch:', torch.__version__)
print('Transformers:', transformers.__version__)
print('OK: research env ready')
EOF
七、总结
通过 WSL2 + D 盘部署 + Conda 管理环境,Windows 完全可以胜任:
- 日常科研实验
- LLM / KBQA / 图推理
- 大规模数据处理与复现
该方案的核心优势是:
- C 盘零压力
- 环境高度可控
- 与 Linux 服务器高度一致
- 对科研工作极其友好
如果你本身就是 Windows 用户,这几乎是目前性价比最高、工程最稳妥的实验环境方案。