Win11 系统想要使用 Linux 开发环境,除了虚拟机(一般win上的虚拟软件无法调用到显卡,如果有这部分教程请大佬分享一下),属实用的比较舒服的就是 WSL 了,貌似 Win 版本的 docker 默认装在 C 盘,曾一度看着日益臃肿爆红的C盘陷入了沉思,把 wsl 装在其他盘,再把 docker 装到 wsl 里面嘎嘎好用。
但是 WSL 用了一段时间里面环境工程配置迁移麻烦如果重装系统后能直接备份还原就方便了
一、 备份
- 打开cmd: Win+R 打开输入框 输入 cmd 命令 打开命令提示符界面
- 确定版本,在cmd中,输入 wsl -l -v 来确定自己的wsl版本。因为有些人下载的是"Ubuntu-22.04"发行版,或者像我一样仅仅是"Ubuntu"发行版,在这里确认一下 name 以便正确导出备份文件。
wsl -l -v
这里我的版本 name 是 Ubuntu
- 关闭 wsl,一定要等待停止子系统之后再备份,同时确认要备份到的磁盘容量要够够的。
wsl --shutdown
- 导出备份
# 命令格式
wsl --export (发行版本名称-name) (保存路径以及文件名称.tar)
# 示例
wsl --export Ubuntu-22.04 D:\backup\Ubuntu-22.04\ubuntu20250711.tar
# 根据上文我的 wsl 列表,我的命令
wsl --export Ubuntu H:\wsl\ubuntu20250711.tar
等待几分钟就导出备份完成了。
二、 还原备份
将之前备份的 tar 文件作为新分发导入
# 命令格式
wsl --import (发行版本名称) (安装位置) (文件路径以及文件名称)
# 示例
wsl --import Ubuntu-22.04 D:\work\Ubuntu-22.04 D:\backup\Ubuntu-22.04\ubuntu20250711.tar
# 我的实际操作
wsl --import Ubuntu D:\wsl\ H:\wsl\ubuntu20250711.tar
# 假如是在原系统上迁移到其他磁盘,还需要删除原来的 wsl 子系统,删除后原路径下的vhdx文件会被移除
# 命令格式
wsl --unregister (发行版本名称)
# 示例
wsl --unregister Ubuntu
我这里将原来的 Ubuntu 成功迁移到了 D 盘。完整操作如下:
三、重装新系统安装 WSL 子系统
- 搜索栏输入控制面板,打开 控制面板 --> 程序 --> 程序和功能 --> 启用或关闭Windows功能。
勾选下面三个服务后点击确定,或者仅勾选下方框起来的两个服务也可以使用,点击确定。
- 或者以管理员的权限打开 PowerShell 输入以下命令:
Enable-WindowsOptionalFeature -Online -FeatureName $("Microsoft-Windows-Subsystem-Linux","VirtualMachinePlatform")
3. 继续使用管理员权限打开 PowerShell,重复步骤二里的还原 wsl 子系统后进入系统:
# 步骤二还原系统操作
wsl --import (发行版) (安装位置) (文件路径以及文件名称)
# 进入子系统
wsl --set-default-version 2