Windows 10 Microsoft Store 安装 Ubuntu 的默认目录及迁移指南

Windows 10 Microsoft Store 安装 Ubuntu 的默认目录及迁移指南

1. 默认安装目录

通过 Microsoft Store 安装的 Ubuntu,文件存放在两个位置:

1.1 应用包文件(受保护的系统目录)

C:\Program Files\WindowsApps\CanonicalGroupLimited.Ubuntu...\

该目录有严格权限限制,一般无需也不建议直接操作。

1.2 Linux 系统数据(用户的文件、配置等)

C:\Users<你的用户名>\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu...\LocalState\

  • WSL 2 :该目录下存在 ext4.vhdx 虚拟磁盘文件,整个 Ubuntu 系统都在里面。
  • WSL 1 :该目录下存在 rootfs 文件夹,直接为 Linux 根目录结构。

快速查看方法 :在文件资源管理器地址栏输入 %LOCALAPPDATA%\Packages\ 并回车,找到以 CanonicalGroupLimited.Ubuntu 开头的文件夹,进入 LocalState 即可。


2. 将 Ubuntu 迁移到其他盘(推荐方法)

整个流程为:导出 → 注销 → 导入,安全且不会损坏系统。

2.1 准备工作

管理员身份 打开 PowerShell,执行以下命令查看发行版名称和版本:

powershell 复制代码
wsl -l -v
记下以下信息:

发行版名称(例如 Ubuntu、Ubuntu-20.04)

WSL 版本(1 或 2)

你的 Linux 用户名(终端中 用户名@主机名: 前面的部分)

然后彻底关闭所有 WSL 进程:

powershell 复制代码
wsl --shutdown

2.2 导出当前 Ubuntu 为 tar 文件

假设要迁移到 D:\WSL\Ubuntu,先创建目标文件夹,再将系统导出为临时压缩包:

powershell

mkdir D:\WSL\Ubuntu -Force

wsl --export Ubuntu D:\ubuntu-backup.tar

注意:Ubuntu 需替换为实际发行版名称,D:\ubuntu-backup.tar 为临时文件路径,可自定义。

2.3 注销原来的 Ubuntu(释放 C 盘空间)

powershell 复制代码
wsl --unregister Ubuntu

重要: 此操作会删除 C 盘下的原系统数据,务必确认上一步已导出成功。

2.4 导入到新盘并指定新位置

powershell 复制代码
wsl --import Ubuntu D:\WSL\Ubuntu D:\ubuntu-backup.tar --version 2

参数说明:

Ubuntu:发行版名称(可沿用原名或自定义)

D:\WSL\Ubuntu:新系统的存放目录(会自动生成 ext4.vhdx 等文件)

--version 2:如果原是 WSL 2 则加上;如果是 WSL 1,改为 --version 1 或省略(跟随全局默认)

若希望将全局默认版本设为 WSL 2,可执行:

powershell 复制代码
wsl --set-default-version 2

2.5 设置默认登录用户

刚导入的系统默认以 root 登录,需要改回普通用户。

以 root 身份进入系统:

powershell 复制代码
wsl -d Ubuntu -u root

在打开的 Linux Shell 中执行(假设你的用户名为 john):

bash 复制代码
echo -e "[user]\ndefault=john" >> /etc/wsl.conf
exit

重启 WSL 使配置生效:

powershell 复制代码
wsl --shutdown
wsl -d Ubuntu

此时就会自动以 john 用户登录。

2.6 清理临时备份文件

确认新系统运行正常后,删除导出的 tar 包:

powershell 复制代码
Remove-Item D:\ubuntu-backup.tar

⚠️ 替代方法警告: 直接移动 ext4.vhdx 并修改注册表的方式风险较高,可能导致系统不可用,推荐使用上述导出/导入方法。

3. 常见错误:导出时提示"拒绝访问"

执行 wsl --export Ubuntu E:\ubuntu 时,若出现:

text 复制代码
拒绝访问。
错误代码: Wsl/E_ACCESSDENIED

可按以下步骤排查解决:

3.1 未以管理员身份运行 PowerShell

wsl --export 需要管理员权限。请右键点击开始菜单,选择 Windows PowerShell (管理员) 或 终端 (管理员) 再运行。

3.2 导出路径未指定完整文件名

错误写法:wsl --export Ubuntu E:\ubuntu(此处 E:\ubuntu 被当作目录而非文件)

正确写法:

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

3.3 目标磁盘权限不足

在 PowerShell 中测试磁盘是否可写:

powershell 复制代码
New-Item -Path E:\test.txt -ItemType File

如果此命令也失败,说明该磁盘可能被 BitLocker 锁定、有公司策略限制或驱动器未正确挂载。可以尝试导出到用户目录:

powershell 复制代码
wsl --export Ubuntu $env:USERPROFILE\Desktop\ubuntu-backup.tar

3.4 重启 WSL 服务或系统

极少数情况下 WSL 服务卡死会导致权限错误,重启 Windows 后再试即可。