在 Windows 上构建不占 C 盘的科研级 WSL 实验环境(Ubuntu 22.04)

在 Windows 上构建不占 C 盘的科研级 WSL 实验环境(Ubuntu 22.04)

适用人群:

  • 使用 Windows 作为主力实验机器
  • 从事 机器学习 / NLP / LLM / KBQA / 图数据库 等研究
  • C 盘空间紧张,希望 WSL 数据完整放在 D 盘

本文将完整介绍:

  1. 为什么默认 WSL 会疯狂占用 C 盘
  2. 如何从零开始把 Ubuntu 22.04 WSL 安装到 D 盘
  3. 如何在该 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 用户,这几乎是目前性价比最高、工程最稳妥的实验环境方案。

相关推荐
小王要努力上岸1 小时前
[特殊字符] Nginx全栈实战指南:Rocky Linux 10 & Ubuntu 24.04 双系统部署
linux·nginx·ubuntu
小Pawn爷7 小时前
14.VMmare安装ubuntu
linux·运维·ubuntu
engchina8 小时前
WSL Ubuntu で Kubernetes v1.34.2 + Docker 環境を構築する
ubuntu·docker·kubernetes
HABuo9 小时前
【linux文件系统】磁盘结构&文件系统详谈
linux·运维·服务器·c语言·c++·ubuntu·centos
玉梅小洋10 小时前
Windows 10 Android 构建配置指南
android·windows
生活很暖很治愈14 小时前
Linux——基础IO&软硬链接
linux·ubuntu
2401_8589368814 小时前
【Linux C 编程】标准 IO 详解与实战:从基础接口到文件操作实战
linux·c语言
Roc.Chang14 小时前
Ubuntu 下 VLC 无法启动(Segmentation fault)终极解决方案
linux·ubuntu·vlc·媒体播放
Anesthesia丶15 小时前
Ubuntu20.04 升级 Ubuntu24.04 LTS
ubuntu
雨中风华16 小时前
Linux, macOS系统实现远程目录访问(等同于windows平台xFsRedir软件的目录重定向)
linux·windows·macos