关键词:Linux


WSL 简介

开发人员可以在 Windows 计算机上同时访问 Windows 和 Linux 的强大功能。 通过适用于 Linux 的 Windows 子系统 (WSL),开发人员可以安装 Linux 发行版,并直接在 Windows 上使用 Linux 应用程序、实用程序和 Bash 命令行工具,不用进行任何修改,也无需承担传统虚拟机或双启动设置的费用。

WSL 目前已发布两代产品:WSL 1 和 WSL 2。

  • WSL 1 实现了 Linux 兼容层,将 Linux 系统调用转换为 Windows NT 系统调用;
  • WSL 2 则利用 Windows 的 Hyper-V 功能,通过虚拟化技术直接运行 Linux 虚拟机,更接近原生 Linux 操作系统体验。

WSL 的前提条件

  1. 检查 Windows 版本,WSL 需要 Windows 10 1903 (内部版本 18362)或更高版本(x64)。如果版本较低,请更新 Windows 10 系统。(设置 → 关于可以看)

Windows版本

  1. 检查 BIOS 是否开启了虚拟化。(打开任务管理器 → 性能 → CPU处)如果没有开启虚拟化,需要进入 BIOS 的 Configuration 处设置。

BIOS虚拟化

  1. 启用 WSL 功能。(搜索打开“启用或关闭 Windows 功能”,滑到最下面,启用“媒体功能”、“适用于 Linux 的 Windows 子系统”、“虚拟机平台”和“远程差分压缩 API 支持”)

启用WSL功能

安装 Linux

  1. 此处 下载自己需要的 Linux 发行版本。(此处下载 Ubuntu 20.04 为例)

  2. 下载得到的是一个 .AppxBundle 文件,将其重命名为 .zip 并解压。

解压后的文件

  1. 选择自己电脑架构的 .appx 文件,再将其命名为 .zip 并解压。

获取自己架构的包

  1. 运行 ubuntu.exe,过程中需要注册账号名和密码。

安装成功

运行并配置 WSL

  1. 直接使用 cmd 输入 wsl 可进入默认 WSL,输入 wsl --list 查看安装了的 Linux 版本。

使用WSL

  1. 更改 Ubuntu 的 apt 下载镜像:

使用以下命令确定 Ubuntu 的 codename:

1
lsb_release -a

查看codename

此处我为 focal。

1
sudo vim /etc/apt/sources.list

将里面的内容替换为:

1
2
3
4
5
6
7
8
9
10
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

如果你的 codename 为其他,需要将上面的内容中的 focal 修改为你自己的 codename。

更改下载源

要是不习惯 vim 操作,可以偷懒使用 Windows 的文件管理器,打开你的 Ubuntu 文件夹,找到里面的 rootfs\etc\apt\,然后用记事本打开 sources.list 进行修改。

修改后运行下面的命令进行更新:

1
sudo apt-get update
  1. 配置 DNS 网关:
1
sudo vim /etc/resolv.conf

添加阿里 DNS:

1
nameserver 127.0.0.53

此处好像记事本打不开…

保存后再运行一次下面命令进行更新:

1
sudo apt-get update
  1. 添加 gcc/g++ 环境
1
2
sudo apt update
sudo apt install build-essential

升级到 WSL 2

先使用下面的命令检查自己的 WSL:

1
wsl -l --v

如果版本不是 2 而想升级到 2 的步骤如下:

  1. 下载 Linux 内核更新包:下载地址

  2. 接着运行下载到的更新包。

在升级后,我再进入 WSL 时出现了“参考的对象类型不支持尝试的操作”的情况,解决方式参考:CSDN

注销 WSL

在 cmd 中输入 wsl --unregister <Linux> 进行删除 WSL。

另外如果忘记了 root 账户密码的话,可以修改:

  1. 打开 powershell 或 cmd,输入 wsl -u root 会直接进入 root 模式,在改模式下直接修改 root 密码;
  2. 输入 passwd root,终端会提示让你输入新的密码。

References