Skip to content

wsl2 子系统迁移

查看当前计算机的wsl子系统

powershell
wsl -l
wsl -l

查看当前计算机正在运行的wsl子系统

powershell
wsl -l -v
wsl -l -v

终止正在运行的wsl

powershell
wsl --shutdown Ubuntu
wsl --shutdown Ubuntu

再次查看是否终止成功

powershell
wsl -l -v
wsl -l -v

在其他盘创建目录用来存放新WSL

我这里存在O盘

O:\WSL\Ubuntu

将需要迁移的Linux,进行导出

powershell
wsl --export Ubuntu O:\WSL\Ubuntu\Ubuntu.tar
wsl --export Ubuntu O:\WSL\Ubuntu\Ubuntu.tar

image-20231119223344755

注销原有wsl

powershell
wsl --unregister Ubuntu
wsl --unregister Ubuntu

image-20231119223409685

将备份文件恢复到指定目录中

powershell
wsl --import Ubuntu O:\WSL\Ubuntu O:\WSL\Ubuntu\Ubuntu.tar
wsl --import Ubuntu O:\WSL\Ubuntu O:\WSL\Ubuntu\Ubuntu.tar

image-20231119223500656

设置默认 Linux 发行版

查看wsl子系统

powershell
wsl -l
wsl -l

image-20231119223819767

此时在终端直接执行wsl进入的并不是Ubuntu,这里提供设置默认发行版命令

若要设置 WSL 命令将用于运行的默认 Linux 发行版,请将 <Distribution Name> 替换为你首选的 Linux 发行版的名称。

powershell
# wsl --set-default <Distribution Name>
wsl --set-default Ubuntu
# wsl --set-default <Distribution Name>
wsl --set-default Ubuntu

image-20231119223928077

恢复默认用户

这时候启动WSL,发现好像已经恢复正常了,但是用户变成了root,之前使用过的文件也看不见了。

image-20231119224005683

在CMD中,输入 Linux发行版名称 config --default-user 原本用户名,例如:

powershell
Ubuntu config --default-user xixi
Ubuntu config --default-user xixi

image-20231119224116420

WARNING

请注意,如果wsl -l得到的版本号类似这种Ubuntu-22.04

那么这里的发行版名称的版本号是纯数字,比如Ubuntu-22.04就是Ubuntu2204

这时候再次打开WSL,你会发现一切都恢复正常了。