Win10安装Linux子系统

1. 正常情况

步骤1 - 启用 Windows Linux版本子系统(Windows Subsystem for Linux)

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

步骤2 - 确认系统是 Windows 10 是1903 或以上版本

微软官方原文(翻译后):

如果您正在运行 Windows 10 版本 1903 或 1909,请从 Windows 菜单中打开"设置",导航到"更新和安全",然后选择"检查更新"。您的生成号必须为 18362.1049+或 18363.1049°,次要版本号 # 超过 .1049。阅读更多: WSL 2 支持即将进入 Windows 10 版本 1903 和 1909。请参阅故障排除说明。

步骤3 - 启用虚拟机功能

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

步骤4 - 下载 Linux 内核更新包

步骤5 - 将 WSL 2 设置为默认版本

wsl --set-default-version 2

到此WSL安装完成>到此WSL安装完成

步骤6 - 安装 Linux 发行版

方式1: 打开微软商店,搜索喜欢的版本下载、安装。
方式2: 自行在 GitHub 搜索喜欢的Linux版本(带上WSL搜索),解压、安装
--- 这里我下载的是:CentOS 8

完成上述步骤后,如无意外即可正常运行子系统。然后就可以愉快的安装Docker Desktop啦!

2. 意外情况

  • 在打开 Linux 系统使用的时候报错:参考的对象类型不支持尝试的操作。(The attempted operation is not supported for the type of object referenced.)

    • 解决办法:
      • 临时解决****:管理员身份运行CMD或者PowerShell,执行:netsh winsock reset,并重启电脑
      • 根本解决:下载 NoLsp.exe 并以管理员身份运行CMD或者PowerShell,执行NoLsp.exe C:\windows\system32\wsl.exe
    • 按上述操作执行后,再次访问 Linux 子系统,即可使用
    • 具体原因及解决方法分析见文章末*参考2**

      *

3. 推荐使用 Windows Terminal

  • 安装:微软商店直接搜索安装即可。

  • 优点:

    • 方便开启PowerShell、CMD、Linux子系统
    • 不会被鼠标点击卡住UI
    • 界面漂亮、流畅

4. 补充 - 个人经验

如果失败,可以检查HyperV是否已经打开。检查方法:

    • 打开卸载程序那个功能(执行appwiz.cpl,CMD、PowerShell、菜单栏搜索、Win+R 都可以)
    • 打开“添加或删除Windows功能”。
    • 找到HyperV(如果没有,则需要在主板BIOS设置处打开虚拟化技术开关,自行百度)

参考文章

参考1:微软文档《Windows 10 安装Linux子系统操作指引》

参考2:知乎文章《关于使用WSL2出现“参考的对象类型不支持尝试的操作”的解决方法。》

Win10 安装WSL2与 Linux子系统的更多相关文章

  1. Win10 LTSC 2019 安装和卸载 linux 子系统

    一.开启 二.下载 https://docs.microsoft.com/zh-cn/windows/wsl/install-manual   手动下载适用于 Linux 的 Windows 子系统发 ...

  2. 设置Win10默认启动的Linux子系统版本,启动指定Linux发行版

    设置Win10默认启动的Linux子系统版本,启动指定Linux发行版   MS酋长一年前已经与大家分享了启用“适用于Linux的Windows子系统(WSL)”的方法,但当时所能安装的只有由Cano ...

  3. 使用WIn10自带的Linux子系统

    最近一直有安装虚拟机的想法,今天刚刚知道win10有自带的Linux子系统,就准备试一下: 首先要保证自己的电脑处于开发者选项: 然后就要在控制面板的程序和功能页面点击“启用或者关闭WIndows功能 ...

  4. 使用Windows的Linux子系统搭建嵌入式开发环境

      亲,都9102年了,还在用VMware跑嵌入式交叉编译链吗?   北京时间2019年6月13日,Windows 10发布预览版本18917.版本的主要功能是Linux子系统(windows sub ...

  5. win10中搭建Linux子系统

    win10自带的Linux子系统,简称WSL(Windows Subsystem for Linux).优点是打通了Linux系统和windows系统,改变了传统虚拟机/双系统造成的两个系统相互隔绝的 ...

  6. 在win10的Linux子系统(WSL)上搭载python编程环境

    为什么使用WSL进行python编程 WSL,全称Windows Subsystem for Linux.简言之,win10提供了一个子Linux系统,可以解决虚拟机和双系统的系统之间阻隔的问题而不影 ...

  7. 通过LxRunOffline迁移Win10的Linux子系统

    默认情况WSL装在系统盘(C:),重装系统怎么办?C盘空间不足怎么办?能修改WSL安装路径吗? 当然可以,使用LxRunOffline不仅能修改WSL安装路径,还能备份WSL.还原WSL…… 修改WS ...

  8. windows linux 子系统折腾记

    最近买了部新电脑,海尔n4105的一体机,好像叫s7. 放在房间里面,看看资料.因为性能孱弱,所以不敢安装太强大的软件,然后又有一颗折腾的心.所以尝试了win10自带的linux子系统. 然后在应用商 ...

  9. Windows10内置Linux子系统

      WSL 前言 前段时间,机子上的win10又偷偷摸摸升级到了一周年正式版,比较无奈.不过之前听闻这个版本已经支持内置的linux子系统,于是就怀着好奇心试玩了一把.虽然期间遇到了很多问题,但总体来 ...

随机推荐

  1. 说说Java异步调用的几种方式

    日常开发中,会经常遇到说,前台调服务,然后触发一个比较耗时的异步服务,且不用等异步任务的处理结果就对原服务进行返回.这里就涉及的Java异步调用的一个知识.下面本文尝试将Java异步调用的多种方式进行 ...

  2. WebRTC 用例和性能

    WebRTC 用例和性能 实现低延迟.点对点传输是一项艰巨的工程挑战:有 NAT 遍历和连接检查.信令.安全.拥塞控制和无数其他细节需要处理.WebRTC 代表我们处理以上所有内容,这就是为什么它可以 ...

  3. LVM磁盘配额

    目录 一.LVM概述 1.1.逻辑卷管理 1.2.LVM机制的基本概念 二.LVM管理命令 三.磁盘配额概述 3.1.实现磁盘配额的条件 3.2.Linux磁盘限额的特点 3.3.常用命令及选项 3. ...

  4. (2)用 if语句 区间判断

    1 /*此例子只作为演示*/ 2 3 #include <stdio.h> 4 int main() 5 { 6 printf("请问贵公司给出的薪资是:\n"); 7 ...

  5. 面试了一位33岁Android程序员,只会面向百度编程,居然要25k,脸呢?

    最近逛论坛看到这样一个帖子: 面试了一位工作12年的程序员, 这位老哥有3年java开发经验,2年H5,7年Android开发经验,简历上写着精通Java,Android,熟悉H5开发.没有具体的技术 ...

  6. 你认为的.NET数据库连接池,真的是全部吗?

    一般我们的项目中会使用1到2个数据库连接配置,同程艺龙的数据库连接配置被收拢到统一的配置中心,由DBA统一配置和维护,业务方通过某个字符串配置拿到的是Connection对象. DBA能在对业务方无侵 ...

  7. SpringMVC学习08(拦截器)

    8.拦截器 概述 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理.开发者可以自己定义一些拦截器来实现特定的功能. 过滤器与拦截器的区别: ...

  8. SpringMVC项目部署到CentOS7虚拟机问题及解决办法记录

    1.前言 计划将之前在Windows系统上练手做的项目部署到云服务器上,想先在本地虚拟机上测试一下是否可行,过程中发现很多问题,特此记录.还有问题未能解决,希望后面能有思路. 突然想到是否和数据库有关 ...

  9. awk-03-操作符

    操作符 在awk中,有3种情况表达式为假: 1.数字是0 2.空字符串 3.未定义的值 数值运算,未定义变量初始值为0 字符运算,未定义变量初始值为空 示例 1.截取整数( + - ) 2.感叹号 读 ...

  10. Shell-05-函数

    函数 函数定义 shell中函数的定义格式如下 [ function ] funname [()] { action; [return int;] } 说明: 1.可以带function fun() ...