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

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 的驱动器上,性能速度会提高。

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要将WSL 2子系统迁移D盘,您可以按照以下步骤操作: 1. 首先,确保已经安装并启用了WSL 2。如果尚未完成此操作,请参考官方文档进行安装和配置。 2. 打开命令提示符或PowerShell,并输入以下命令以查看已安装的WSL子系统列表: ``` wsl --list ``` 3. 选择要迁移WSL子系统,并记录下其名称。 4. 输入以下命令以停止该WSL子系统: ``` wsl --terminate <子系统名称> ``` 5. 输入以下命令以将该WSL子系统导出为tar文件: ``` wsl --export <子系统名称> <导出路径\导出文件名.tar> ``` 例如,可以使用以下命令将子系统导出到D盘根目录下的wsl.tar文件中: ``` wsl --export <子系统名称> D:\wsl.tar ``` 6. 导出完成后,输入以下命令以删除该WSL子系统: ``` wsl --unregister <子系统名称> ``` 7. 输入以下命令以导入之前导出的tar文件,并创建一个新的子系统: ``` wsl --import <新子系统名称> <新子系统安装路径> <tar文件路径> ``` 例如,可以使用以下命令将之前导出的wsl.tar文件导入到D盘根目录下的wsl_new目录中,并命名为"new_wsl": ``` wsl --import new_wsl D:\wsl_new D:\wsl.tar ``` 8. 输入以下命令以启动新的WSL子系统: ``` wsl -d <新子系统名称> ``` 现在,您应该已成功将WSL 2子系统迁移D盘上的新路径。请确保替换命令中的`<子系统名称>`,`<导出路径\导出文件名.tar>`,`<新子系统名称>`,`<新子系统安装路径>`和`<tar文件路径>`为实际的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

略无慕艳意

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

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

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

打赏作者

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

抵扣说明:

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

余额充值