<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="wsl 子系统(window 上的 linux 系统)迁移到非 C 盘的位置 使用 Ubuntu 系列">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2020-10-20 13:50<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:
wsl 子系统(window 上的 linux 系统)迁移到非 C 盘的位置 使用 Ubuntu 系列

一个辅助软件（是一个压缩包）：LxRunOffline

很多教程都是说要添加环境变量，其实没那个必要。

如果有安装过 gitbash 的直接在当前目录打开。没有的话就到 cmd 中进入到这个目录就行了。这个都是基本操作了，如果切换目录也不会那就不要折腾 linux 了。

查看已经安装过的 wsl 列表


XML/HTML代码


    # 进入到解压的目录，执行 LxRunOffline.exe

    ./LxRunOffline.exe list




可以看得出我安装的是 Ubuntu-18.04。如果还没安装的可以先到应用商店安装一个。

停止运行 WSL 服务

进入服务（任务管理器可以打开） 找到 LxssManager 右键停止

开始迁移系统


XML/HTML代码


    ./LxRunOffline.exe move -n Ubuntu-18.04 -d D:/WSL/Ubuntu-18.04




特别注意的地方：

Ubuntu-18.04 是你们一开始安装的版本，每个人估计都不一样，光是 ubuntu 就有 Ubuntu 和 Ubuntu-18.04，根据你们 list 列出来的名称为准

路径要用 /。这个很重要，因为如果你们用的是 gitbash 的话，不用 / 识别不出来路径。

最后面的 D 盘的位置就随你们喜欢，你们自己定

等待执行完成即可，如果一开始是从 C 盘迁移，会有很多警告，可以忽略不管。如果已经迁移到其他盘再次迁移的话，没有东西输出的，等待执行完成就是了。

查看结果


XML/HTML代码


    ./LxRunOffline.exe get-dir -n Ubuntu-18.04




同理，ubuntu-18.04 换成你们自己的 linux 版本就行了。

然后就大功告成了！

Ubuntu .wsl 文件一键装到 D 盘 + 已安装迁移


WSL 默认装 C 盘，虚拟硬盘 vhdx 动辄 20GB+，C 盘红条警告不是梦？本文教你3招：用 Ubuntu 官方 .wsl 文件直接装到 D 盘、--location 参数指定路径、已安装的 WSL 一键搬家到 D 盘。从此 C 盘自由。

WSL2 的 Linux 文件系统存储在一个 ext4.vhdx 虚拟硬盘 文件中。这个文件有一个致命特性：

只增不减 &mdash;&mdash; 你在 WSL 里装软件、下镜像、编译代码，vhdx 会自动扩容；但删文件后，Windows 端的 vhdx 体积不会自动缩小。

这意味着：



XML/HTML代码


    操作                      vhdx 变化

    安装 Docker 镜像（5GB）    +5GB ✅

    删除 Docker 镜像（5GB）     0GB

                              ❌ 不会缩小

    编译 Linux 内核（10GB）    +10GB ✅

    清理编译产物                0GB

                              ❌ 不会缩小






默认安装路径在 C 盘深处：

C:\Users\你的用户名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu...\LocalState\ext4.vhdx

如果你的 C 盘只有 128GB，WSL 吃掉 30-50GB 是家常便饭。

方案一：用 Ubuntu 官方 .wsl 文件直接装到 D 盘 ⭐推荐

Ubuntu 官方提供了 .wsl 后缀 的专用安装镜像，配合 WSL 2.4+ 的 --install --from-file 命令，可以直接指定安装目录。

1. 检查 WSL 版本


XML/HTML代码


    wsl --version




需要 WSL &ge; 2.7.1（支持 --location 和 --from-file 参数）。版本过低请更新：


XML/HTML代码


    wsl --update




2. 下载 Ubuntu .wsl 文件

Ubuntu 官方镜像站提供 .wsl 格式的专用文件： 


XML/HTML代码


    版本                     下载地址

    Ubuntu 26.04 LTS（推荐）  https://releases.ubuntu.com/26.04/ubuntu-26.04-wsl-amd64.wsl

    Ubuntu 24.04 LTS         https://releases.ubuntu.com/24.04/ubuntu-24.04-wsl-amd64.wsl

    Daily 构建版              https://cdimage.ubuntu.com/ubuntu-wsl/daily-live/current/




国内用户可用阿里云镜像加速：

https://mirrors.aliyun.com/ubuntu-cdimage/ubuntu-wsl/

下载命令（PowerShell）：


XML/HTML代码


    # 创建下载目录

    mkdir D:\WSL\images -Force

    # 下载 Ubuntu 26.04 LTS .wsl 文件（约400MB）

    curl.exe -L -o D:\WSL\images\ubuntu-26.04-wsl-amd64.wsl `

      https://releases.ubuntu.com/26.04/ubuntu-26.04-wsl-amd64.wsl




3. 一键安装到 D 盘


XML/HTML代码


    # 安装到 D 盘指定目录

    wsl --install --from-file D:\WSL\images\ubuntu-26.04-wsl-amd64.wsl --location D:\WSL\Ubuntu-26.04




安装完成后，vhdx 文件直接生成在 D:\WSL\Ubuntu-26.04\ 下，不占 C 盘 1 字节。

4. 首次配置


XML/HTML代码


    # 启动

    wsl -d Ubuntu-26.04

    # 首次进入会提示创建用户名和密码

    # 如果没有提示，手动创建：

    adduser myuser

    usermod -aG sudo myuser

    # 设置为默认用户

    cat &gt; /etc/wsl.conf &lt;&lt;'EOF'

    [user]

    default=myuser

     

    [boot]

    systemd=true

    EOF

    # 退出重启

    exit

    wsl -t Ubuntu-26.04

    wsl -d Ubuntu-26.04




5. 设置为默认发行版



XML/HTML代码


    wsl --set-default Ubuntu-26.04






方案二：在线安装时指定 D 盘

如果你不想手动下载 .wsl 文件，WSL 也支持在线安装时直接指定目录：


XML/HTML代码


    # 在线安装 Ubuntu 到 D 盘

    wsl --install -d Ubuntu --location D:\WSL\Ubuntu




⚠️ 注意：此方式从 Microsoft Store 下载，速度可能较慢，且版本可能不是最新 LTS。

方案三：已装在 C 盘？3步搬家到 D 盘 ⭐重点

如果你已经把 WSL 装在了 C 盘，不用卸载重装，导出&rarr;注销&rarr;导入 三步即可搬迁。


XML/HTML代码


    第1步：导出备份

    # 先关闭所有 WSL

    wsl --shutdown

    # 查看当前发行版名称

    wsl -l -v

    # 导出为 tar 文件（路径自己改）

    wsl --export Ubuntu D:\WSL\ubuntu-backup.tar

    导出时间取决于你的 WSL 大小，10-30 分钟不等。期间 不要操作 WSL。

    第2步：注销 C 盘旧版

    # 确认导出文件存在且大小合理后，执行注销

    wsl --unregister Ubuntu

    ⚠️ 此操作会删除 C 盘上的 ext4.vhdx，释放 C 盘空间。请确保上一步导出成功！

    第3步：导入到 D 盘

    # 创建目标目录

    mkdir D:\WSL\Ubuntu -Force

    # 导入到 D 盘

    wsl --import Ubuntu D:\WSL\Ubuntu D:\WSL\ubuntu-backup.tar --version 2

    导入完成后，检查 vhdx 位置：

    # 确认 vhdx 在 D 盘

    dir D:\WSL\Ubuntu\ext4.vhdx





⚠️ 迁移后必须恢复默认用户

导入后 WSL 默认以 root 登录，需要恢复普通用户：




XML/HTML代码


    方法一：命令行设置

    Ubuntu config --default-user 你的用户名

    方法二：修改 wsl.conf

    # 进入 WSL

    wsl -d Ubuntu

    # 编辑配置

    sudo nano /etc/wsl.conf

    # 添加以下内容

    [user]

    default=你的用户名

    方法三：注册表（以上都不生效时）

    1. 打开 regedit

    2. 定位到 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss

    3. 找到对应发行版的 DefaultUid，改为 1000（即第一个普通用户的 UID）

    迁移完成后清理

    # 删除备份文件（释放空间）

    del D:\WSL\ubuntu-backup.tar

    # 验证一切正常

    wsl -l -v




附加技能：vhdx 瘦身，回收已删除文件的空间

即使迁移到 D 盘，vhdx 仍会&quot;只增不减&quot;。定期瘦身可以回收空间：



XML/HTML代码


    方法一：diskpart（最通用）

    # 关闭 WSL

    wsl --shutdown

    # 打开 diskpart

    diskpart

    # 在 diskpart 中执行（路径替换为你的 vhdx 实际路径）

    select vdisk file=&quot;D:\WSL\Ubuntu\ext4.vhdx&quot;

    attach vdisk readonly

    compact vdisk

    detach vdisk

    exit






瘦身效果：从 30GB 压缩到 12GB 很常见，取决于你在 WSL 中删除了多少文件。


XML/HTML代码


    方法二：WSL 内置命令（新版 WSL 支持）

    wsl --shutdown

    wsl --manage Ubuntu --compact

    方法三：Hyper-V 管理器（可视化）

    1. Win+S 搜索 &quot;Hyper-V 管理器&quot; 

    2. 右侧操作面板 &rarr; &quot;编辑磁盘&quot;

    3. 选择 vhdx 文件 &rarr; 选择&quot;压缩&quot;




完整速查卡

新安装到 D 盘（.wsl 文件方式）


XML/HTML代码


    # 1. 下载 .wsl 文件

    curl.exe -L -o D:\WSL\ubuntu-26.04.wsl https://releases.ubuntu.com/26.04/ubuntu-26.04-wsl-amd64.wsl

    # 2. 安装到 D 盘

    wsl --install --from-file D:\WSL\ubuntu-26.04.wsl --location D:\WSL\Ubuntu-26.04

    # 3. 设为默认

    wsl --set-default Ubuntu-26.04




C 盘迁移到 D 盘


XML/HTML代码


    # 1. 导出

    wsl --shutdown

    wsl --export Ubuntu D:\WSL\ubuntu-backup.tar

    # 2. 注销（释放C盘空间）

    wsl --unregister Ubuntu

    # 3. 导入到 D 盘

    wsl --import Ubuntu D:\WSL\Ubuntu D:\WSL\ubuntu-backup.tar --version 2

    # 4. 恢复默认用户

    Ubuntu config --default-user 你的用户名




vhdx 瘦身


XML/HTML代码


    wsl --shutdown

    diskpart

    # select vdisk file=&quot;D:\WSL\Ubuntu\ext4.vhdx&quot; 

    # attach vdisk readonly

    # compact vdisk

    # detach vdisk

    # exit




常见问题

Q：迁移后 Docker 还能用吗？

能用。Docker Desktop 的 WSL 集成是独立的发行版（docker-desktop 和 docker-desktop-data），如果你也用了 Docker，建议把这两个也迁到 D 盘：


XML/HTML代码


    wsl --export docker-desktop-data D:\WSL\docker-desktop-data-backup.tar

    wsl --unregister docker-desktop-data

    wsl --import docker-desktop-data D:\WSL\docker-desktop-data D:\WSL\docker-desktop-data-backup.tar --version 2




Q：迁移后 Windows Terminal 的配置还在吗？

在。Terminal 的配置存储在 Windows 的 settings.json 中，不受 WSL 迁移影响。如果图标或名称变了，检查 Terminal 配置中的 guid 是否对应。

Q：.wsl 文件和 .appx 有什么区别？

 


XML/HTML代码


    格式     安装方式                     指定目录               适用场景

    .wsl    wsl --install --from-file    ✅ 支持 --location    推荐，直接装到任意盘

    .appx   双击安装或 Store              ❌ 只能装 C 盘         旧方式，需后续迁移

    在线安装 wsl --install -d Ubuntu      ✅ 支持 --location    需联网，版本可能滞后




 

参考：https://mp.weixin.qq.com/s/k3RvV49RgTGNc-2IOGRc3w




</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
