fannifu 发表于 2024-10-2 00:14:04

wsl Linux子系统的备份和还原

wsl Linux子系统的备份和还原
查看当前WSL版本用管理员运行PS(PowerShell)或CMD 命令行窗口
运行以下命令:
wsl -lPS C:\windows\system32> wsl -l​适用于 Linux 的 Windows 子系统分发:Ubuntu-22.04 (默认)wsl --versionPS C:\windows\system32> wsl --version​WSL 版本: 1.2.5.0内核版本: 5.15.90.1WSLg 版本: 1.0.51MSRDC 版本: 1.2.3770Direct3D 版本: 1.608.2-61064218DXCore 版本: 10.0.25131.1002-220531-1700.rs-onecore-base2-hypWindows 版本: 10.0.19045.2965查看运行中的子系统wsl -l --runningPS C:\windows\system32> wsl -l --running没有正在运行的分发。运行子系统wsl --distribution Ubuntu-22.04PS C:\windows\system32> wsl --distribution Ubuntu-22.04​Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64)​ * Documentation:https://help.ubuntu.com * Management:   https://landscape.canonical.com * Support:      https://ubuntu.com/advantage​ * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s   just raised the bar for easy, resilient and secure K8s cluster deployment.​   https://ubuntu.com/engage/secure-kubernetes-at-the-edge​This message is shown once a day. To disable it please create the/home/yang/.hushlogin file.停止子系统wsl --terminate Ubuntu-22.04 或 wsl --shutdown (停止当前子系统)PS C:\windows\system32> wsl --terminate Ubuntu-22.04​操作成功完成。备份子系统(需要先停止才能备份)wsl --export Ubuntu-22.04 D:\temp\Ubuntu-22.04.tarPS C:\windows\system32> wsl --export Ubuntu-22.04 D:\temp\Ubuntu-22.04.tar​正在导出,这可能需要几分钟时间。操作成功完成。卸载子系统wsl --unregister Ubuntu-22.04还原子系统wsl --import <Distro> <InstallLocation> <FileName> wsl --import Ubuntu-22.04 C:\WSL D:\temp\Ubuntu-22.04.tarNote: 当还原后的子系统变为root权限了改为默认用户权限
[*]查看当前用户 ls /home/
[*]尝试切换至用户权限 su 用户名
[*]切换至root权限 sudo su
[*]修改默认配置文件
[*]备份 cp /etc/wsl.conf /etc/wsl.conf.bk
[*]修改 vim /etc/wsl.conf 在最前面增加以下内容default=用户名
[*]重启wsl,在power shell中重启# 查看当前运行的wslwsl --list --running​# 停止特定的wslwsl -t Ubuntu-22.04# 启动特定版本wslwsl -d Ubuntu-22.04​#或者# 停止当前所有运行wslwsl --shutdowm# 启动默认wslwsl


wsl2迁移与恢复此处记录一下wsl2的迁移,以及当在系统C盘重置系统如何恢复旧版wsl2wsl2迁移这个是建立在已经安装wsl2的基础之上1.查看当前wsl下的Linux是否为关闭状态,当state为Stopped才能进行下一步。wsl -l -v若state为Running时,利用下面的命令结束wsl --shutdown
2.以.tar的形式导出到其他盘wsl --export Ubuntu-20.04 e:\Ubuntu-20.04.tar【注】此处导出的Ubuntu-20.04.tar文件可以作为备份文件,下次恢复时直接执行第4步的导入系统就行3.注销原有的linux系统 wsl --unregister Ubuntu-20.044.导入系统 wsl --import Ubuntu-20.04 E:\ubuntu2004 E:\Ubuntu-20.04.tar5.修改默认用户(因为不修改用户名,打开wsl ubuntu之后,默认以root身份登录。)ubuntu.exe config --default-user <--用户名-->用户名是原有wsl ubuntu的用户名称。重装系统恢复旧版wsl2此处是针对重置系统盘,同时旧版wsl2已经迁移到其他盘,如何恢复旧版wsl21.先重新安装一个新的wsl2,这个可以参照网上的wsl2安装教程,注意安装的Ubuntu的版本要和旧版的Ubuntu版本(即你想恢复的Ubuntu)一致
2.当安装wsl2成功后,此时wsl2默认安装在系统C盘,然后按照上面的wsl2迁移步骤把wsl2迁移到其他盘
3.迁移成功后,把新版的ext4.vhdx删除,拷贝成旧版的ext4.vhdx
4.启动wsl2,即可恢复旧版wsl2
【注】一定要把新版的ext4.vhdx删除,不能用旧版的去替换新版的ext4.vhdx(即如下图操作是不能恢复到旧版),否则替换成功后,当你启动wsl2会发现还是新版的Ubuntu。
Docker 是指容器化技术,用于支持创建和使用 Linux® 容器(LXC技术) 。
我们在 Window 上安装 Docker Desktop ,需要基于 Linux 环境。
在 Windows上,Docker Desktop 为我们提供通过了两个选项:WSL 与 Hyper-V 。一、WSL2 以及 hyper-v区别,二者安装docker desktop1.WSL2和hyper-v区别简单来说:
[*]wsl是一个运行在我下面的解释linux命令的程序,可以直接操作win的资源,又集成了如putty类的集合,不过人家是自己做的。WSL 使用 Hyper-V 架构来实现其虚拟化。。
[*]WSL 官方文档(Windows Subsystem for Linux,适用于windows的linux子系统)则是Windows 操作系统的一项特性,可让您直接在 Windows 上运行 Linux 文件系统以及 Linux 命令行工具和 GUI 应用程序,以及传统的 Windows 桌面和应用程序。
[*]运行WSL的开销比运行一个虚拟机低很多。WSL 2实际上用的是运行在Hyper-v上的linux内核,相较于虚拟机你不需要很多的性能开销。
[*]hyper-v是虚拟机程序,可以提供一个完整的计算机环模拟,与host需要通过网络访问 。Hyper-V 微软官方文档 :让你可以在 Windows 上以虚拟机形式运行多个操作系统,提供硬件虚拟化。
在大多数情况下:
如果你只使用 Docker : WSL
如果你需要Linux,其他的虚拟机或想访问Docker的高级选项卡来分配资源: Hyper-V。2.安装Docker Desktop参考:docker win10专业版下 WSL 2 或 hyper-v 安装Docker Desktop二、docker desktop限额配置,资源配置方法使用WSL2和hyper-v安装的docker,配置是有区别的。1.使用WSL2运行docker:这里会是选择状态:
它的配置方法如图所示,需要在用户目录(比如:C:\Users\lc)下建立一个新文件,叫做.wslconfig,
修改文件内容为:processors=4memory=8GBswap=8GBlocalhostForwarding=truememory: 表示最大使用 2GB 内存
swap: 表示不设置 swap
localhostForwarding: 默认值为 true。如果 WSL 2 VM 中绑定到通配符或 localhost 的端口应该可以通过 localhost:port 从主机连接。
processors: 使用的核心数量,默认和你的 Windows 系统使用的核心数一样重启wsl2:wsl --shutdown2.使用hyper-v运行docker:首先不勾选Use the WSL 2 based engine,然后进入Resources Advanced:
修改即可!


页: [1]
查看完整版本: wsl Linux子系统的备份和还原