wsl备份与还原
WSL备份与还原
首先系统必须是 Win10 1903 之后的版本才能用这些命令。之前的不可以,请使用 LxRunOffline 工具备份还原。
通过按 Win +R,输入 cmd 回车打开命令行窗口输入 wsl \-l
,可以看到系统里装了一个 WSL 是 Ubuntu-20.04。
> wsl -l
Windows Subsystem for Linux Distributions:
Ubuntu-20.04 (Default)
- 1
- 2
- 3
输入 wsl \--version
可以看到版本信息和命令行参数说明:
> wsl --version
用法: wsl.exe [参数] [选项...] [CommandLine]
用于运行 Linux 二进制文件的参数:
如果未提供任何命令行,wsl.exe 将启动默认 shell。
--exec, -e <CommandLine>
在不使用默认 Linux shell 的情况下执行指定的命令。
--
按原样传递剩余的命令行。
选项:
--distribution, -d <DistributionName>
运行指定的分发。
--user, -u <UserName>
以指定用户身份运行。
用于管理 Windows Subsystem for Linux 的参数:
--export <DistributionName> <FileName>
将分发导出到 tar 文件。
文件名可为 - 以便标准输出。
--import <DistributionName> <InstallLocation> <FileName>
将指定的 tar 文件作为新分发导入。
文件名可为 - 以便标准输入。
--list, -l [选项]
列出分发。
选项:
--all
列出所有分发,包括当前
正在安装或卸载的分发。
--running
仅列出当前正在运行的分发。
-setdefault, -s <DistributionName>
将分发设置为默认值。
--terminate, -t <DistributionName>
终止分发。
--unregister <DistributionName>
注销分发。
--upgrade <DistributionName>
将分发升级为 WslFs 文件系统格式。
--help
显示用法信息。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
wsl \-l
列出了系统中安装的子系统的名称,可以是一个或多个,本文中的子系统名称是 Ubuntu-20.04,接下来针对这个默认子系统进行操作:
运行子系统
> wsl --distribution Ubuntu-20.04
#或者
> wsl -d Ubuntu-20.04
- 1
- 2
- 3
查看运行中的子系统
> wsl -l --running
Windows Subsystem for Linux Distributions:
Ubuntu-20.04 (Default)
- 1
- 2
- 3
停止子系统
> wsl -t Ubuntu-20.04
# 或者
> wsl --terminate Ubuntu-20.04
- 1
- 2
- 3
备份子系统
一定要先停止子系统之后再备份,备份一定要保证硬盘空间充足,我的 WSL 装了点 C++ 开发环境的软件已经达到了 1.6GB,备份期间需要耐心等待,比如将系统被分到 D 盘:
> wsl --export Ubuntu-20.04 D:\Ubuntu-20.04.tar
- 1
备份成功后,子系统会被打包成命令中指定的tar文件。
删除子系统
删除子系统后,选中的 WSL 就会从 Windows 中干净的删除了。
> wsl --unregister Ubuntu-20.04
- 1
还原子系统
删除了没关系,刚才做了备份,可以直接使用命令还原:
> wsl --import Ubuntu-20.04 D:\WSL D:\Ubuntu-20.04.tar
- 1
这里注意指定还原的路径。成功后,子系统又回来了,可以用 wsl \-l
确认一下。
注意:还原后的子系统进入后,默认成了 root 用户,查了一下,解决方法如下:
-
如果在商店安装过 Ubuntu 直接找到如下目录:
- 1
C:\C:\Users\用户名\AppData\Local\Microsoft\WindowsApps\ubuntu版本.exe config --default-user root
- 1
执行指令修改为指定用户:
ubuntu.exe config --default-user crazyang #名称根据实际修改
- 1
- 如果电脑上之前没有安装过 WSL,是通过还原来的,可以下载 Windows Terminal 工具,然后进入设置中,指定启动的命令行 -u xxx即可,但是这种方式如果换成其他连接 WSL 的工具还是默认 root 用户。
- 如果还是想要通过
ubuntu.exe config --default-user xxx
这种方式设置默认用户,目前最可靠的方法是下载离线的 Ubuntu WSL 安装包,安装包中就有 ubuntu2004.exe,然后通过这个ubuntu2004.exe 执行config --default-user xxx
命令,就可以一直默认为设置的用户了,下载链接:https://docs.microsoft.com/en-us/windows/wsl/install-manual
配置 Windows Terminal
在安装好 WSL 后,最优先的就是下载 Windows Terminal 终端,这个终端的强大之处就不再赘述,但是对于使用 WSL 来说,还需要一些设置才可以更舒适的使用。
修改WSL默认打开的路径
打开 Windows Terminal 的设置页面,找到左下方的打开 JSON 文件并使用编辑器打开 setting.json,如果你安装的是 Ubuntu-20.04 ,那么就搜索 Ubuntu-20.04,然后定位到后,添加一行:"startingDirectory": "//wsl$/Ubuntu-20.04/home/crazyang"
,这样我们再进入 Ubuntu 时,就显示的是 ~
目录下了。
如下:
{
"guid": "{07b52e3e-de2c-5db4-bd2d-ba144ed6c273}",
"name": "Ubuntu-20.04",
"source": "Windows.Terminal.Wsl",
"startingDirectory": "//wsl$/Ubuntu-20.04/home/crazyang"
}
- 1
- 2
- 3
- 4
- 5
- 6
官方文档:https://docs.microsoft.com/en-us/windows/terminal/customize-settings/profile-settings
修改 Ctrl+C 和 Ctrl + V
在 Windows 下,Ctrl + C 默认是复制快捷键,Ctrl + V 默认是粘贴快捷键,但是如果装了 WSL 后,Linux 下 Ctrl + C 是向应用程序发送一个 SIGINT 中断信号,当用户按中断键(Ctrl+C)时,终端驱动程序产生此信号并发送至前台进程组中的每一个进程。这就和 Windows 默认的复制有些冲突,所以建议修改为 Ctrl + Shift + C 和 Ctrl + Shift + V,只需要在和上面相同的 setting.json 配置中:
{ "command": {"action": "copy", "singleLine": false }, "keys": "ctrl+shift+c" },
{ "command": "paste", "keys": "ctrl+shift+v" },
- 1
- 2
这样使用起来就更方便了。
除此之外,WSL 还有一些其他命令,需要阅读官方文档。
文章来源: blog.csdn.net,作者:irrationality,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_54227557/article/details/122812290
- 点赞
- 收藏
- 关注作者
评论(0)