在Windows 11上启用WSL(实用于Linux的Windows子系统)

[复制链接]
发表于 2025-3-10 00:08:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×


  正文共:1234 字 15 图,预估阅读时间:2 分钟
  之前我们在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发行版,可以更改此默认发行版。)
  1. 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版本:
  1. wsl --list --verbosewsl -l -v
复制代码

  在这里,WSL的版本分为WSL 1和WSL 2,WSL 2为高级版本;而且,使用wsl --install命令安装新的Linux时,将默认安装为WSL 2。如果要在安装新的Linux发行版时将默认版本设置为WSL 1,请使用命令:
  1. wsl --set-default-version 1
复制代码
还可以使用命令将WSL 2降级到WSL 1,或将已经安装的Linux发行版从WSL 1升级到WSL 2。
  1. wsl --set-version 1wsl --set-version 2
复制代码
我们可以通过在PowerShell中输入命令来检查在线商店中可用的Linux发行版列表:
  1. wsl --list --onlinewsl -l -o
复制代码

  如果要更改默认安装的Linux发行版,可以使用-d标记进行更改,将<Distribution Name>替换为要安装的发行版的名称,这部分我们后面再介绍。
  1. wsl --install -d <Distribution Name>
复制代码
如果要设置在PowerShell中直接执行WSL命令,可以设置与wsl命令一起使用的默认Linux发行版,将<DistributionName>替换为要使用的Linux发行版的名称。
  1. wsl -s <DistributionName>wsl --setdefault <DistributionName>
复制代码
例如,从PowerShell输入wsl -s Ubuntu,将默认发行版设置为Ubuntu,再执行命令就能显示虚拟机中的回显了。
  

  我怎么感觉和vppctl这个命令一样呢?
  好像很简单,但是又好像很麻烦,我们后面再把里面的一些细节展开讲一下。
  

  

  

    Ubuntu 18.04快速配置WireGuard互联
      OpenWrt配置openVPN客户端
      OpenWrt部署配置openVPN服务器
      OpenWrt配置单臂路由模式
      将OpenWrt部署在x86服务器上
      DDNS配置详解
      拨号有公网Ip地点了,肯定要通过DDNS用起来啊!
      家庭宽带的公网IPv4地点到底封了多少端口?
      chatGPT又火了,用openAI写文章到底靠不靠谱?
      基于CentOS部署SmartDNS
      配置openVPN使用用户名密码认证
      带认证的openVPN连接/断开操作指南
      openVPN+SmartDNS=openDNS or smartVPN?
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表