前言
来自2024年的提示: 如果条件允许, 有多余的设备, 实机安装反而是最省事的选择. WSL在部分情况(网络)下还是要折腾一下. 但是确实算是个不错的选择.
为什么选择WSL
由于我的部分开发环境必须使用Linux环境, 我必须在实际安装/虚拟机/WSL
之中选择一个, 最后我选择了WSL. 主要原因如下:
- 占用空间小
- 消耗资源少
- 可以与Windows共存
- WSL GUI可应付绝大部分需要图形界面的情况
- 常用软件都可以使用
可以一边打游戏一边听音乐写代码
安装并启用WSL
事实上微软的官方教程已经很详细了:官方链接.
- 安装之前请确认你的
Windows
版本是否为Win10 2004以上的版本(包括Win11)
, 若版本不够, 请升级你的Windows
或者选择其他的Linux环境
. - 打开你的控制面板, 依次选择
程序-程序和功能-启用或关闭Windows功能
, 将你看到的带有虚拟机
,Linux
,子系统
,Hyper
等字样的选项勾选上后, 重启你的Windows. - 打开你的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盘爆炸只能想办法迁移到其他盘. 下面给出我自己的解决方案.
- 打开cmd输入, 查看你已安装的分发名称, 比如我想迁移的分发叫做
ubuntu-old
.
$ wsl -l
适用于 Linux 的 Windows 子系统分发:
ubuntu-old (默认)
Ubuntu-xxx
Debian-xxx
Arch-xxx
- 使用命令
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
, 否则你就得慢慢找你导出的文件在哪了.
- 找到你想要安装的路径, 例
E\:WSL\
, 使用命令wsl --import [分发命名] [安装位置] [导入的分发备份]
, 例:
$ wsl --import ubuntu-new 'E\:WSL\' 'C:\Users\yourname\Desktop\ubuntu-old-backup.tar'
注释
注意: 新的分发名称不能与已拥有的分发名称相同
- 删除旧的分发
wsl --unregister [旧的分发名称]
$ wsl --unregister ubuntu-old
进入迁移后的分发
由于迁移会导致一些默认配置丢失, 迁移之后, 需要通过命令进入
$ wsl -d [分发名称] --cd ~ --user [用户名]
通过一些配置命令能省略后续的选项, 本文不做展开, 有需要的自行查看WSL 中的高级设置配置.