wsl备份还原

网友投稿 1011 2022-05-29

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 在不使用默认 Linux shell 的情况下执行指定的命令。 -- 按原样传递剩余的命令行。 选项: --distribution, -d 运行指定的分发。 --user, -u 以指定用户身份运行。 用于管理 Windows Subsystem for Linux 的参数: --export 将分发导出到 tar 文件。 文件名可为 - 以便标准输出。 --import 将指定的 tar 文件作为新分发导入。 文件名可为 - 以便标准输入。 --list, -l [选项] 列出分发。 选项: --all 列出所有分发,包括当前 正在安装或卸载的分发。 --running 仅列出当前正在运行的分发。 -setdefault, -s 将分发设置为默认值。 --terminate, -t 终止分发。 --unregister 注销分发。 --upgrade 将分发升级为 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

wsl备份与还原

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 还有一些其他命令,需要阅读官方文档。

Ubuntu Windows

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【IoT】 产品设计:结构设计之PCB设计(三)
下一篇:libvlc视频播放器: 播放rtsp/rtmp视频流
相关文章