Windows 11 配置 WSL 2 Ubuntu 20.04 环境

2023-05-16

文章目录

  • 启用 Windows 相关功能
  • 在终端中配置 WSL 2
    • 确认 WSL 版本
    • 安装 Linux 发行版
    • 替换国内 apt 源
  • 问题记录
    • 适用于 Linux 的 Windows 子系统内核可以使用“wsl --update”手动更新,但由于你的系统设置,无法进行自动更新
    • WslRegisterDistribution failed with error: 0x800701bc
    • 请求的操作需要提升
  • 参考文档

启用 Windows 相关功能

依次进入:控制面板 -> 程序 -> 程序和功能 -> 启用或关闭 Windows 功能
勾选:

  • 适用于 Linux 的 Windows 子系统
  • 虚拟机平台

在终端中配置 WSL 2

确认 WSL 版本

首先打开具有管理员权限的 Windows Terminal(Windows PowerShell),执行 wsl --status 可以查看 WSL 配置的信息:


可以看到默认版本为 2。

全局默认版本可以通过 wsl --set-default-version <version> 来修改,<version> 可以为 1 或者 2。

也可以针对特定的 Linux 发行版来指定 WSL 的版本,wsl --set-version <distribution name> <version><distribution name> 为 Linux 发行版名称,如 Ubuntu-20.04<version> 为 WSL 版本。

安装 Linux 发行版

通过 wsl --list --online 或者 wsl -l -o 可以查看可用的 Linux 发行版列表:


然后通过 wsl --install -d Ubuntu-20.04 选择 Ubuntu 20.04 进行安装。

如果之前未进行过安装,会先下载对应发行版:


下载完成后,会自动启动一个新的终端会话进行安装。

安装成功后,提示为 WSL 中的 Linux 设置用户名和密码:


按照提示依次设置用户名和密码后,即可进入 Linux 系统:


此账号默认具有与 root 相同的权限。

至此 WSL2 的 Ubuntu 20.04 环境已经配置完成。

回到原来的终端会话,执行 wsl --list --verbose,可以看到刚刚安装的 Ubuntu 20.04:


在 Windows 开始菜单的应用中,同样也能找到 Ubuntu 20.04:


替换国内 apt 源

Ubuntu apt 默认使用的都是国外的源,对于一些资源下载速度可能比较慢,可以替换为国内源。

替换步骤如下:

  1. 备份现有源列表

备份保存现有源列表,之后如果有需要可以换回来:

cd /etc/apt
sudo cp sources.list sources.list.bak
  1. 修改源列表

修改方法主要是将 sources.list 中的 http://archive.ubuntu.com/ 替换为相应的国内源地址。

此处使用阿里云源,sources.list 内容如下:

deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

# deb https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

以上源已经涵盖了大部分使用场景,需要注意的是不同的 Ubuntu 版本 apt 源列表可能不同,并且有些软件包使用的是其它特定的源。

  1. 更新软件包列表

经过上述操作已经更换了默认 apt 源,需要手动刷新一下软件包列表:

sudo apt update

问题记录

适用于 Linux 的 Windows 子系统内核可以使用“wsl --update”手动更新,但由于你的系统设置,无法进行自动更新

如果要打开自动更新,依次进入:设置 -> Windows 更新 -> 高级选项 -> 打开接收其他 Microsoft 产品的更新:


WslRegisterDistribution failed with error: 0x800701bc

可能是 WSL 内核没有升级,可以尝试执行 wsl --update

请求的操作需要提升

出现这个提示一般是终端会话不具有管理员权限,打开具有管理员权限的终端再执行相应操作即可。

参考文档

适用于 Linux 的 Windows 子系统文档 | Microsoft Learn

阿里巴巴 Ubuntu 开源镜像站 (aliyun.com)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows 11 配置 WSL 2 Ubuntu 20.04 环境 的相关文章

  • 使用 Python 将 Excel 中的图表导出为图像

    我一直在尝试将 Excel 中的图表导出为 Python 中的图像文件 JPG 或 ING 我正在查看 WIn32com 这是我到目前为止所拥有的 import win32com client as win32 excel win32 ge
  • 获取已创建进程的进程句柄 Windows

    我需要获取运行程序时刚刚创建的所有进程的句柄或 PID 到目前为止 我已经使用了这段代码 每次创建进程时都会告诉我 问题是我只获取有关创建的进程的信息 但没有有关进程本身的任何信息 https msdn microsoft com en u
  • bdist_rpm 从 Ubuntu 到 CentOs

    我们在 Ubuntu Mac 上进行开发 并将 RPM 部署到 CentOS 这是设置 不能更改太多 问题是 当从 rpm 安装时 软件包会转到 usr local lib python2 7 dist packages 这是 Ubuntu
  • 所有 CopyConstructible 类型都是 MoveConstructible 类型吗?

    根据工作草案 N3337 与已发布的 ISOC 11 标准最相似的草案 和cppreference com http en cppreference com w cpp concept CopyConstructible 答案是肯定的 N3
  • 在ubuntu中打开spyder

    我想在ubuntu中打开spyder Python IDE 通常我会在 shell 中编写 spyder 它会打开spyder IDE 现在 当我在shell中编写spyder时 它只是换行 什么也没有发生 类似于按 enter 我如何找回
  • 为什么我的文件路径中出现 Unicode 转义的语法错误? [复制]

    这个问题在这里已经有答案了 我想要访问的文件夹名为 python 位于我的桌面上 当我尝试访问它时出现以下错误 gt gt gt os chdir C Users expoperialed Desktop Python SyntaxErro
  • Ubuntu + SVN:无法打开请求的 SVN 文件系统

    我知道这个问题已经被问过很多次了 我相信我明白答案 但我仍然没有运气 我都尝试过one repo and multiple repos配置 两者都有相同的问题 因此 对于我感兴趣的配置
  • NtDll 真的导出 C 运行时函数吗?我可以在我的应用程序中使用这些函数吗?

    我在查看 Windows 10 计算机上的 NtDll 导出表 发现它导出标准 C 运行时函数 例如memcpy sprintf strlen etc 这是否意味着我可以在运行时动态调用它们LoadLibrary and GetProcAd
  • Ruby:在 Ubuntu 上安装 rmagick

    我正在尝试在 Ubuntu 10 04 上安装 RMagick 看起来here https stackoverflow com questions 1482823 is there an easy way to install rmagic
  • python3-pip 安装但找不到 pip3 命令?

    我正在几台计算机上测试Python3 程序 为此 我需要使用 pip3 安装 Python 库 首先 我在每台计算机上安装 python3 pip 每个计算机都运行 Kubuntu 操作系统 一切都很好 然后我用 pip3 安装了我需要的包
  • 如何在 C++ 中急于提交分配的内存?

    总体情况 带宽 CPU 使用率和 GPU 使用率都极其密集的应用程序需要每秒从一个 GPU 向另一个 GPU 传输约 10 15GB 的数据 它使用 DX11 API 来访问 GPU 因此上传到 GPU 只能在每次上传都需要映射的缓冲区中进
  • python+win32:检测窗口拖动

    有没有办法检测何时使用 python pywin32 在窗口中拖动不属于我的应用程序的窗口 我想对其进行设置 以便当我拖动标题与桌面边缘附近的图案匹配的窗口时 当松开鼠标时它会捕捉到边缘 我可以编写代码 以便在释放鼠标时将所有具有该标题的窗
  • 用于验证 IIS 设置的 Powershell 脚本

    是否可以使用 Power Shell 脚本获取 IIS 设置 我希望使用脚本获取 检查以下信息 检查 Windows 身份验证提供程序是否正确列出 协商 NTLM 检查是否启用了 Windows 身份验证 Windows 身份验证高级设置
  • 如何解决内存碎片

    我们偶尔会遇到这样的问题 长时间运行的服务器进程 在 Windows Server 2003 上运行 由于内存分配失败而引发异常 我们怀疑这些分配由于内存碎片而失败 因此 我们一直在寻找一些可能对我们有帮助的替代内存分配机制 我希望有人能告
  • 由于图形处理单元配置,不支持 Windows Phone 模拟器(Mac 上的 Windows 7)

    启动 Windows Phone 模拟器时出现错误 不支持 Windows Phone 模拟器 因为您的计算机没有所需的图形处理单元配置 如果没有图形处理单元 XNA 框架页面将无法运行 您想继续启动模拟器吗 当我尝试访问网页 任何网页 时
  • 关键字“if”如何测试一个值是真还是假?

    在 bash 脚本中 if 1 then echo Yes else echo No fi Output Yes 它表示 1 被视为真值 但在代码中 word Linux letter nuxi if echo word grep q le
  • Git 扩展 - 无法在 Windows 上推送到网络驱动器中的 git bare 存储库

    我正在 Windows 上学习 git 我已经安装了 Git 扩展 版本 2 47 3 并使用了它 我在我的 C 单元中创建了一个裸存储库 作为中央存储库 并在硬盘中的其他任何位置创建了个人存储库 我对硬盘中的这两个存储库进行提交 推送和拉
  • Kerberos 双跳

    我们遇到了臭名昭著的 Kerberos 双跳问题 这是一个全新的域 是从以前使用模拟和委派的另一个提供商迁移而来的 我们已将操作系统升级到最新的 SQL 服务器 2017 WPF 应用程序 使用域凭据 gt Web 服务 IIS 10 上的
  • 访问图像的 Windows“标签”元数据字段

    我正在尝试进行一些图像处理 所以现在我正在尝试读取图像 exif 数据 有 2 个内置函数可用于读取图像的 exif 数据 问题是我想读取图像标签 exifread and imfinfo这两个函数都不显示图像标签 Is there any
  • 游戏内的java.awt.Robot?

    我正在尝试使用下面的代码来模拟击键 当我打开记事本时 它工作正常 但当我打开我想使用它的游戏时 它没有执行任何操作 所以按键似乎不起作用 我尝试模拟鼠标移动和点击 这些动作确实有效 有谁知道如何解决这个问题 我发现这个问题 如何在游戏中使用

随机推荐