设置WSL2

WSL

什么是WSL

WSL是Windows Subsystem for Linux的缩写。简单来说,它可以直接在Windows上跑一个Linux(可以自己挑发行版),这样就可以方便的在Windows机子上用Linux系统的软件与工具了。比如在Windows上,安装Docker要求WSL2或者Hyper-V。家庭版的Windows就没得选啦,只能WSL2……

其他选择与比较

在装了Windows的机子上使用Linux的其他选择主要有

  • VM(虚拟机)
  • 双/多系统

其中VM主流上是使用VMWare(付费)、VirtualBox(免费)、Hyper-V(Windows比较贵的版本限定…)和系统镜像在Windows里配置、启动虚拟系统。硬件足够好的时候可以同时启动多个。

多系统就是直接在硬盘上再多安装一个或多个系统,然后在启动时选择要启动哪个。可以最高效的让系统使用硬件资源,但一次只能开一个系统。安装前需要根据要安装的系统对部分硬盘进行格式化,而安装后也可能因为文件系统的不兼容,切换系统后存在一定的文件读写上的困难(如Windows无法直接读取Linux的各种ext格式,跨系统访问文件后也可能产生一些奇奇怪怪的文件占用和锁)。

WSL与VM

  • WSL可以启动得比VM更快,占用资源也比VM更少(WSL2其实是使用VM的,但有针对性优化)
  • WSL与Windows的连通性更好,文件系统可以说是的联通的。而VM和Windows是分隔开的,作为沙盒,有更好的安全性,更适合做各种作死的实验……
  • VM里可以提供更完整全面的Linux功能,比如图形、音频、硬件支持
  • VM里可以跑的不只是Linux,泛用性更好一些

WSL和WSL2的差异

Ref: https://docs.microsoft.com/zh-cn/windows/wsl/compare-versions

  • WSL1直接在Windows运行,WSL2是使用VM的。
  • WSL2相比WSL1,优化了文件系统性能,也提高了系统调用兼容性(即更高的硬件使用效率)。
  • 跨Windows和Linux系统的文件访问上,WSL1更快
  • WSL2不支持串行接口,所以要用到外接设备的话,只能WSL1、VM或多系统
  • WSL2的内存是随使用状况动态增减的,且目前版本暂不支持在使用中把用于缓存的内存释放回Windows

WSL2安装、启用

前提

Windows 10 的 Build 19041 以上,或Windows 11。

安装

wsl --install

很简单,直接在PowerShell里运行上述,会启用一个默认Ubuntu发行版的WSL2。

需要使用其他发行版的话:

wsl --list --online

可以查看可用的发行版,目前来说有Ubuntu(多个版本), Debian, Kali(专注于搞渗透测试用的那个), openSUSE, SLES。

配置

上一步安装完后,需要重新启动,才可以在开始菜单找到安装好的对应Linux发行版。第一次启用会要求创建一个管理员用户,要记好用户名和密码。

如果安装之前就安装过Windows Terminal,那从开始菜单启动、设置好密码后,从Windows Terminal就也可以找到这个选项了。