WSL迁移指南

将WSL2环境完整迁移到移动硬盘是一个非常实用的方案,特别是当你需要处理占用大量磁盘空间的工程(例如交叉编译庞大的Linux内核源码或构建Buildroot环境)时,这能极大缓解主机C盘的压力。

不过,在开始操作前,需要先澄清一个关于"完美随意切换"的现实情况 : WSL2 本质上是基于 Hyper-V 架构的轻量级虚拟机,它深度依赖 Windows 宿主机的底层服务和注册表。因此,你不能 像插拔普通 U盘那样,插上新电脑就能直接在 Windows Terminal 里看到它。目标电脑必须已经安装了 WSL2 功能,并且每次将移动硬盘插到一台全新的电脑上时,你需要执行一条简单的命令将硬盘上的虚拟磁盘"注册"到那台电脑的 WSL 系统中。

步骤一:固定默认登录用户(关键准备)

在迁移 WSL 环境时,系统通常会丢失默认用户的设置,导致你导入后默认以 root 身份登录。为了避免权限错乱,我们需要先在当前 Ubuntu 中写死默认用户。

  1. 打开当前的 Ubuntu,输入以下命令编辑配置文件:

    sudo nano /etc/wsl.conf

  2. 在文件中添加以下内容(将 your_username 替换为你平时的登录用户名):

bash 复制代码
[user]
default=your_username

3.保存并退出 (Ctrl+O, Enter, Ctrl+X)。

步骤二:导出并安装到移动硬盘

我们将通过标准导出/导入的方式,将当前的系统打包并重新释放到移动硬盘上。这种方法还有一个额外的好处:它能顺便对长期使用后膨胀的虚拟磁盘(VHDX)进行一次"瘦身"。

  1. 打开 Windows 的 PowerShell(建议使用管理员权限)。

  2. 彻底关闭 WSL 服务,确保数据一致性:

bash 复制代码
wsl --shutdown

3.查看当前的分发版名称 (通常是 UbuntuUbuntu-22.04):

bash 复制代码
wsl -l -v

4.将环境导出为 tar 文件 (假设你的移动硬盘是 E: 盘):

bash 复制代码
wsl --export Ubuntu E:\ubuntu-backup.tar

注意:如果你的开发环境中包含大量的代码和工具链,这个打包过程可能需要较长时间,且生成的 tar 文件会很大。

5.在移动硬盘上导入环境 : 在 E: 盘创建一个用于存放虚拟磁盘的目录(例如 E:\WSL\Ubuntu),然后执行导入命令,并给它起个新名字,比如 Ubuntu-Portable

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

6.验证运行

bash 复制代码
wsl -d Ubuntu-Portable

如果能正常进入系统且是你自己的用户名,说明迁移成功。此时你可以删掉 E:\ubuntu-backup.tar 释放空间。如果你想释放原电脑的 C 盘空间,可以使用 wsl --unregister Ubuntu 卸载原本的旧环境。

步骤三:在另一台电脑上使用(即插即用指南)

当你带着移动硬盘来到一台新电脑时,请按以下步骤操作:

前提条件: 新电脑必须已经启用了 WSL2 功能(可以通过在新电脑的 PowerShell 中运行 wsl --installwsl --update 来确认)。

  1. 插入移动硬盘,记下它分配的盘符(假设在新电脑上分配的是 F: 盘)。

  2. 打开 PowerShell,使用 --import-in-place 命令将移动硬盘上的 .vhdx 虚拟磁盘直接注册到这台新电脑上(不需要再次解压,直接挂载):

bash 复制代码
wsl --import-in-place Ubuntu-Portable F:\WSL\Ubuntu\ext4.vhdx

3.注册完成后,就可以像平常一样启动它了:

bash 复制代码
wsl -d Ubuntu-Portable

拔出硬盘前的注意事项: 在你要拔出移动硬盘离开这台电脑前,务必 在 PowerShell 中执行 wsl --shutdown 彻底关闭虚拟机的读写,否则直接热插拔极易导致 ext4.vhdx 文件损坏,造成开发数据丢失。 如果这台电脑不是你的常用电脑,你也可以在离开前执行 wsl --unregister Ubuntu-Portable 将其从该电脑的注册表中清理掉(这只会解除关联,不会删除你移动硬盘上的数据)。

相关推荐
_只道当时是寻常3 小时前
【Codex】Ubuntu 安装 Codex CLI 并解决 Clash 代理与账号认证问题
linux·ubuntu·chatgpt
嵌入式×边缘AI:打怪升级日志5 小时前
全志T113嵌入式Linux开发环境搭建(VMware + Ubuntu 18.04)详细步骤
linux·ubuntu
Frank_refuel6 小时前
终端环境下:Ubuntu 22.04.1 安装 MySQL 数据库
数据库·mysql·ubuntu
Yoyo25年秋招冲冲冲7 小时前
【亲测可用】ubuntu系统下安装Openclaw+配置飞书
linux·ubuntu·ai·飞书·openclaw
南城猿9 小时前
保姆级 Ubuntu 部署 禅道
linux·运维·ubuntu
zhangrelay10 小时前
三分钟云课实践速通--模拟电子技术-模电--SimulIDE
linux·笔记·学习·ubuntu·lubuntu
政宇 | STAR10 小时前
docker相关
ubuntu
wj30558537811 小时前
CC-Switch 在 WSL Ubuntu 中安装记录
linux·运维·ubuntu
Lw老王要学习11 小时前
Ubuntu(WSL2)完全可以安装到其他盘,避免占用 C 盘空间
ubuntu
Lw老王要学习15 小时前
本地部署OpenClaw + WSL Ubuntu + 千问云+QQ+微信+飞书
ubuntu·llm·agent·openclaw·龙虾