wsl备份还原

网友投稿 1177 2025-04-01

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

wsl备份与还原

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

Ubuntu Windows

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

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

上一篇:如何把wps表格设置透明(wps文档里的表格背景怎么透明)
下一篇:wps怎样调整表格中文字间距(wps文档表格文字间距怎么调整)
相关文章