前言

来自2024年的提示: 如果条件允许, 有多余的设备, 实机安装反而是最省事的选择. WSL在部分情况(网络)下还是要折腾一下. 但是确实算是个不错的选择.

为什么选择WSL

由于我的部分开发环境必须使用Linux环境, 我必须在实际安装/虚拟机/WSL之中选择一个, 最后我选择了WSL. 主要原因如下:

  • 占用空间小
  • 消耗资源少
  • 可以与Windows共存
  • WSL GUI可应付绝大部分需要图形界面的情况
  • 常用软件都可以使用可以一边打游戏一边听音乐写代码

安装并启用WSL

事实上微软的官方教程已经很详细了:官方链接.

  1. 安装之前请确认你的Windows版本是否为Win10 2004以上的版本(包括Win11), 若版本不够, 请升级你的Windows或者选择其他的Linux环境.
  2. 打开你的控制面板, 依次选择程序-程序和功能-启用或关闭Windows功能, 将你看到的带有虚拟机, Linux, 子系统, Hyper等字样的选项勾选上后, 重启你的Windows.
  3. 打开你的cmd命令窗口, 输入命令.

提示

注意: 可能需要魔法.

$ wsl --install

待安装成功后, 直接使用wsl命令启动wsl.

提示

注意: WSL默认安装Ubuntu, 如果想要安装其他Linux发行版, 使用命令wsl -l -o查看可用的Linux发行版

$ wsl -l -o
以下是可安装的有效分发的列表. 
使用 'wsl.exe --install <Distro>' 安装. 

NAME                                   FRIENDLY NAME
Ubuntu                                 Ubuntu
Debian                                 Debian GNU/Linux
kali-linux                             Kali Linux Rolling
Ubuntu-18.04                           Ubuntu 18.04 LTS
Ubuntu-20.04                           Ubuntu 20.04 LTS
Ubuntu-22.04                           Ubuntu 22.04 LTS
Ubuntu-24.04                           Ubuntu 24.04 LTS
OracleLinux_7_9                        Oracle Linux 7.9
OracleLinux_8_7                        Oracle Linux 8.7
OracleLinux_9_1                        Oracle Linux 9.1
openSUSE-Leap-15.5                     openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5           SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed                    openSUSE Tumbleweed

之后使用命令进行安装

$ wsl --install -d [发行版名称]

安装完成后, 同样使用wsl命令启动你的wsl.

警告

常见错误: 出现了部分Linux打印的信息但是很快就退出回到了cmd, 大概率是内核版本问题, 如何更新请STFW

迁移WSL

WSL默认安装位置为C盘且无法更改, 很反人类对吧, 不想C盘爆炸只能想办法迁移到其他盘. 下面给出我自己的解决方案.

  1. 打开cmd输入, 查看你已安装的分发名称, 比如我想迁移的分发叫做ubuntu-old.
$ wsl -l
适用于 Linux 的 Windows 子系统分发:
ubuntu-old (默认)
Ubuntu-xxx
Debian-xxx
Arch-xxx
  1. 使用命令wsl --export [分发名称] [导出的备份名称]导出你已安装的分发(已安装的Linux), 例:
# 导出到当前目录下
wsl --export ubuntu-old ubuntu-old-backup.tar
# 或者带上路径
wsl --export ubuntu-old 'C:\Users\yourname\Desktop\ubuntu-old-backup.tar'

注释

注意: 导出文件名称最好带上文件路径, 比如C:\Users\yourname\Desktop\ubuntu-old-backup.tar, 否则你就得慢慢找你导出的文件在哪了.

  1. 找到你想要安装的路径, 例E\:WSL\, 使用命令wsl --import [分发命名] [安装位置] [导入的分发备份], 例:
$ wsl --import ubuntu-new 'E\:WSL\' 'C:\Users\yourname\Desktop\ubuntu-old-backup.tar'

注释

注意: 新的分发名称不能与已拥有的分发名称相同

  1. 删除旧的分发wsl --unregister [旧的分发名称]
$ wsl --unregister ubuntu-old

进入迁移后的分发

由于迁移会导致一些默认配置丢失, 迁移之后, 需要通过命令进入

$ wsl -d [分发名称] --cd ~ --user [用户名]

通过一些配置命令能省略后续的选项, 本文不做展开, 有需要的自行查看WSL 中的高级设置配置.