wsl备份与还原

举报
irrational 发表于 2022/02/10 22:43:06 2022/02/10
【摘要】 WSL备份与还原 首先系统必须是 Win10 1903 之后的版本才能用这些命令。之前的不可以,请使用 LxRunOffline 工具备份还原。 通过按 Win +R,输入 cmd 回车打开命令行窗口输...

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 用户,查了一下,解决方法如下:

  1. 如果在商店安装过 Ubuntu 直接找到如下目录:
    
        
       
    • 1
C:\C:\Users\用户名\AppData\Local\Microsoft\WindowsApps\ubuntu版本.exe config --default-user root

  
 
  • 1

执行指令修改为指定用户:

ubuntu.exe config --default-user crazyang  #名称根据实际修改

  
 
  • 1
  1. 如果电脑上之前没有安装过 WSL,是通过还原来的,可以下载 Windows Terminal 工具,然后进入设置中,指定启动的命令行 -u xxx即可,但是这种方式如果换成其他连接 WSL 的工具还是默认 root 用户。
  2. 如果还是想要通过 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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。