转载地址:https://zhuanlan.zhihu.com/p/386590591

一、安装WSL2.0

WSL2.0相比WSL1.0具备完整的Linux内核、托管VM和完全的系统调用兼容性,所以我们这里使用WSL2.0

1.启用适用于 Linux 的 Windows 子系统:打开powershell并输入:

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

2. 检查WSL2的要求:win+R打开运行,然后输入winver检查windows版本

3. 此版本需要大于1903

4. 启用虚拟化:以管理员打开powershell输入下列命令

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

5. 下载X64的WSL2 Linux内核升级包并安装

6. 设置WSL默认版本

wsl --set-default-version 2

二、安装Ubuntu20.04LTS

1.打开Microsoft Store

2. 一般Windows都会将ubuntu加入到我的软件库中,如果没有可以自行搜索ubuntu然后安装,搜索到商店的有可能安装不了

3. 找到Ubuntu 20.04LTS点击安装即可,这里我已经安装好了直接点击启动就行

4. 打开后设置初始的用户名和密码即可,如果出现参考的对象类型不支持尝试的操作,请重置下网络net winsock reset

5. 设置root密码

sudo passwd

三、配置ssh

1.修改配置文件/etc/ssh/sshd_config,开启下列选项

PermitRootLogin yes #允许root认证登录
PasswordAuthentication yes #允许密码认证
RSAAuthentication yes #秘钥认证
PubkeyAuthentication yes

2. 由于自带的openssh-server没有生成密钥所以需要生成密钥文件,否则会出现sshd: no hostkeys available – exiting.

ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

3. 启动ssh

service ssh start

4. 开机启动ssh:win+R打开运行,输入shell::startup进入开机启动项,创建wsl_ssh_start.bat,其内容为

C:\Users\用户名\AppData\Local\Microsoft\WindowsApps\ubuntu2004.exe run "sudo service ssh restart"

5. 设置默认root登录:以管理员打开powshell,输入以下命令,

注意:用户名需要替换掉,版本页需要替换掉,如果wsl的路径不在这里可以去C:\Program Files\WindowsApps\XXX.UbuntuXXX\ubuntu版本.exe

C:\Users\用户名\AppData\Local\Microsoft\WindowsApps\ubuntu版本.exe config --default-user root

四、设置分发版本

检查分配给已安装Linux的WSL版本wsl -l -v

wsl --list --verbose

设置分发版本为某个wsl版本

wsl --set-version <distribution name> <versionNumber>

五、常见问题解决

5.1 安装失败并出现错误 0x80070003

适用于 Linux 的 Windows 子系统只能在系统驱动器(通常是 C: 驱动器)中运行。 请确保分发版存储在系统驱动器上:打开“设置”->“系统”–>“存储”-> “更多存储设置”: 更改新内容的保存位置”

5.2 WslRegisterDistribution 失败并出现错误 0x8007019e

未启用“适用于 Linux 的 Windows 子系统”可选组件:

打开“控制面板” -> “程序和功能” -> “打开或关闭 Windows 功能”-> 选中“适用于 Linux 的 Windows 子系统”,或使用本文开头所述的 PowerShell cmdlet。

5.3 安装失败,出现错误 0x80070003 或错误 0x80370102

请确保在计算机的 BIOS 内已启用虚拟化。 有关如何执行此操作的说明因计算机而异,并且很可能在 CPU 相关选项下。WSL2 要求 CPU 支持二级地址转换 (SLAT) 功能,后者已在 Intel Nehalem 处理器(Intel Core 第一代)和 AMD Opteron 中引入。 即使成功安装了虚拟机平台,旧版 CPU(例如 Intel Core 2 Duo)也无法运行 WSL2。

5.4 尝试升级时出错:Invalid command line option: wsl --set-version Ubuntu 2

请确保已启用适用于 Linux 的 Windows 子系统,并且你使用的是 Windows 内部版本 18362 或更高版本。 若要启用 WSL,请在 PowerShell 提示符下以具有管理员权限的身份运行此命令:Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux。

5.5 由于虚拟磁盘系统的某个限制,无法完成所请求的操作。虚拟硬盘文件必须是解压缩的且未加密的,并且不能是稀疏的

取消选中“压缩内容”(如果已选中“加密内容”,请一并取消选中),方法是打开 Linux 发行版的配置文件文件夹。 它应位于 Windows 文件系统上的一个文件夹中,类似于:USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited…
在此 Linux 发行版配置文件中,应存在一个 LocalState 文件夹。 右键单击此文件夹可显示选项的菜单。 选择“属性”>“高级”,然后确保未选择(未勾选)“压缩内容以节省磁盘空间”和“加密内容以保护数据”复选框。 如果系统询问是要将此应用到当前文件夹还是应用到所有子文件夹和文件,请选择“仅此文件夹”,因为你只是要清除压缩标志。 完成此操作后,wsl --set-version 命令应正常工作。

5.6 无法将词语“wsl”识别为 cmdlet、函数、脚本文件或可运行程序的名称

请确保已安装“适用于 Linux 的 Windows 子系统”可选组件。 此外,如果你使用的是 ARM64 设备,并从 PowerShell 运行此命令,则会收到此错误。 请改为从 PowerShell Core 或从命令提示符运行 wsl.exe。

5.7 错误:此更新仅适用于装有适用于 Linux 的 Windows 子系统的计算机

若要安装 Linux 内核更新 MSI 包,需要 WSL,应先启用它。 如果失败,将看到以下消息:This update only applies to machines with the Windows Subsystem for Linux。
出现此消息有三个可能的原因:
你仍使用旧版 Windows,不支持 WSL 2。 有关版本要求和要更新的链接,请参阅步骤 #2。
未启用 WSL。 需要返回到步骤 #1,并确保在计算机上启用了可选的 WSL 功能。
启用 WSL 后,需要重新启动才能使其生效,请重新启动计算机,然后重试。

5.8 错误:WSL 2 要求对其内核组件进行更新

如果 %SystemRoot%\system32\lxss\tools 文件夹中缺少 Linux 内核包,会遇到此错误。 若要解决此问题,请在安装说明的步骤 #4 中安装 Linux 内核更新 MSI 包。 可能会需要从添加或删除程序卸载 MSI,然后重新安装。

六、忘记WSL密码

如果忘记了 Linux 分发版的密码:

请打开 PowerShell,并使用以下命令进入默认 WSL 分发版的根目录:wsl -u root
如果需要在非默认分发版中更新忘记的密码,请使用命令:wsl -d Debian -u root,并将 Debian 替换为目标分发版的名称。
在 PowerShell 内的根级别打开 WSL 发行版后,可使用此命令更新密码:passwd ,其中 是 DISTRO 中帐户的用户名,而你忘记了它的密码。
系统将提示你输入新的 UNIX 密码,然后确认该密码。 在被告知密码已成功更新后,请使用以下命令在 PowerShell 内关闭 WSL:exit

史上最全的WSL安装教程相关推荐

  1. 老式计算机组装教程,史上最全的电脑安装教程 90后小妹妹手把手教你装电脑的图文教程...

    如今电脑已经成为家家户户都不可少的家用电器,而组装电脑是家庭最适合的,相比品牌电脑性价比要高.可能一些用户自己还不会装电脑,那么你可是比较落后了,现在很多年轻人都会自己装电脑,如果你还不会请看以下90 ...

  2. 史上最全的LTspice安装教程

    今天我们来安装一下电力电子仿真软件ILspice! Step 01:在bing搜索LTspice,找到如下网站,打开网站: Step 02:打开网站后,我们可以发现,如下的下载按钮,这里我下载Wind ...

  3. 史上最全的Simplis安装教程

    今天我们来安装一下具有强大开关电源仿真功能的Simplis 8.3 这款软件! Step 01:下载软件安装包 Simplis830 Step 02:下载后,得到如下的安装包 Step 03:解压此安 ...

  4. .Net魔法堂:史上最全的ActiveX开发教程——发布篇

    一. 前言 接着上一篇<.Net魔法堂:史上最全的ActiveX开发教程--开发篇>,本篇讲述如何发布我们的ActiveX. 二.废话少讲,马上看步骤! 1. 打包  C#开发的Activ ...

  5. .Net魔法堂:史上最全的ActiveX开发教程——部署篇

    一.前言 接<.Net魔法堂:史上最全的ActiveX开发教程--发布篇>,后我们继续来部署吧! 二. 挽起衣袖来部署   ActiveX的部署其实就是客户端安装ActiveX组件,对未签 ...

  6. 如果自己组装一个台式计算机有哪些,2015电脑组装教程:史上最全自己组装电脑教程...

    DIY电脑一直都是电脑爱好者非常喜欢的,电脑组装通常包括电脑硬件的选择,DIY硬件组装以及操作系统安装三个部分. 对于电脑爱好者来说,通过自己动手DIY组装电脑,不仅可以更为深刻的认识硬件,了解电脑主 ...

  7. 史上最全vscode配置使用教程

    史上最全vscode配置使用教程 正在上传-重新上传取消 灰蓝宇墨 ​ 上海闪店联信息科技有限公司 前端工程师 5,041 人赞同了该文章 工欲善其事,必先利其器.想要优雅且高效的编写代码,必须熟练使 ...

  8. 10_史上最全的Markdown使用教程(没有之一)(20190115)

    我用markdown写博客已经有半年之久了吧,但是还是会出现有些你想用的功能很难找,或者你尝试使用它不好使,为了帮助那些和我一样热衷于使用markdown的乘客,我决定自己造一架航班,让我们一起搭乘M ...

  9. 史上最全的FreeIPA搭建教程(二)

    如有疑问,请私信我!!!! 码字儿截图不容易啊 1.web后台使用教程 名字显示是反的,需要改成正确的 2.FreeIPA更新证书 默认的证书都是2年时间,到期不更新后果的就是所有账号都无法登录了 # ...

  10. 史上最全scrcpy投屏教程(用你的电脑控制手机)

    史上最全scrcpy投屏教程(用你的电脑控制手机) 一.下载投屏所需的资源 网址:scrcpy-win64-v1.17 提取码: yvid : 当然你也可以去github下载最新的或你所需要的资源,网 ...

最新文章

  1. Kaggle经典数据分析项目:泰坦尼克号生存预测!
  2. Win8上安装天翼宽带运行提示停止运行的问题
  3. 使用encodeURl()进行编解码
  4. DotNetNuke 中文乱码问题的解决
  5. detr 历史解析代码_视觉/ DETR变压器
  6. 知网显示html,使用知网HTML阅读的正确姿势
  7. matlab中计算sinad,FFT频谱测试法Matlab代码
  8. 统一门户建设项目最佳实践
  9. c语言中立方和乘法怎么表示什么区别,C语言程式设计中的平方立方怎么表示
  10. AI只调整填充色的透明度
  11. IT十大最尴尬瞬间 盖茨遭遇Win98死机列榜首
  12. 20210327-第一次java笔记
  13. flutter能开发游戏吗_Flutter Flame游戏开发上手(1)
  14. 数字信号处理中,系统函数零极点图的绘制
  15. 中心商务区建智慧城市 将现 “芝加哥夜景”
  16. 越狱苹果手机导出网易云音乐歌曲(以及缓存文件转换)
  17. 看过一个报道湾湾川生态靠着自动售卖机就能很赚一笔
  18. 旧作 一剪梅•秋夜
  19. 联想笔记本打开野兽模式
  20. tableau实战案例-分析120个国家和地区的自杀率情况

热门文章

  1. 计算机表格性格计算,MBTI职业性格测试自动计算得分并得出分析结果.docx
  2. 点云外包矩形框(六面体)
  3. 资产配置神器--美林时钟帮你获取超额收益
  4. 如何做投资--入门篇
  5. 【高等数学】曲率和曲率半径
  6. [论文笔记] Balboa: Bobbing and Weaving around Network Censorship
  7. CodeWars刷题笔记
  8. java Swing+mysql+JDBC实现教务系统(源码+数据库+UML图+数据库分析)
  9. Phalcon框架的入门使用,Phalcon框架学习,编写简单的视图输出及数据库写入!
  10. 黑马程序员JS学习第一天