wsl --export Ubuntu-22.04 F:\PCSoftware\Wsl2\Ubuntu-ollamaRun.tar

wsl --import Ubuntu-22.04 F:\PCSoftware\Wsl2\Ubuntu F:\PCSoftware\Wsl2\Ubuntu-22.04.tar

ubuntu2204.exe config --default-user qwen

📌 问题背景

使用 wsl --install 快速安装 Ubuntu 等发行版时,系统会默认将其安装在 C 盘用户目录下

C:\Users\<用户名>\AppData\Local\Packages\

随着开发环境、Docker 镜像等数据增长,极易占满系统盘。本文教你安全、彻底地将 WSL 迁移到其他磁盘(如 D:\WSL)。


🔍 一、查看当前 WSL 安装位置

方法 1:通过文件资源管理器

  1. 打开资源管理器

  2. 地址栏输入:

    %LOCALAPPDATA%\Packages
    
  3. 查找以 CanonicalGroupLimited. 开头的文件夹,例如:

    CanonicalGroupLimited.Ubuntu22.04onWindows_...
    

方法 2:通过命令行

wsl -l -v

此命令列出所有已安装的发行版及其状态,但不显示物理路径。结合方法 1 可快速定位。

💡 提示:WSL 内部文件可通过 \\wsl$\<发行版名> 访问(如 \\wsl$\Ubuntu-22.04)。


🚀 二、迁移 WSL 到指定路径(四步法)

⚠️ 重要前提:确保目标磁盘有足够空间(建议 ≥2 倍当前占用)

步骤 1:导出 WSL 发行版为 tar 文件

# 查看发行版名称
wsl -l -v

# 导出(以 Ubuntu-22.04 为例)
wsl --export Ubuntu-22.04 D:\WSL\Ubuntu.tar
  • 第一个参数:wsl -l -v 中显示的精确名称
  • 第二个参数:目标 .tar 文件路径(目录需提前创建)

步骤 2:注销当前发行版

wsl --unregister Ubuntu-22.04

✅ 此操作会删除原 C 盘中的所有数据,请确保已成功导出!

步骤 3:导入到新位置

wsl --import Ubuntu-22.04 D:\WSL\Ubuntu D:\WSL\Ubuntu.tar
  • 第一个参数:发行版名称(可与原名相同)
  • 第二个参数:新安装目录(用于存放虚拟硬盘)
  • 第三个参数:上一步导出的 .tar 文件

📁 导入后,该目录将包含 ext4.vhdx 虚拟磁盘文件。

步骤 4:设置默认用户(关键!)

WSL 导入后默认以 root 身份启动。若你希望恢复原来的普通用户登录:

情况 A:通过 Microsoft Store 安装的官方发行版(如 Ubuntu-22.04)

以管理员身份运行 CMD:

ubuntu2204.exe config --default-user your_username

替换 your_username 为你的 Linux 用户名(通过 whoami 查看)

情况 B:自定义导入的发行版(无 .exe 启动器)

不改也行,直接也可以启动。

在 WSL 中创建配置文件:

sudo nano /etc/wsl.conf

添加以下内容:

[user]
default = your_username

保存后执行:

wsl --shutdown

重启 WSL 即生效。


✅ 三、验证迁移结果

  1. 启动 WSL:

    wsl -d Ubuntu-22.04
    
  2. 检查当前用户是否正确

  3. 在 Windows 资源管理器访问 D:\WSL\Ubuntu,确认 ext4.vhdx 存在

  4. 运行 df -h 查看磁盘挂载情况


💡 补充建议

  • 路径命名规范:建议使用无空格、无中文的路径(如 D:\WSL\Ubuntu2204
  • 备份习惯:定期执行 wsl --export 可实现一键备份
  • Docker 用户:迁移后需在 Docker Desktop 中重新指定 WSL 后端路径

四:永久修复(防止 resolv.conf 被覆盖)

① 创建 WSL 配置文件:
sudo nano /etc/wsl.conf

加入以下内容:

[network]
generateResolvConf = false

保存并退出(Ctrl+O → 回车 → Ctrl+X)。

② 创建你自己的静态 resolv.conf:
sudo nano /etc/resolv.conf

写入:

nameserver 8.8.8.8
nameserver 8.8.4.4
③重启 WSL2(在 Windows PowerShell 中执行):
wsl --shutdown

然后重新打开 Ubuntu 终端。


步骤 4:验证修复结果
cat /etc/resolv.conf      # 应显示你设置的 DNS
ping -c 4 baidu.com       # 应该成功
nslookup baidu.com        # 检查 DNS 解析是否正常

🔍 补充说明

  • 为什么 WSL2 的 DNS 会出问题?
    Windows 的 DNS 设置(如企业网络、VPN、代理、或某些安全软件)可能干扰 WSL2 自动生成的 resolv.conf

  • 不要用 127.0.0.1localhost 作为 nameserver —— WSL2 是独立的网络命名空间。

  • 如果你在公司/校园网,可能需要使用内网 DNS(可从 Windows 中查看):

    ipconfig /all | findstr "DNS Servers"
    

    然后在 WSL 中使用这些 DNS 地址。


完成以上步骤后,你的 WSL2 Ubuntu 应该就能正常解析域名并联网了。如果仍有问题,请贴出以下命令的输出:

cat /etc/resolv.conf
ip route show
ping 8.8.8.8

增加源 ubuntu 22.04

sudo vim /etc/apt/sources.list

阿里云源的内容:

deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

清华源

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse

📚 参考资料


小技巧:迁移完成后,原 C 盘的 %LOCALAPPDATA%\Packages\... 文件夹可安全删除(若 wsl --unregister 已执行,则通常已自动清理)。


Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐