【WSL】激活安装、迁移盘、重装系统

Windows Subsystem for Linux,简称WSL,是微软提供的可以运行在windows系统的“虚拟机”,可以让我们摆脱笨重的VMWare

什么是WSL

官方文档:WSl是适用于 Linux 的 Windows 子系统,可让开发人员按原样运行 GNU/Linux 环境,包括大多数命令行工具、实用工具和应用程序

WSL占用较少的资源且提供基本同样的体验,可以对windows文件系统的文件直接读写(VMWare需要借助工具),剪贴板也是公用的。

启动与安装

激活WSL

打开Windows PowerShell(管理员)(可以Win+X找到),执行以下命令:

1
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

之后重启电脑,WSL就成功激活了

安装发行版操作系统

打开Microsoft Store,查找想要的操作系统,比如搜索Ubuntu,如下图:

选择自己想要的发行版操作系统安装,安装后打开,依提示设置用户名、密码即可开始使用

换源

官方软件源有时访问很慢,我们更换成清华源,依次执行以下命令(备份原本的安装源、编辑新的安装源):

1
2
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 
sudo vim /etc/apt/sources.list

在打开的vim编辑器里,将内容清空(可以在指令模式下输入:%d快速清空),以Ubuntu 20.04.4 LTS为例(其他版本在清华源官网可查,输入以下内容(wsl的好处已经体现了,剪贴板互通可以直接复制)

1
2
3
4
5
6
7
8
9
10
11
12
13
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

更新

依次输入以下代码进行软件更新:

1
2
sudo apt-get update
sudo apt-get upgrade

WSL迁移

从Microsoft Store安装的话直接安装在了C盘,但是随着使用可能C盘空间会爆炸,考虑迁移到其他盘。

关闭WSL并查看列表

在管理员Powershell,使用wsl --shutdown关闭,输入wsl --list --all -v查看当前所有的子系统,我只安装了一个Ubuntu20.04,效果如图:

导出备份

1
wsl --export 子系统 备份包的存放路径

子系统就是列表的NAME,选择你需要迁移的子系统;备份包的存放路径注意要写成…/xxx.tar的形式,xxx是你给备份包的命名,这里网上很多教程没有指明必须要有.tar后缀

注销子系统

1
wsl --unregister 子系统

此时如果再使用wsl --list --all -v就会发现已经没有了刚刚注销的子系统

导入备份

1
wsl --import 子系统 子系统新路径 备份包的存放路径

子系统新路径即为你打算迁移该子系统的位置

设置登录默认用户

此时能够打开子系统就成功迁移了,但是会发现用户登录默认是root,为了将其改为我们刚打开系统设置的用户,在powershell里输入:

1
子系统 config --default-user 你要的默认登录用户名

注意这里的子系统,在网上看到了写Ubuntu-20.04的,写ubuntu的,我这里都报错,必须要用Ubuntu2004作为子系统名

重装系统

网上大多数都说从开始菜单,找到发行版(比如Ubuntu20.04),右键应用设置重置就可以了,然而我试了没有用,搜到另一个方法。在管理员PowerShell里输入wsl -l查看发行版名称,利用wsl --unregister 子系统注销,此时如果再次输入wsl -l就可以发现刚刚注销的发行版已经没有了,但是装的应用并没有删除,直接打开应用就重装了。

如果之前切换过盘符,当初导出的压缩包并没有删除,注销后进行重新import就可以了。

文件互访

Windows的所有资源挂载在WSL Linux的/mnt/Windows完整路径下,Windows资源管理器输入\\wsl$可以直接访问Linux文件