如何在 Windows 10 上安装 WSL 2

翻译自 Joey Sneddon 2020年10月30日的文章《How to Install WSL 2 on Windows 10》 [1]

如果您想在最新的 Windows 版本中尝试经过改进的 Windows 子系统 Linux 2 (即 WSL 2) [2],要怎么做呢?我们在本文中介绍了安装它所需要做的所有事情。

WSL 2 是微软早在 2017 年推出的 WSL 的原始版本的重大升级。WSL 2 不仅仅是版本的升级。它更快、更通用,并且使用真正的 Linux 内核。未来的 Linux 内核更新甚至会以 Windows 10 软件更新的形式发布——想想看,这有点疯狂!

微软创建 WSL 2 的目的是为了提高性能。最好的方法是什么?添加完整的系统调用兼容性,即以真正的 Linux 内核为核心。

“添加 WSL 2 为新架构,为 WSL 团队提供了一个更好的平台来提供一些特性,使 WSL 成为在 Windows 中运行 Linux 环境的一种令人惊叹的方式。” 微软表示。

微软还计划让用户在 Windows 10 上运行桌面 Linux 应用程序,并使用 GPU 加强的任务,因此这种疯狂尚没有减弱的迹象。它还使得用单条命令安装 WSL 成为可能。

目前,除非您使用的是最新的内部版本,否则 WSL 2 的设置工作需要一点点的努力——但是,为了在 Windows 中调用和指挥一个完整的 Linux 系统,难道不值得吗?

在 Windows 10 上 安装 WSL 2

必要条件

要在 Windows 10 上安装 WSL 2,您需要以下东西:

  • Windows 10 2020年5月(2004) 版, Windows 10 2019年5月(1903) 版,或者 Windows 10 2019年11月(1909) 版

  • 一台支持 Hyper-V 虚拟化的计算机

Windows 10 2020年5月更新已于 2020年5月发布(显然),但并非每个设备都能立即升级。要查看您的计算机上是否有 Windows 10 2020年5月更新,请转至“设置” > “更新和安全性” > “Windows 更新”。

在 8 月,微软将 WSL 2 向后移植到 Windows 10 的较早版本。版本号为 1903 或 1909 的任何人也可以安装WSL 2 —— 但必须首先安装 Windows 更新 KB4566116。

高级(和心急)的 Windows 用户可以强制安装 Windows 10 2020年5月更新,但请记住,如果按照这种方法操作,您可能会遭遇缺失驱动程序、GUI 故障或其他硬件故障。

从技术上来讲,您可以在 Windows 10 build 18917 或更高版本的“内部”版本上安装 WSL 2。我不太熟悉“内部”版本系统是如何工作的,所以请注意,本文的其余部分都基于在稳定版的 Windows 上使用该功能。

为了运行 WSL 2,您的计算机还需要支持 Hyper-V 虚拟化。您可以检查您的计算机确认对 Hyper-V 的支持 [3]

如果您不能同时满足这两个必要条件,则无法安装或启用 WSL 2——但可以使用 WSL 1。

在 Windows 10 上安装 WSL 2 的过程如下:

  1. 启用 WSL 2

  2. 启用“虚拟机平台”

  3. 设置 WSL 2 为默认值

  4. 安装 Linux 发行版

我将使用 PowerShell 应用程序依次介绍每个步骤,您需要以管理员身份运行此应用程序。您可以在 Windows “开始” 菜单中找到 PowerShell。

注意:也可以使用 GUI 安装 WSL 1,但使用命令行安装的速度要快得多,而且由于 WSL 是 CLI 工具,这也比较讲得通!

第 1 步,启用 WSL

不管您想要使用哪个版本的 WSL,都首先需要启用它。为此,请以管理员身份打开 PowerShell 工具并运行以下命令。小心不要在命令中输入错误或遗漏任何字符:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

如果只想使用 WSL 1,您可以跳到第 4 步。

第 2 步,启用“虚拟机平台”

WSL 2 需要启用 Windows 10 的 “虚拟机平台” 特性。它独立于 Hyper-V,并提供了一些在 Linux 的 Windows 子系统新版本中可用的更有趣的平台集成。

要在 Windows 10(2004)上启用虚拟机平台,请以管理员身份打开 PowerShell 并运行:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

要在 Windows 10(1903,1909)上启用虚拟机平台,请以管理员身份打开 PowerShell 并运行:

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart

为了确保所有相关部件都整齐到位,您应该在此时重启系统,否则可能会发现事情没按预期进行。

第 3 步,设置 WSL 2 为默认值

以管理员身份打开 PowerShell,然后运行以下命令以将 WSL 2 设置为 WSL 的默认版本:

wsl --set-default-version 2

如果需要,您可以(随时)将发行版配置为以 WSL 1 模式运行。

第 4 步,安装一个 Linux 发行版

有了 WSL 和必要的虚拟化技术,接下来您要做的就是从 Microsoft Store 中选择并安装 Linux 发行版。

有几种不同的发行版可供选择,包括 OpenSUSE、Pengwin、Fedora Remix 和 Alpine Linux。但是我个人推荐(自然地)Ubuntu 20.04 LTS(尽管也有 18.04 LTS 和 16.04 LTS 可用)。

要在 Windows 10 上安装 Ubuntu,请打开 Microsoft Store 应用,搜索 “Ubuntu 20.04”,然后单击“获取”按钮:

Ubuntu 20.04 LTS on the Microsoft Store [4]

当您在 Microsoft Store 中时,我强烈建议您也安装开源的 Windows Terminal 应用程序。该工具旨在为您提供最佳的 WSL 体验:

Windows Terminal on the Microsoft Store [5]

第 5 步,使用 WSL 2

当您安装 Ubuntu(或其他 Linux 发行版)时,快捷方式已添加到 Windows “开始”菜单中。使用它可以“打开” Ubuntu(或您选择的任何发行版)。第一次运行发行版时,速度似乎有点慢。这是预料之中的;发行版必须解压缩其所有内容——只是不要中断这个过程。

还将提示您设置用于发行版的用户名和密码。尝试挑选一些您不会忘记的字符。

将 WSL 1 上的 Ubuntu 转换到 WSL 2

如果您使用 WSL 1,则可以将现有的 WSL 1 安装升级到 WSL 2。要将现有的 WSL 1 发行版转换到 WSL 2,请在 PowerShell 中运行以下命令,例如:

wsl.exe --set-version Ubuntu 2

使用时,您应将命令中的 “Ubuntu” 替换为您在 WSL 1 上安装运行的对应发行版的名称。

译者补充

可以在 PowerShell 中运行下面命令显示所有发行版的详细信息:

wsl --list --verbose

命令 wsl --set-version 可更改指定分发版的版本,其用法为:

wsl --set-version <分发版名称> <版本号>

例如:

wsl --set-version Ubuntu-20.04 2

相关链接:

  1. https://www.omgubuntu.co.uk/how-to-install-wsl2-on-windows-10 How to Install WSL 2 on Windows 10 ↩︎

  2. https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-index WSL 2 ↩︎

  3. https://www.zdnet.com/article/windows-10-tip-find-out-if-your-pc-can-run-hyper-v/ Find out if your PC can run Hyper-V ↩︎

  4. https://www.microsoft.com/store/productId/9N6SVWS3RX71 Ubuntu 20.04 LTS on the Microsoft Store ↩︎

  5. https://www.microsoft.com/store/productId/9N0DX20HK701 Windows Terminal on the Microsoft Store ↩︎

作者 :Joey Sneddon 

译者 :技术译民 
出品 :技术译站(https://ITTranslator.cn/)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306320.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

lnmp无法远程连接mysql_MySQL(一):设置root 可以远程连接MySQL

在mysql在远程主机或虚拟机上时&#xff0c;远程连接mysql数据库一般都使用GUI工具&#xff0c;比如Mac下的Sequel Pro&#xff1b;win和linux下的Sqlyog&#xff1b; 还有大名鼎鼎的Navicat。有人也许会说命令行多好&#xff0c;对着黑黑的屏幕噼里啪啦的一顿敲&#xff0c;屏…

云付认证已通过可以支付吗_海科融通丨刷新支付日常问题【附交易操作步奏】...

01常见问题汇总QPIN秘钥检验出错A&#xff1a;认证时不要频繁点击&#xff0c;点完后等一等系统反应&#xff0c;可联系客服处理。Q报错99&#xff0c;该小商户已入网A&#xff1a;提供商户编号给服务经理处理。Q终端屏幕无法签字A&#xff1a;待机界面&#xff0c;输入#0#&…

邀请函|WorkShop报名通道开启,来就送礼!

作为互联网行业的年度盛会今年除延续以往的开幕与论坛技术分享外还增设了Work Shop 体验课程&#xff01;参加此次工作坊不仅能近距离和大佬进行互动体验项目开发的快感还能领取大会纪念卫衣、书籍等惊喜好礼是不是很期待&#xff1f;&#xff08;数量有限先到场先得&#xff0…

对象数组参数_【JavaScript 教程】标准库—Array 对象

作者 | 阮一峰1、构造函数Array是 JavaScript 的原生对象&#xff0c;同时也是一个构造函数&#xff0c;可以用它生成新的数组。var arr new Array(2);arr.length // 2arr // [ empty x 2 ]上面代码中&#xff0c;Array构造函数的参数2&#xff0c;表示生成一个两个成员的数组…

机器学习之无监督学习——聚类

机器学习之无监督学习——聚类无监督学习一、基于划分的聚类方法1、基于划分的方法 简介A、概念B、分组C、分组与样本 对应关系D、硬聚类 与 软聚类二、基于层次的聚类方法1、基于层次的聚类方法 概念 :2、基于层次的聚类方法 :A、聚合层次聚类 ( 叶子节点到根节点 )聚合层次聚…

2020 . NET大会日程公布!行程亮点全曝光

|倒计时5天文末有福利答应我看到最后|2020年12月19日由.NET众多社区联合组织主办的2020年中国.NET开发者大会将于苏州盛大开幕时间&#xff1a;2020/12/19-12/20主题&#xff1a;开源、共享、创新地点&#xff1a;苏州人工智能产业园▽本次大会以“开源、共享、创新”为主题&am…

橡皮擦_日本推出改邪归正橡皮擦,看得我头顶一凉

▲▲▲点击查看▲▲▲日本&#xff0c;可以说是文具控的天堂。各种不按套路出牌&#xff0c;又十分合理有趣的文具&#xff0c;真是太多太多。就比如这块「改邪归正橡皮擦」&#xff1a;这么看&#xff0c;你可能看不出到底怎么个改邪归正法&#xff0c;但其实它的创作灵感来自…

三菱四节传送带控制梯形图_一文讲透FX5U PLC程序控制指令及步进梯形图编程

三菱PLC在80年代进入中国市场&#xff0c;已有30多年历史。由于三菱PLC编程易学&#xff0c;功能强大&#xff0c;深受中国用户喜爱。随着时间推移&#xff0c;市场上已经淘汰掉二代产品&#xff0c;关系图如下&#xff1a;说明90年代老型号2000年代老型号低端小型机FX0SFX1S中…

在 ASP.NET Core 中使用多种方式给 Action 传参

ASP.NET Core 是一个跨平台&#xff0c;开源的&#xff0c;轻量级&#xff0c;高性能 并且 高度模块化的web框架。在 ASP.NET Core MVC 中有很多种方式可以给 Action 方法传递参数&#xff0c;比如说&#xff1a;url方式&#xff0c;querystring方式&#xff0c;request header…

WinUI 3 Preview 3 发布了,再一次试试它的性能

1. WinUI 3在微软 Build 2020 开发者大会上&#xff0c;WinUI 团队宣布可公开预览的 WinUI 3 Preview 1&#xff0c;它让开发人员可以在 Win32 中使用 WinUI。最终 XAML 的新功能不再和 Windows SDK 绑定&#xff0c;所有新的 XAML 功能都将作为 WinUI 的一部分发布。作为 OS 的…

m苹果放n篮子_egg appple千万别翻译为“鸡蛋苹果”,老外听到会懵圈的

egg很熟悉&#xff0c;apple也很熟悉&#xff0c;可是egg apple就让人一脸懵了&#xff0c;鸡蛋苹果是啥玩意&#xff1f;难道中国人有番茄鸡蛋&#xff0c;而歪果仁喜欢鸡蛋炒苹果&#xff1f;1&#xff1a;egg apple 是什么意思&#xff1f;其实英国人眼中的茄子是 egg apple…

基于.NET Core的简单,跨平台,模块化的电子商务系统-SimplCommerce

SimplCommerce是基于.NET Core的简单&#xff0c;跨平台&#xff0c;模块化的电子商务系统官网&#xff1a;www.simplcommerce.com开源地址&#xff1a;https://github.com/simplcommerce/SimplCommerce高层架构在线演示&#xff08;Azure网站&#xff09;店面&#xff1a;http…

grade项目导入新external libraries_【易推荐】德意志银行学院中国项目启动

展翅高飞 开阔眼界探索新的机遇总会令人振奋不已。德意志银行集团(以下简称德意志银行或德银)举办了“德意志银行学院”项目(DB Academy&#xff0c;以下简称“德银学院”)。如果同学们有投身金融服务行业的志向&#xff0c;欢迎加入德银学院在中国的项目。“德银学院”项目为…

程序员过关斩将--请不要误会redis 6.0 的多线程

“你对redis的单线程是不是有点误会&#xff1f;“你对redis 6.0的多线程是不是也有点误会&#xff1f;“redis多线程一定可以提高性能吗&#xff1f;redis官方刚刚发布的6.0版本已经掀起了业界一阵热波&#xff0c;在这个版本中新加了很多新特性&#xff0c;如果你打开redis的…

python 防止转义_python字符串前加r、f、u、l 的区别

f-strings 是指以f或F 开头的字符串&#xff0c;其中以 {}包含的表达式会进行值替换。&#xff08;目前支持python3.6版本&#xff09;下面看下f-strings的使用方法基本使用&#xff08;作用&#xff1a;替换值&#xff09;在字符串前加r可防止字符串转义作用&#xff1a;没有转…

动手实现深度学习pytroch版

深度学习介绍&#xff1a; 数据预处理

c++ eos智能合约开发_[EOS智能合约]第二节:用EOS开发一个To-do List小应用

EOS Asia本教程原文作者为EOS Asia&#xff0c;亚洲最具技术实力和最国际化的EOS超级节点竞选者。EOS Asia 同时也是EOS Gems和Traffic Exchange Token这两个项目背后的开发者。本文由 DappReview 获得 EOS Asia 授权进行翻译并发表。本篇是EOS智能合约系列第二弹&#xff0c;该…

acwing2058. 笨拙的手指(进制转换)

题目含义: 给出一个二进制数,三进制数(这俩数有且一位是错误的) 请输出他们对应的十进制数 原题链接 视频讲解 问题难点: 其他进制转化为十进制算法 大数据的读入 string 按位异或运算(常用的ACSII码值)

使用Github部署Azure应用服务

上次我们介绍了如果使用Azure应用服务(不用虚机不用Docker使用Azure应用服务部署ASP.NET Core程序)。我们通过Visual studio新建一个项目后手动编译发布代码。然后通过FTP上传我们的发布文件。整个过程跟我们手动发布项目到IIS上其实没啥差别。这么操作有点繁琐&#xff0c;显然…

7搭建zabbix_监控03分布式监控Zabbix

监控03-分布式监控Zabbix一、Zabbix概述Zabbix是一个基于Web界面的分布式系统监控与网络设备监控系统&#xff0c;能够监控各种网络参数&#xff0c;并提供灵活的通知机制&#xff0c;以使管理员能快速定位故障并解决。由于zabbix server端与zabbix agent组成&#xff0c;可通过…