【转载】如何将 WSL 迁移至 D 盘乃至其他盘符?

本文详细描述了如何将WindowsSubsystemforLinux(WSL)的Ubuntu分发从C盘迁移到D盘,包括导出、导入、设置默认分发及删除旧分发的过程,并强调迁移后性能提升的优点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0 Introduce

本文分享如何通过操作将默认安装在 C:\ 盘的 WSL 迁移至 D:\ 盘乃至其他盘符,详情请参考:

  1. Installing Ubuntu on /mnt/d with WSL
  2. 王然. install-latex-guide-zh-cn.pdf. 2024: 60.附录B.5 迁移 WSL 的安装位置

1 笔者环境

  1. Windows 11 专业版 23H2
  2. WSL(Windows Subsystem for Linux)
  3. Ubuntu 22.04.3 LTS

2 操作方法

2.1 第一步,建立新的位置

假设新位置在 D:\ 盘,在 cmd 中执行:

wsl -l

可以查到当前已经安装的 WSL 分发,例如:

适用于 Linux 的 Windows 子系统分发:
Ubuntu-22.04(默认)

bash 中执行:

lsb_release -a

查到实际 WSLUbuntu 的版本,例如:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy

然后在 cmd 中执行:

mkdir D:\WSL\instances\Ububtu2204
mkdir D:\WSL\images
cd D:\WSL\images

创建新的位置。这里起名 Ubuntu2204 是因为 Ubuntu 实际版本为 22.04,也可以起其他名字。

2.2 第二步,导出原 WSL 分发并导入新位置

cmd 中执行

wsl --export Ubuntu-22.04 ubuntu.tar
wsl --import Ubuntu2204 D:\WSL\instances\Ubuntu2204 ubuntu.tar --version2

第一行的 Ubuntu-22.04 指的是系统默认WSL 分发,这条命令将原本的分发导出为一个压缩包。
第二行的 Ubuntu2204未来指定WSL 分发,也就是将前面导出的压缩包导入新的 WSL 分发。

2.3 第三步,启动新的分发并且设置为默认

cmd 中执行:

wsl ~ -d Ubuntu2204

进入 Ubuntu2204 分发的 WSL 系统,在当前 bash 中执行:

sudo -e /etc/wsl.conf

输入以下内容:

[user]
default=<your_username>

<your_username> 是用户自定义的 WSL 的用户名。然后依次 Ctrl + XYEnter 保存退出,退出 bash,在 cmd 中执行:

wsl --terminate Ubuntu2204
wsl ~ -d Ubuntu2204

这时如果一切正常,就可以将 Ubuntu2204 设置为默认 WSL 分发,即在 cmd 中执行:

wsl --set-default Ubuntu2204

这时在 bash 中执行

echo $WSL_DISTRO_NAME

如果返回结果

Ubuntu2204

就表明一切正常。

2.4 第四步,删除旧分发

cmd 中执行:

wsl --unregister Ubuntu-22.04

就将旧分发 Ubuntu-22.04 删除了,这时在 cmd 中执行:

wsl -l

将看到:

适用于 Linux 的 Windows 子系统分发:
Ubuntu2204 (默认)

2.5 第五步,删除导出的压缩包

第二步中导出的压缩包 ubuntu.tar 默认保存在路径 C:\User\<user_name> 下,只需要手动删除即可。

3 迁移安装的好处

根据微软官方文档,将项目文件直接存储在 WSL 的驱动器上,性能速度会提高。

### 将 WSL2 的 Ubuntu 安装到 D 的方法 #### 修改默认存储路径 为了将 WSL2 的 Ubuntu 安装到 D 而非默认的 C ,可以通过修改注册表来更改 WSL 文件系统的默认保存位置。具体操作如下: 编辑注册表键 `Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss` 下的新字符串值 `DefaultBasePath` 并设置为目标驱动器上的文件夹路径,例如 `D:\WSL\[1]。 #### 使用命令行指定安装目录 另一种方法是在 PowerShell 或者 CMD 中执行特定命令来进行自定义位置安装。先确保启用了 WSL 特性并更新至最新版本之后,利用 wsl --import 命令配合 tar 打包好的 Linux 发行版根文件系统镜像一起使用可实现这一点 [^2]。 ```powershell wsl --install -d Ubuntu-20.04 ubuntu2004.exe install --root-directory D:\Ubuntu2004 ``` 上述脚本中的第二条指令演示了如何通过官方提供的 .exe 安装程序直接指明目标磁分区内的某个文件夹作为新的根目录所在处[^2]。 #### 迁移现有发行版数据 如果已经有一个位于 C 上的 WSL 实例想要迁移到其他盘符,则需按照以下流程处理:导出当前环境为压缩包形式;创建新位置用于存放解压后的文件结构体;最后重新导入这些资料完成迁移过程 [^3]。 ```bash wsl --export Ubuntu "C:\path\to\backup.tar" mkdir D:\Ubuntu2004 wsl --import UbuntuNew D:\Ubuntu2004 "C:\path\to\backup.tar" ``` 以上代码片段展示了怎样安全地转移整个虚拟机状态而不丢失任何配置或个人化设定。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

略无慕艳意

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值