之前我们在Windows上想跑Linux的时候,一般都是使用VMWare或者VirtualBox创建虚拟机(如何在VirtualBox上装一台CentOS虚拟机)。
最近在搞SmartDNS的时候,发现Windows竟然也可以使用,配置方式是在WSL中进行配置。WSL(Windows Subsystem for Linux,适用于Linux的Windows子系统)可以实现开发人员在Windows计算机上同时访问Windows和Linux的强大功能。部署WSL之后,开发人员可以安装Linux发行版(例如Ubuntu、OpenSUSE、Kali、Debian、Arch Linux等),并直接在Windows上使用Linux应用程序、实用程序和Bash命令行工具,不用进行任何修改,也无需承担传统虚拟机或双启动设置的开销。
提醒一下,要使用WSL功能,必须要运行Windows 10系统的2004或更高版本(内部版本号不低于19041)或Windows 11才能安装。可以参考我之前的文章来定制Windows 10的安装镜像(如何定制最新版Windows安装镜像)或Windows 11的安装镜像(想安装Windows11却没有TPM?我定制了一个镜像给你试试?)。我们上次定制的Windows 11的内部版本号就是22632.1000,肯定满足需求,今天就用之前创建的虚拟机来测试一下。
满足条件之后,安装就很简单了。我们右击开始图标选择“终端(管理员)”。
然后,仅使用1条命令就可以安装运行WSL所需的一切内容。(默认安装Ubuntu发行版,可以更改此默认发行版。)
wsl –install
按照提示,安装完成之后,重启计算机,系统会继续完成安装。
不出意外的话,又出意外了,继续安装的对话框没有弹出来。是什么原因呢?看安装过程,安装的是“虚拟机平台”,那主机应该要支持虚拟化吧,难道是没有打开虚拟化?检查一下。
“硬件虚拟化”和“IOMMU”都是打开的,那就不是这个问题了。
查看开始菜单,发现有两个新的选项。
我们先点“适用于Linux的Windows子系统”这个选项。
有报错,提示没有已安装的分发。前面第一步不是提示已安装Ubuntu吗?我们再点击“Ubuntu”看一下。
可以了,点击“Ubuntu”之后才开始正式安装,可能是因为我重启的时候更新系统影响了操作的连续性。安装完成之后,按照提示,输入UNIX系统的用户名和密码。注意:系统中已经有root用户了,需要创建root之外的普通用户。
然后我们看一下系统相关信息。
主机是16核CPU、32 GB内存、120 GB系统盘的配置,WSL里面看到的资源是16核CPU、16 GB内存、1000 GB系统盘,主要是这个系统盘,也太夸张了!
再看一下系统资源使用量。
CPU还好,内存显示仅使用了347 MB。但是,从Windows的资源管理器里看,就不止这些了。
进程名为VmmemWSL的进程用了937 MB的内存,差了将近3倍;就算算上Buffer部分,还差了有一半。
还有网络部分,也有点夸张。
我也不知道我能运行多少台虚拟机,但是掩码用的20位的,能容纳4万多台主机。虽然说WSL可以支持安装、运行任意数量的不同Linux发行版(Microsoft Store发行版、自定义发行版或自定义发行版等),但是这个数量还是挺夸张的。
对应的网关在宿主机上,和VirtualBox一样,新建了一个虚拟网卡,从网卡上也能看出是WSL使用的。
因为默认安装的是Ubuntu系统,所以命令与常规系统几乎是完全一致的,可能有部分命令做了阉割,可以自己再装回来。
默认情况下,WSL安装的Linux发行版是Ubuntu,我们可以在PowerShell中输入命令来检查发行版的WSL版本:
wsl –list –verbose
wsl -l -v
在这里,WSL的版本分为WSL 1和WSL 2,WSL 2为高级版本;并且,使用wsl –install命令安装新的Linux时,将默认安装为WSL 2。如果要在安装新的Linux发行版时将默认版本设置为WSL 1,请使用命令:
wsl –set-default-version 1
还可以使用命令将WSL 2降级到WSL 1,或将已经安装的Linux发行版从WSL 1升级到WSL 2。
wsl –set-version 1
wsl –set-version 2
我们可以通过在PowerShell中输入命令来检查在线商店中可用的Linux发行版列表:
wsl –list –online
wsl -l -o
如果要更改默认安装的Linux发行版,可以使用-d标志进行更改,将替换为要安装的发行版的名称,这部分我们后面再介绍。
wsl –install -d
如果要设置在PowerShell中直接执行WSL命令,可以设置与wsl命令一起使用的默认Linux发行版,将替换为要使用的Linux发行版的名称。
wsl -s
wsl –setdefault
例如,从PowerShell输入wsl -s Ubuntu,将默认发行版设置为Ubuntu,再执行命令就能显示虚拟机中的回显了。
我怎么感觉和vppctl这个命令一样呢?
好像很简单,但是又好像很麻烦,我们后面再把里面的一些细节展开讲一下。
声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/425061.html