之前我使用Linux的方式主要是在wsl 中。WSL 中的Linux系统默认放在了C盘，随着使用频率的增加，里面会充斥各种环境、代码、以及其他的内容，最终导致占用磁盘飙升。因为最近我发现我C盘已经飘红了，所以我需要将其中Linux系统从C盘移动到其他盘，目前我就D盘还有大量的空间所以这里我将它移动到了D盘。迁移在移动之前我们先要确保系统处于关闭状态。这里使用如下命令确认它们的状态wsl --list --verbose这条命令会输出当前系统中所有的Linux子系统的名称和对应的状态，我们需要保证对应的系统状态为 Stopped如果处于运行状态，我们可以使用wsl --terminate Arch其中最后的 Arch 就是上一步看到的系统名称停止之后，我们可以使用命令wsl --export Arch D:\WSL_Storage\Arch.tar后面两个参数分别是前面显示的系统名称，和需要备份保存的位置之后我们需要删除原先位于C盘的子系统，使用命令wsl --unregister Arch最后我们从之前备份的位置导入并生成一个新的子系统wsl --import Arch D:\WSL_Storage\Arch D:\WSL_Storage\Arch.tar这条第一个参数Arch代表的是新系统的名称。第二个参数表示系统内容存放的目录。第三个参数是从哪里导入系统数据。再次打开wsl的子系统我们会发现它采用的是root账户登录我们需要默认采用之前配置的普通用户。我们可以使用命令Arch.exe config --default-user archArch.exe 是之前子系统的名称，后面是设置该系统默认的登录用户，这里我仍然使用之前的用户名进入系统之后，我发现终端上之前配置的一些Unicode emoji 符号失效了显示乱码。这是因为我们相当于重新建立了一个子系统，在Windows Terminal 中为这个新系统配置的字体是默认的字体，我们需要在Windows Termianl中为这个新系统选择一个Unicode 字体。之后我们会看到一切恢复如初了
周末结束过来上班的时候发现公司电脑上安装的wsl2 中的arch和Ubuntu 都无法打开了，表现出来的现象是通过终端打开系统时长时间无法进入系统，等待大概半小时左右会出现提示：Wsl/0x80080005通过网络上查找，这种一般是系统坏了，或者是服务没启动，又或者是网络协议栈出现问题。对应的办法就是重置Linux系统(这种是最坏的情况，一般留到最后实在没办法了再尝试)、启动 LxxManager 服务，重置网络协议。通过尝试我发现我的属于网络协议栈问题，通过powershell 命令(需要管理员权限)netsh winsock reset # 重置网络套接字 netsh int ip reset # 重置 IP 协议然后重启电脑问题就解决啦!