
在使用 WSL 时你可能已经注意到,用户无法直接指定 Linux 发行版的默认安装位置。这主要是因为 WSL 的核心组件分散在 Windows 系统各处,尤其是 System32 文件夹中,这就让直接设置 Linux 安装位置变得比较困难。
不过也别担心!我们可以通过以下几种方法,轻松将 WSL 上的 Linux 发行版迁移到其他位置:
- 利用 Windows 11「设置」应用中的图形界面功能。
- 使用 WSL 的
--move
命令直接进行移动。 - 通过
--import
命令导出,并重新导入到新的存储位置。
下面,我们将详细介绍这 3 种方法,帮助你在 Windows 11 中轻松将 WSL 的 Linux 发行版移动到其他存储位置。无论你是为了节省系统盘空间,还是想把发行版移动到更大的硬盘上,这些方法都能帮你轻松搞定。
WSL 默认存储位置
- WSL 发行版默认安装在
%USERPROFILE%\AppData\Local\Packages\
目录下。 - 具体的
.vhdx
虚拟硬盘文件位于每个发行版文件夹的LocalState
目录中。 - 这个路径也是 Windows 存放 Microsoft Store 应用程序的标准位置。
相关阅读:AppData 是什么文件夹
方法 1:通过「设置」将 WSL 发行版移动到 D 盘
使用 Windows 11 的「设置」应用,可以轻松地将 WSL 中的 Linux 发行版移动到其他位置:
1右键点击「开始」菜单,选择「终端管理员」,以管理员权限打开 Windows 终端。
2在终端中执行以下命令,关闭所有正在运行的 Linux 发行版:
wsl --shutdown
3按Windows + I
快捷键打开「设置」,依次点击「应用」>「安装的应用」。
4找到你想移动的 Linux 发行版,点击右侧的「···」(三个点)按钮,然后选择「移动」。

5在弹出的窗口中选择目标驱动器,例如 D 盘,然后点击「移动」以确认操作。

完成上述步骤后,你所选的 WSL 发行版就会被转移到新的位置。根据发行版的大小,迁移过程可能需要几分钟时间。
方法 2:使用命令行快速迁移 WSL 发行版
如果你更喜欢使用命令行操作,可以通过--move
命令快速将 WSL 发行版迁移到其他盘:
1右键点击「开始」菜单,选择「终端管理员」,以管理员权限打开 Windows 终端。
2准备迁移工作:
- 首先,列出所有已安装的发行版:
wsl --list --all
- 然后,关闭所有正在运行的 WSL 实例:
wsl --shutdown
3执行迁移操作:
使用以下命令将指定发行版移到到新的位置:
wsl --manage <发行版名称> --move <目标路径>
例如,将 Ubuntu 迁移到 D 盘:
wsl --manage Ubuntu-24.04 --move D:\WSL\Ubuntu
4验证迁移是否成功:
使用以下命令启动迁移后的发行版,确认它能正常运行:
wsl -d <发行版名称>
例如:
wsl -d Ubuntu

方法 3:导出并导入 WSL 发行版
使用导出和导入命令来迁移 WSL 发行版,虽然步骤较多,但这种方式能让你更好地掌控整个迁移过程,同时也非常适合想要备份 WSL 环境的用户:
1右键点击「开始」菜单,选择「终端管理员」,以管理员权限打开 Windows 终端。
2准备导出工作:
- 首先,列出所有已安装的发行版:
wsl --list --all
- 然后,关闭所有正在运行的 WSL 实例:
wsl --shutdown
3导出指定的发行版:
wsl --export <发行版名称> <导出文件路径>
例如:
wsl --export Kali-linux D:\Backup\kali-export.tar
4在 WSL 中注销原有发行版:
wsl --unregister <发行版名称>
例如:
wsl --unregister Kali-linux

5重新导入发行版到新的位置:
wsl --import <发行版名称> <目标文件夹> <导出文件路径>
例如:
wsl --import Kali-linux D:\WSL\Kali-linux D:\Backup\kali-export.tar

通过以上 3 种方法,你可以轻松将 WSL 的 Linux 发行版迁移至其他磁盘。无论是通过「设置」应用、命令行操作,还是使用导出/导入功能来备份和迁移,都能够帮助你更好地管理和优化 WSL 环境。
最新评论
Microsoft.WindowsStore只有22507,没有22504,22507下载的时候找不到框架
经过测试,是可行的。感谢分享。
1.你贴的方法我没测试,如果有效,也只适用于个人或小规模使用,不具备普遍性。 2.根据微软最佳实践,是建立一个本地帐户专门用来远程连接。 3.在域环境中,不存在使用 Microsoft 帐户的情况。
关于rdp无法连接win11微软账户的问题 有很简单的解决办法 不需要退出微软账户或者重置之类的 在中文互联网搜索到的教程内容一般是使用MicrosoftAccount\邮箱作为用户名 密码填微软账户密码然后链接 但是这有个问题就是如果服务端(被控端)本身无缓存时将无法链接 改用英文在google搜索后发现了这样一篇微软社区问答 https://answers.microsoft.com/en-us/windows/forum/all/remote-desktop-not-working-with-microsoft-account/71f0c323-688a-4c97-8740-e80eb31ae11d 打开cmd终端后输入runas /u:MicrosoftAccount\你的邮箱 winver并回车 在出现类似输入MicrosoftAccount\xxx@xxx.com:的密码的文本时输入你的微软账户密码并回车(密码不会显示) 如果密码正确 稍后你将会看到一个Windows关于信息框 关掉它既可 这条命令的意思是 以xxx@xxx.com的身份运行winver程序 在完成后它即可以在本地生成关于该账户信息的缓存 接下来即可在客户端(控制端)输入对应地址链接 用户名为MicrosoftAccount\你的邮箱 密码为微软账户密码 如果一切顺利 在建立连接后 即可弹出证书验证框(如果以前从未链接此计算机) 确定即可 稍等即可进入远程桌面 对于伸手不看理论党的直白概括: 被控端: 打开运行框输入cmd回车 在cmd输入runas /u:MicrosoftAccount\你的邮箱 winver并回车 在出现新的文本时输入微软账户密码并回车(密码不会显示的) 关闭新弹出的窗口及cmd 控制端: 打开rdp客户端 输入计算机的地址回车 用户名:MicrosoftAccount\你的邮箱 密码:微软账户密码 回车后保存证书即可链接 您好,这是我转自B站的评论,不知道这个方法是否具有普遍性来辅助我们用同一个账号进行远程控制