WSL2迁移教程:如何备份和转移Ubuntu子系统到新位置
WSL2迁移教程:如何备份和转移Ubuntu子系统到新位置
文章目录
- WSL2迁移教程:如何备份和转移Ubuntu子系统到新位置
- 前言
- 环境准备
- 迁移步骤详解
- 1. 查看当前WSL发行版状态
- 2. 关闭所有WSL实例
- 3. 导出WSL发行版
- 4. 注销原有WSL发行版
- 5. 导入WSL发行版到新位置
- 6. 验证迁移结果
- 迁移后的注意事项
- 完整操作日志
- 总结
前言
Windows Subsystem for Linux (WSL) 是Windows系统上的一个非常强大的功能,它允许用户在Windows环境中运行Linux系统。
随着使用时间的增长,WSL占用的磁盘空间可能会越来越大(请参考我在这篇文章中介绍的清理WSL2 Linux Ubuntu空间的方法:清理WSL2 Linux Ubuntu空间,其中介绍了WSL2的虚拟磁盘的“只扩不缩”的特性,也就是即使你删除了WSL2中的文件,如果你不压缩这个虚拟磁盘,它占用Windows挂载盘的空间不会释放)。有时候我们需要将其迁移到其他磁盘分区(尽量避免占用系统盘的空间)以释放系统盘空间。
本文将详细介绍如何备份WSL2中的Ubuntu发行版并将其迁移到新位置。
环境准备
- Windows 10或Windows 11系统
- 已安装WSL2
- PowerShell管理员权限
- 足够的目标磁盘空间
迁移步骤详解
1. 查看当前WSL发行版状态
首先,我们需要查看当前系统中已安装的WSL发行版及其状态:
wsl -l -v
输出结果:
NAME STATE VERSION
* Ubuntu Running 2
这表明我们当前有一个名为Ubuntu的WSL发行版,它正在运行,版本为WSL2。
2. 关闭所有WSL实例
在进行备份前,我们需要关闭所有正在运行的WSL实例:
wsl --shutdown
3. 导出WSL发行版
接下来,将Ubuntu发行版导出为tar文件:
wsl --export Ubuntu F:\WSL2_Ubuntu\Ubuntu.tar
这个命令会将Ubuntu发行版导出到F盘的WSL2_Ubuntu
文件夹下,文件名为Ubuntu.tar。请根据你的电脑的实际情况修改导出路径,尽量避免WSL的虚拟磁盘ext4.vhdx
占用系统盘(Windows系统的系统盘盘符一般是C:
盘)的空间(安装WSL2的时候默认是安装在系统盘的)。
4. 注销原有WSL发行版
导出完成后,我们需要注销原有的Ubuntu发行版:
wsl --unregister Ubuntu
系统会显示"正在注销…",表示正在删除原有的Ubuntu发行版。
5. 导入WSL发行版到新位置
最后,将之前导出的tar文件导入到新位置:
wsl --import Ubuntu F:\WSL2_Ubuntu F:\WSL2_Ubuntu\Ubuntu.tar
这个命令会将Ubuntu发行版导入到F盘的WSL2_Ubuntu文件夹下。
6. 验证迁移结果
完成导入后,我们可以再次查看WSL发行版状态:
wsl -l -v
输出结果:
NAME STATE VERSION
* Ubuntu Running 2
可以看到,Ubuntu发行版已经成功迁移,并且状态为运行中。
迁移后的注意事项
-
默认用户设置:使用
--import
导入的WSL发行版默认用户为root,如果需要设置回原来的用户,可以通过修改/etc/wsl.conf
文件来实现。 -
文件权限:迁移后可能需要检查一些文件的权限,确保它们仍然正确。
-
备份文件处理:迁移成功后,可以选择保留或删除原来的备份文件(Ubuntu.tar),视个人需求而定。
完整操作日志
Windows PowerShell
版权所有(C) Microsoft Corporation。保留所有权利。
安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows
PS C:\windows\system32> wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
PS C:\windows\system32> wsl --shutdown
PS C:\windows\system32> wsl --export Ubuntu F:\WSL2_Ubuntu\Ubuntu.tar
PS C:\windows\system32> wsl --unregister Ubuntu
正在注销...
PS C:\windows\system32> wsl --import Ubuntu F:\WSL2_Ubuntu F:\WSL2_Ubuntu\Ubuntu.tar
PS C:\windows\system32> wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
PS C:\windows\system32>
总结
通过以上步骤,我们成功地将WSL2中的Ubuntu发行版从原来的位置迁移到了新的位置(F盘)。这种方法不仅可以用于释放系统盘空间,还可以作为WSL环境的备份方案,避免重新配置环境的麻烦。
对于经常使用WSL的开发者来说,掌握这种迁移方法非常有用,特别是在系统盘空间紧张或需要重装系统时。希望本教程对大家有所帮助!欢迎在评论区留言交流!