3 min read

WSL2下的系统备份迁移与还原

WSL2下的系统备份迁移与还原

引言

当前在Windows11上搭建的WSL2下的炼丹炉已经满足我的日常需求,配置好了与我自己炼丹的所有可用的配置,并且已经平稳运行了一段时间,为了为未来提供一些保障,(毕竟如果哪天系统炸掉了,重新配置一遍十分繁琐,并且有项目需要做WSL的迁移),需要对这个系统进行备份操作,并进行迁移与还原。

步骤

下面我们所有的操作都在cmd或者PowerShell中运行,更推荐PowerShell吧,使用体验比cmd好太多了。

Step 1 -准备工作

启动PowerShell

查看是否有正在运行的WSL,备份操作需要关闭WSL中正在运行的系统

wsl --list --running

如果有正在运行的WSL系统

请运行下面的代码关闭WSL

wsl --shutdown

step 2 - 获取信息

有些朋友们会安装多个发行版,或者有些朋友们其实并不确定自己的WSL的名称是什么,因此需要获取我们计划备份的WSL系统名称

wsl -l -v

对于我来说,我需要备份的系统名称是Ubuntu-24.04

step 3 - 导出

使用wsl --export导出备份

wsl --export (系统名称) (保存路径以及 文件名称.tar)

例如我想将Ubuntu-24.04备份到F盘下的Ubuntu2404-V20251210.tar。我需要输入下面的命令

wsl --export Ubuntu-24.04 F:\Ubuntu2404-V20251210.tar

step 4 - 还原

使用wsl --import执行还原(导入)。

wsl --import (系统名称) (安装位置) (文件路径以及文件名称)

因为我的C盘足够大,导入到C盘也可以接受。

wsl --import Ubuntu-24.04 c:\wsl2\Ubuntu2404-V20251210 F:\Ubuntu2404-V20251210.tar

Note - 还原用户

这样还原后的系统登录后会发现,系统默认用户变成了root,并不是我们之前的用户。因此需要更改回我们之前的用户。(下面只是演示操作)

step1 - 获取可用账户

查看当前用户:在Ubuntu中执行 ls /home/

ls /home/

step2 - 切换用户

切换到用户权限 :su 用户名

su me94994

step3 - 设置默认用户

执行下面的命令

nano /etc/wsl.conf

并且将这个文件的内容设置为以下内容

[user]
default=用户名 

重启wsl后,备份与还原操作结束