【工具】修改wsl安装包实际安装位置

前言

​ 如果你将Ubuntu的文件解压并安装到D盘,但WSL本身仍在C盘,则安装的Ubuntu子系统仍会使用WSL的默认存储路径。在 WSL (Windows Subsystem for Linux) 中,默认情况下安装的 Ubuntu 子系统及其文件存储位置是固定的,但你可以更改 WSL 的安装地址,尤其是对于 WSL 2。下面是如何更改安装地址的步骤。

一、查看安装路径:

这一步完全可以不用操作,因为一般情况下WSL 的 Linux系统文件存储在 Windows 文件系统的特定位置。默认情况下,WSL 2 使用一个虚拟硬盘(VHD)来存储文件,而 WSL 1 则将文件存储在 Windows 文件系统中。

1. wsl2的安装目录

WSL 2: WSL 2 使用一个虚拟硬盘(VHD),存储在 Windows 用户目录下,路径类似于:C:\Users\<YourUsername>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_<version>\LocalState\ext4.vhdx

2. wsl1的安装目录

WSL 1: WSL 1 的文件存储在 Windows 文件系统的目录下,路径类似于:C:\Users\<YourUsername>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_<version>\LocalState\rootfs

二、操作步骤

1.查看wsl版本

你可以运行以下命令来查看你使用的是 WSL 1 还是 WSL 2:(打开powershell以管理员身份运行)

1
wsl -l -v

列出所有已安装的 WSL 发行版及其版本信息:(VERSION显示2,说明是wsl2)

image-20250324142307183

2.更改wsl2的安装位置

为了将 WSL 2 的安装位置从 C 盘移动到 D 盘,你可以按照以下步骤操作:

1. 创建目标目录

打开 PowerShell,并运行(以管理员身份运行)以下命令来创建一个目录

1
base mkdir D:\WSL\backup

2. 确认路径权限

确保你有权限在 D 盘上创建和写入文件。通过尝试在目标路径创建一个测试文件来确认权限:

1
echo "test" > D:\WSL\backup\test.txt

3. 导出当前的 WSL 发行版

运行以下命令来导出当前的 Ubuntu 发行版:

1
wsl --export openEuler-23.09 E:\WSL\backup\openEuler.tar

这会将当前的 Ubuntu 发行版导出为一个 tar 文件。

4. 注销当前的 WSL 发行版

运行以下命令来注销当前的 Ubuntu 发行版:

1
wsl --unregister openEuler-23.09

image-20250324143025509

5. 导入 WSL 发行版到新的位置

运行以下命令将导出的 Ubuntu 发行版导入到 D 盘的新位置:

1
wsl --import openEuler-23.09 E:\WSL\openEuler E:\WSL\backup\openEuler.tar

这会将 Ubuntu 发行版重新安装到 D 盘的 D:\WSL\Ubuntu 目录中。

image-20250324143037588

6. 验证安装

导入完成后,运行以下命令来验证安装是否成功:

1
wsl -l -v

你应该会看到类似于之前的输出

7. 启动 WSL

最后,启动 WSL:

1
wsl -d openEuler-23.09

8. 修改默认启动的系统

1
2
3
# wsl --set-default <DistributionName>
# 将<DistributionName>替换为你想设置为默认的发行版的名称。例如,如果你想要将Ubuntu设置为默认,你可以使用:
wsl --set-default openEuler-23.09