wsl安装的系统更换路径
📚问题
wsl安装的系统默认在C盘,越来越大,空间紧张😰。
在 Windows 11(包括家庭版)里,WSL 默认会把 Linux 发行版安装到系统盘(C 盘)用户目录下,路径类似:
C:\Users\<你的用户名>\AppData\Local\Packages\<发行版包名>\LocalState\
或者:
C:\Users\用户名\AppData\Local\wsl
如果你想自定义 WSL 系统的安装路径(比如放到 D 盘或 SSD 专用分区),需要用 导出 / 导入 的方式来实现,因为 wsl --install
本身没有直接指定路径的参数。
🔍 详细查看已安装系统
查看WSL2下安装了哪些Linux子系统很简单。你可以使用Windows终端(如PowerShell或命令提示符)来快速查看。下面是一些常用命令的总结,方便你根据需要选用:
命令 | 功能描述 | 备注 |
---|---|---|
wsl --list --verbose 或 wsl -l -v | 查看已安装的所有子系统,并显示详细信息(名称、状态、WSL版本) | 这是最常用、信息最全面的命令125 |
wsl --list 或 wsl -l | 查看已安装的所有子系统,只显示名称列表 | |
wsl --list --online 或 wsl -l -o | 查看可以从应用商店安装的可用Linux发行版列表 | 显示的是未安装的系统35 |
☯️ 命令详解及示例
在 PowerShell 或命令提示符 (CMD) 中输入以下命令:
bash
wsl --list --verbose
或者使用简写:
bash
wsl -l -v
输出示例:
bash
NAME STATE VERSION Ubuntu-22.04 Stopped 2 Debian Running 2 kali-linux Stopped 2
在这个结果里:
NAME 告诉你子系统叫什么。
STATE 告诉你这个系统现在是正在运行 (Running) 还是已经停止 (Stopped)。
VERSION 明确告诉你这个子系统用的是 WSL1 还是 WSL218。用户询问WSL2下的系统,但一个Windows环境下可以同时存在WSL1和WSL2的子系统,此命令可以区分它们。
🔧 其他常用WSL管理命令
掌握上面说的命令就能搞定查看了,这里再额外送你几个管理WSL时经常会用到的命令:
设置默认子系统:如果你安装了多个子系统,可以指定一个作为默认启动的。
bash
wsl --set-default <发行版名称>
例如
wsl --set-default Debian
之后,直接输入wsl
命令就会进入Debian57。关闭所有子系统:这会终止所有正在运行的WSL发行版和WSL2的轻量级实用工具虚拟机。
bash
wsl --shutdown
在需要重启WSL 2虚拟机环境时(例如更改了内存使用限制或.wslconfig文件后)可能需要使用此命令15。
终止特定子系统:如果你只想关闭某一个特定的子系统,可以使用。
bash
wsl --terminate <发行版名称>
例如
wsl --terminate Ubuntu-22.04
15。
💡 重要提醒:命令执行位置
请注意,上述所有命令(以 wsl
开头的)都需要在 PowerShell 或命令提示符 (CMD) 中运行,而不是在WSL的Linux发行版内部5。
📂 WSL2系统的物理存储位置
WSL2的每个Linux发行版通常都存储在一个名为ext4.vhdx
的虚拟硬盘文件中。这个.vhdx文件包含了该Linux发行版的整个文件系统(根文件系统)。
默认情况下,这些文件位于你Windows用户目录下的特定文件夹中:
基本路径结构:
C:\Users\<你的Windows用户名>\AppData\Local\Packages\<发行版包名>\LocalState\ext4.vhdx
请注意:<发行版包名>
会因你安装的具体发行版而异,通常包含发行版提供商的名称。
⚠️技巧:用命令查看安装系统的物理位置比较费劲,用everything搜一下
ext4.vhdx,更直接哈。
💼方法:导出 + 导入到指定路径
假设你要安装 Ubuntu-20.04 到 D:\WSL\Ubuntu20.04
:
1. 安装发行版(先用默认路径)
先用商店或命令安装:
powershell/DOS
wsl --install -d Ubuntu-20.04
首次启动完成用户配置后退出。
2. 导出当前发行版到一个压缩包
powershell/DOS
wsl --export Ubuntu-20.04 D:\WSL\ubuntu20.04.tar
Ubuntu-20.04
是发行版名称,可用wsl -l -v
查看。这个
.tar
文件就是整个 Linux 根文件系统。
3. 注销原发行版(删除默认路径版本)
powershell/DOS
wsl --unregister Ubuntu-20.04
⚠️ 这会删除原安装的 Linux 数据,所以导出一定要先完成。
4. 导入到新路径
powershell/DOS
wsl --import Ubuntu-20.04 D:\WSL\Ubuntu20.04 D:\WSL\ubuntu20.04.tar --version 2
第一个
Ubuntu-20.04
是新发行版的名字(可自定义)。D:\WSL\Ubuntu20.04
是你想存放的路径。--version 2
指定使用 WSL2。
5. 设置默认启动用户(可选)
导入后默认是 root 用户,可以改成你原来的用户名:
powershell/DOS
ubuntu2004 config --default-user <你的用户名>
ubuntu2004
是导入后生成的命令名,可在开始菜单或wsl -l
中查看。
👇额外建议
备份方便:这种导入路径的方式,整个 WSL 系统就是一个文件夹,直接复制即可备份。
性能考虑:建议放在 SSD 分区,尤其是做编译、AI 推理等 I/O 密集任务。
多发行版管理:可以用不同文件夹存放多个版本(如
D:\WSL\Ubuntu20.04
、D:\WSL\Debian
),互不影响。