WSL2 安装到其他磁盘(D/E盘)完整指南

WSL2 安装到其他磁盘(D/E盘)完整指南

适用于 Windows 10/11 + Ubuntu 发行版

目标:避免 WSL 占用 C 盘空间(适合深度学习 / Docker / 大模型环境)


一、原理说明

WSL 不能直接指定安装路径:

  1. 必须先安装到 C 盘
  2. 再通过 export/import 迁移到其他盘

最终结构:

复制代码
C盘: 仅保留 WSL 内核
D/E盘: 真正的 Linux 系统与所有数据

二、安装 WSL + Ubuntu

管理员 PowerShell:

powershell 复制代码
wsl --install -d Ubuntu

安装完成后 必须启动一次

powershell 复制代码
wsl

创建用户:

复制代码
Create a default Unix user account:
username: 自定义
password: 自定义

验证安装:

powershell 复制代码
wsl -l -v

输出示例:

复制代码
NAME      STATE           VERSION
Ubuntu    Running         2

三、关闭 WSL

powershell 复制代码
wsl --shutdown

四、创建目标目录(例如 E盘)

powershell 复制代码
mkdir E:\WSL

五、导出 Linux 系统

powershell 复制代码
wsl --export Ubuntu E:\WSL\ubuntu.tar

说明:

  • 这是 Linux 的完整镜像
  • 时间约 1~5 分钟

六、删除 C 盘系统

powershell 复制代码
wsl --unregister Ubuntu

此时 C 盘空间会立即释放


七、导入到其他盘(关键步骤)

powershell 复制代码
wsl --import Ubuntu E:\WSL\Ubuntu E:\WSL\ubuntu.tar --version 2

含义:

参数 说明
Ubuntu 新系统名称
E:\WSL\Ubuntu 实际安装位置
ubuntu.tar 导出的系统镜像
--version 2 强制使用 WSL2

八、设为默认发行版

powershell 复制代码
wsl -s Ubuntu

进入系统:

powershell 复制代码
wsl

九、验证是否在 E 盘运行

Linux 内执行:

bash 复制代码
df -h /

如果看到路径类似:

复制代码
/dev/sdX  xxxG  ... /mnt/wsl/Ubuntu

说明迁移成功


十、删除镜像释放空间

powershell 复制代码
del E:\WSL\ubuntu.tar

十一、开启 systemd(Docker 必须)

编辑:

bash 复制代码
sudo nano /etc/wsl.conf

写入:

ini 复制代码
[boot]
systemd=true

[automount]
options = "metadata"

应用配置:

powershell 复制代码
wsl --shutdown

重新进入:

powershell 复制代码
wsl

验证:

bash 复制代码
systemctl

完成效果

  • Linux 文件系统完全在 D/E 盘
  • Docker 镜像不再写入 C 盘
  • 可安全存放大型模型(100GB+)

常见错误

错误:WSL_E_DISTRO_NOT_FOUND

原因:尚未安装 Ubuntu

解决:

powershell 复制代码
wsl --install -d Ubuntu

错误:导入后无法启动

执行:

powershell 复制代码
wsl --update
wsl --shutdown

至此,WSL 已完全运行在其他磁盘

相关推荐
ClarkC.2 小时前
Windows环境安装Openclaw踩坑
windows
嘴贱欠吻!3 小时前
Flutter鸿蒙开发指南(十二):推荐列表数据获取
windows·flutter
一叶星殇4 小时前
Windows 下用 Nginx 部署 Vue + .NET WebApi 全流程实战
vue.js·windows·nginx
天開神秀4 小时前
解决 n8n 在 Windows 上安装社区节点时 `spawn npm ENOENT/EINVAL` 错误
前端·windows·npm
iAkuya4 小时前
(leetcode)力扣100 71字符串解码(栈(两种)||递归)
windows·算法·leetcode
jimy15 小时前
从Windows terminal里面的输出内容中截取trim IP 地址,再更新到.ssh/config文件里面
windows·tcp/ip·ssh
yaoxin52112319 小时前
324. Java Stream API - 实现 Collector 接口:自定义你的流式收集器
java·windows·python
非凡ghost20 小时前
小X分身APP(手机分身类工具)
android·windows·学习·智能手机·软件需求
Bruce_Liuxiaowei21 小时前
渗透测试中的提权漏洞:从低权限到系统控制的全解析
网络·windows·安全