WSL2 的 Ubuntu 系统从 G 盘移动到 F 盘
好的,将 WSL2 的 Ubuntu 系统从 G 盘移动到 F 盘是一个非常常见的需求,通常是因为 G 盘空间不足。最安全、最推荐的官方方法是使用 wsl --export
和 wsl --import
命令。
这个过程本质上是:导出 -> 注销 -> 导入。下面是详细的步骤,请严格按照顺序操作。
重要:开始之前
- 备份数据:虽然这个过程通常是安全的,但操作任何与磁盘和系统文件相关的内容时,都强烈建议您先将 Ubuntu 系统中最重要的文件(例如项目代码、个人文档等)备份到其他地方,以防万一。
- 关闭 Ubuntu:确保所有正在运行的 Ubuntu 终端或应用都已关闭。
操作步骤
你需要在 Windows 的 PowerShell 或 CMD(命令提示符) 中执行以下所有命令,建议使用 PowerShell。
第一步:查看并确认你的 Ubuntu 发行版名称
你需要知道 WSL 中安装的 Ubuntu 的确切名称。
wsl --list -v
你会看到类似下面的输出。请记下 NAME
列中你的 Ubuntu 的名字,最常见的名字就是 Ubuntu
。
NAME STATE VERSION
* Ubuntu Running 2
在后续命令中,请将 <发行版名称>
替换为你在这里看到的名字(例如 Ubuntu
)。
第二步:安全关闭 WSL
为了确保在导出过程中文件没有被占用,执行以下命令来完全关闭所有正在运行的 WSL 实例。
wsl --shutdown
第三步:导出 Ubuntu 系统
现在,我们将整个 Ubuntu 系统打包成一个 .tar
文件。这个文件会比较大,请确保目标盘有足够的空间。我们先将它导出到 G 盘的一个临时文件夹(例如 G:\backup
)。
- 在 G 盘创建一个用于存放备份文件的文件夹,例如
G:\wsl_backup
。 - 执行导出命令:
# 语法: wsl --export <发行版名称> <导出的tar文件路径>
# 示例:
wsl --export Ubuntu G:\wsl_backup\ubuntu.tar
这个过程会需要一些时间,具体取决于你的 Ubuntu 系统大小。完成后,你会在 G:\wsl_backup
目录下看到一个 ubuntu.tar
文件。
第四步:注销(删除)旧的 Ubuntu 系统
请确认上一步的 ubuntu.tar
文件已成功生成并且大小正常!
这一步会从 WSL 中移除原来的 Ubuntu 系统,并释放 G 盘上的空间。
# 语法: wsl --unregister <发行版名称>
# 示例:
wsl --unregister Ubuntu
执行后,你 G 盘的 Ubuntu 系统就被删除了。你可以再次运行 wsl --list
来确认它已经消失。
第五步:导入 Ubuntu 系统到 F 盘
现在,我们将之前导出的 .tar
文件导入到 F 盘的新位置。
- 在 F 盘为你新的 Ubuntu 系统创建一个家,例如
F:\wsl\ubuntu
。这个文件夹必须是空的,并且需要你手动创建。 - 执行导入命令:
# 语法: wsl --import <新发行版名称> <新安装位置> <tar文件路径>
# 示例:
wsl --import Ubuntu F:\wsl\ubuntu G:\wsl_backup\ubuntu.tar
<新发行版名称>
: 通常保持和原来一样,即Ubuntu
。<新安装位置>
: 你在 F 盘上创建的文件夹,即F:\wsl\ubuntu
。<tar文件路径>
: 上一步导出的备份文件,即G:\wsl_backup\ubuntu.tar
。
等待命令执行完成。完成后,你的 Ubuntu 系统就已经成功移动到 F 盘了。
第六步:设置默认登录用户
通过 import
方式恢复的 WSL 系统,默认登录用户会变成 root
。你需要将它改回你原来的用户名。
-
启动你新导入的 Ubuntu:
wsl -d Ubuntu
-
此时你应该看到提示符是
root@...
。 -
在 Windows PowerShell 中执行以下命令来设置默认用户。将
<你的用户名>
替换成你之前在 Ubuntu 中使用的用户名(例如dev
、john
等)。# 语法: <发行版名称> config --default-user <你的用户名> # 示例 (如果你的发行版是标准的 Ubuntu): ubuntu config --default-user 你的用户名
注意:这里的
ubuntu
是一个可执行程序名 (ubuntu.exe
)。如果你的发行版是Ubuntu-22.04
,那么命令可能就是ubuntu2204 config --default-user ...
第七步:清理
确认新的 Ubuntu 系统一切正常后(可以正常启动,文件都在),你就可以删除之前用于备份的 .tar
文件了。
# 在 PowerShell 中删除文件
del G:\wsl_backup\ubuntu.tar
你也可以删除 G:\wsl_backup
文件夹。
验证
- 关闭并重新打开一个终端。
- 输入
wsl
或ubuntu
。 - 它应该会以你的默认用户登录到新的 Ubuntu 系统中。
- 使用
ls -l ~
和pwd
等命令检查你的个人文件和当前目录是否都正常。
至此,你已成功将 WSL2 的 Ubuntu 系统从 G 盘迁移到了 F 盘。