
如果您需要长期保存或迁移当前正在使用的WSL发行版,必须先将其完整文件系统导出为.tar归档文件。以下是实现该目标的多种可行方法:
一、使用wsl –export命令导出发行版
这是微软官方推荐的标准方式,适用于所有已安装且处于停止状态的WSL发行版,导出结果为包含完整根文件系统的压缩归档,可跨设备还原。
1、以管理员身份打开PowerShell或Windows Terminal。
2、执行命令查看当前已安装的发行版及其运行状态:wsl –list –verbose。
3、确认目标发行版名称(如Ubuntu-22.04)后,先温和终止其实例:wsl –terminate Ubuntu-22.04。
4、执行导出命令,指定目标路径与文件名:wsl –export Ubuntu-22.04 D:ackupubuntu-22.04.tar。
5、导出完成后,可通过Get-FileHash -Algorithm SHA256 D:ackupubuntu-22.04.tar验证文件完整性。
二、在导出前优化文件体积
直接导出可能包含大量缓存和日志,导致.tar文件过大;提前清理可显著减小备份体积,加快传输与导入速度。
1、进入WSL发行版终端,执行APT缓存清理:sudo apt clean && sudo apt autoremove -y。
2、清空系统日志(保留最近1天):sudo journalctl –vacuum-time=1d && sudo rm -rf /var/log/*.gz。
3、检查并卸载非必要挂载点:df -h,确保仅保留根文件系统挂载。
4、退出WSL并返回PowerShell,再执行wsl –shutdown确保无残留进程。
三、通过注册表预设默认导出路径
若需批量导出多个发行版并统一管理备份位置,可预先配置Windows注册表,避免每次手动输入长路径。
1、按下Win + R,输入regedit,回车打开注册表编辑器。
2、导航至路径:HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionLxss。
3、右键空白处 → 新建 → 字符串值,命名为DefaultExportPath。
4、双击该字符串,将数值数据设为自定义备份目录,例如:D:wsl-backup。
5、此后所有使用wsl –export命令时,若未显式指定路径,系统将自动写入该目录。
四、利用Docker容器临时导出定制化Linux环境
当您未从Microsoft Store安装标准发行版,而是基于Docker构建了特定用途的Linux环境(如CentOS、Alpine),也可将其导出为WSL兼容的.tar格式。
1、在WSL中启动目标容器并赋予唯一名称:docker run -t –name wsl_export centos:stream9 /bin/bash -c “ls /”。
2、将容器文件系统导出至Windows可访问路径:docker export wsl_export > /mnt/c/temp/centos-stream9.tar。
3、删除临时容器:docker rm wsl_export。
4、该.tar文件即可用于后续wsl –import命令导入为独立发行版。
五、离线环境下从AppX包提取并导出
对于通过Microsoft Store下载但尚未安装的发行版,其原始AppX包内含rootfs.vhdx或filesystem.tar,可手动解压获取可导入的归档文件。
1、定位AppX安装包缓存路径:%LOCALAPPDATA%PackagesTheDebianProject.DebianGNULinux_76v4gmasvnhz4LocalState(路径依发行版而异)。
2、若存在ext4.vhdx,需先用dism挂载并导出:dism /Mount-VHD /VHDPath:.\ext4.vhdx /MountDir:D:\mount。
3、挂载成功后,使用tar命令打包整个挂载目录:tar -cf D:\backup\debian-offline.tar -C D:\mount .。
4、执行dism /Unmount-VHD /MountDir:D:\mount /Commit安全卸载虚拟磁盘。

评论(0)