全网最全Win10/11系统下WSL2+Ubuntu20.04的全流程安装指南(两种支持安装至 D 盘方式)

全网最全Win10/11系统下WSL2+Ubuntu20.04的全流程安装指南(两种支持安装至 D 盘方式)

前言

WSL2(Windows Subsystem for Linux 2)是 Windows 提供的一种轻量级 Linux 运行环境,具备完整的 Linux 内核,并支持更好的文件系统性能和兼容性。它允许用户在 Windows 系统中运行 Linux 命令行工具和应用程序,而无需安装虚拟机或双系统。

本教程将介绍 如何安装 WSL2 并将 Ubuntu-20.04 安装到 D 盘,涵盖 WSL2 的启用、Ubuntu 的下载与解压、WSL2 发行版的导入,以及普通用户的设置与安装验证。这是全网最全的 WSL2 安装与配置指南,参考了大量博客教程,并结合实践经验,整理出最实用、最详细的方法,适用于所有 Windows 10/11 用户,绝对靠谱!!!

本教程涵盖:
两种 WSL2 启用方式(PowerShell 命令行 / Windows GUI 手动操作)
两种安装 Ubuntu-20.04 到 D 盘方式(官方迁移导入 / 手动下载解压)


一、安装 WSL2

方法一:PowerShell 命令行快速安装 WSL2(推荐)

1. 启用 Windows 子系统(WSL)功能

在 PowerShell(管理员模式)中运行:

dism.exe /online /enable-feature/featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 
在这里插入图片描述
解释:/all:在所有用户上启用该功能/norestart:启用功能后不会立即重启

2. 启用虚拟机平台功能

WSL2 依赖 Windows 虚拟机功能,需要额外启用:

dism.exe /online /enable-feature/featurename:VirtualMachinePlatform /all /norestart 
在这里插入图片描述

3. 将 WSL 默认版本设置为 WSL2(视情况而定)

wsl --set-default-version 2 
Windows 11 默认已安装 WSL2,不需要执行该命令。Windows 10 用户 需要执行此命令,否则默认使用 WSL1。

4. 重启电脑

以上命令执行完成后,请重启电脑,以确保所有更改生效。

方法二:Windows GUI 手动安装 WSL2

1. 打开 Windows 功能管理

进入 程序和功能 界面,点击 启用或关闭 Windows 功能

在这里插入图片描述

按下 Win + R 组合键,输入以下命令,然后点击 确定 或直接按 Enter

appwiz.cpl 
在这里插入图片描述

2. 启用 WSL 和虚拟机平台

  • 找到并勾选以下两项,然后点击 确定,系统将开始应用更改。随后会弹出提示要求重启计算机,点击 立即重新启动(N) 以完成设置。:
    • 适用于 Linux 的 Windows 子系统
    • 虚拟机平台 / Windows 虚拟机监控程序平台
在这里插入图片描述
  • 如果你使用的是 Windows 11,还需要勾选:
    • Windows Hypervisor Platform(有些系统可能没有)
    • Hyper-V(如果你的 Windows 版本支持)
在这里插入图片描述

3. 将 WSL 默认版本设置为 WSL2(视情况而定)

wsl --set-default-version 2 
Windows 11 默认已安装 WSL2,不需要执行该命令。Windows 10 用户 需要执行此命令,否则默认使用 WSL1。

二、WSL2 安装 Ubuntu-20.04 至 D盘 (方法一 | 推荐)

1. 创建文件夹

  • D盘 创建 WSL 文件夹,并在该文件夹下创建 Ubuntu-20.04 文件夹。
在这里插入图片描述

2. 下载并导出 Ubuntu-20.04

取消注册原有的 Ubuntu-20.04,如果你已经安装了 Ubuntu-20.04(默认在 C 盘),可以将其从 WSL 注销:

wsl --unregister Ubuntu-20.04 
在这里插入图片描述

导出 Ubuntu-20.04.tar 文件

wsl --export Ubuntu-20.04 D:\WSL\Ubuntu-20.04\Ubuntu-20.04.tar 

这会下载 Ubuntu-20.04 并将其导出到 D:\WSL\Ubuntu-20.04\Ubuntu-20.04.tar,然后可以执行ls D:\WSL\Ubuntu-20.04查看Ubuntu-20.04.tar已经成功导出。

在这里插入图片描述

安装完毕后会要求你创建一个新用户,按照提示输入用户名和密码即可,然后按 Ctrl + D 退出即可。

在这里插入图片描述

安装 Ubuntu-20.04

wsl --install -d Ubuntu-20.04 

首先,查看可用的 WSL 发行版:

wsl --list --online 

如图所示为终端输出:

在这里插入图片描述

3. 导入 Ubuntu-20.04 到 D 盘

D:\WSL\Ubuntu-20.04 目录下,WSL2 发行版的文件存储在一个 虚拟磁盘映像文件(ext4.vhdx) 中,该文件用于存储整个 Ubuntu-20.04 文件系统,如下图所示:

在这里插入图片描述

运行以下命令,将 Ubuntu-20.04 重新导入到 D:\WSL\Ubuntu-20.04

wsl --import Ubuntu-20.04 D:\WSL\Ubuntu-20.04 D:\WSL\Ubuntu-20.04\Ubuntu-20.04.tar --version 2 

这将会把 Ubuntu-20.04 安装到 D 盘,而不是默认的 C 盘,如图所示正在安装。

在这里插入图片描述

4. 启动 Ubuntu-20.04

赋予新用户 sudo 权限

usermod-aGsudo yourusername 

这样,新用户就可以使用 sudo 进行管理员操作。

创建新用户,在 WSL 终端(默认 root)下运行:

注意:请把 yourusername 替换为你想使用的用户名
adduser yourusername 
系统会要求你输入:新密码用户信息(全部可以直接回车跳过)
在这里插入图片描述

导入完成后,你可以启动 WSL:

wsl -d Ubuntu-20.04 

但此时,你会发现默认以 root 用户登录,因为 WSL 手动导入的 Ubuntu 不会自动创建普通用户,需要我们手动创建。

在这里插入图片描述

5. 修改默认登录用户为普通用户(可选)

再次启动 WSL:

wsl -d Ubuntu-20.04 

此时,你会发现默认以普通用户登录:

clea

以管理员身份运行PowerShell,执行命令:

ubuntu2004 config --default-user yourusername 

三、WSL2 安装 Ubuntu-20.04 至 D盘 (方法二)

1. 创建文件夹

  • D盘 创建 WSL 文件夹,并在该文件夹下创建 Ubuntu-20.04 文件夹。
在这里插入图片描述

2. 下载 Ubuntu-20.04

方法一:命令行下载 Ubuntu-20.04 .appx 文件

  1. 打开刚才创建的 Ubuntu-20.04 文件夹。

在此处以管理员身份打开 PowerShell,输入以下命令:

Invoke-WebRequest-Uri https://aka.ms/wslubuntu2004 -OutFile Ubuntu-20.04.appx -UseBasicParsing 
在这里插入图片描述

方法二:浏览器手动下载 Ubuntu-20.04 .appx 文件

  1. 在浏览器中点击 Ubuntu 20.04 下载链接
  2. 直接在浏览器中下载 Ubuntu-20.04.appx,通常比 PowerShell 更快。
  3. 下载完成后,将文件移动到目标目录:D:\WSL\Ubuntu-20.04\
在这里插入图片描述

方法三:百度网盘链接下载 Ubuntu-20.04 .appx 文件

  1. 由于部分地区访问微软服务器较慢,导致 Ubuntu-20.04.appx 下载速度受限,因此提供 百度网盘高速下载 方式,以便用户更快获取安装包。
    • 文件名称:CanonicalGroupLimited.UbuntuonWindows_2004.2021.825.0.AppxBundle
    • 百度网盘下载链接点击下载
    • 提取码es9u
  2. 下载完成后,将文件移动到目标目录:D:\WSL\Ubuntu-20.04\

3. 解压 .appx 安装包

  1. D:\WSL\Ubuntu-20.04\ 目录下以管理员权限打开 PowerShell

如图所示成功解压出 Ubuntu_x64 文件夹。

在这里插入图片描述

进入 D:\WSL\Ubuntu-20.04\Extracted 目录,执行:

cd Extracted Rename-Item Ubuntu_2004.2021.825.0_x64.appx Ubuntu_20.04.zip Expand-Archive Ubuntu_2004.2021.825.0_x64.appx -DestinationPath D:\WSL\Ubuntu-20.04\Extracted\Ubuntu_x64 
在这里插入图片描述

如图所示成功解压出 Extracted 文件夹。

在这里插入图片描述

Windows 不支持直接运行 .appx,所以你需要手动解压,继续运行:

Rename-Item CanonicalGroupLimited.UbuntuonWindows_2004.2021.825.0.AppxBundle Ubuntu-20.04.zip Expand-Archive Ubuntu-20.04.zip -DestinationPath D:\WSL\Ubuntu-20.04\Extracted 
在这里插入图片描述
Rename-Item:将 .AppxBundle 重命名为 .zipExpand-Archive:使用 Windows 自带的解压工具解压到 D:\WSL\Ubuntu-20.04\Extracted如果 Expand-Archive 太慢,可以直接右键 .zip 文件,选择 解压到当前文件夹

4. 导入 WSL 并启动Ubuntu

启动 Ubuntu,执行:

wsl -d Ubuntu-20.04 

但此时,你会发现默认以 root 用户登录,因为 WSL 手动导入的 Ubuntu 不会自动创建普通用户,需要我们手动创建。

在这里插入图片描述

进入 Ubuntu_x64 目录,手动导入 WSL,在 D:\WSL\Ubuntu-20.04\Extracted\Ubuntu_x64 目录下执行:

cd Ubuntu_x64 wsl --import Ubuntu-20.04 D:\WSL\Ubuntu-20.04\ D:\WSL\Ubuntu-20.04\Extracted\Ubuntu_x64\install.tar.gz --version 2 

5. 创建普通用户并设置默认用户(可选)

修改默认用户,在 Windows PowerShell 中运行:

wsl -d Ubuntu-20.04 -u yourusername # 仅本次以普通用户登录

如图所示成功以 普通用户 登录。

在这里插入图片描述
注意:如果 Ubuntu-20.04 不能识别,先运行 wsl -l,来查看已安装的 WSL 发行版名称,然后在命令中替换 Ubuntu-20.04

赋予新用户 sudo 权限

usermod-aGsudo yourusername 

这样,新用户就可以使用 sudo 进行管理员操作。

在这里插入图片描述

创建新用户,在 WSL 终端(默认 root)下运行:

注意:请把 yourusername 替换为你想使用的用户名
adduser yourusername 
系统会要求你输入:新密码用户信息(全部可以直接回车跳过)
在这里插入图片描述

6. 确认安装成功

D:\WSL\Ubuntu-20.04 目录下,WSL2 发行版的文件存储在一个 虚拟磁盘映像文件(ext4.vhdx) 中,该文件用于存储整个 Ubuntu-20.04 文件系统,如下图所示:

在这里插入图片描述

确认安装成功

wsl -l -v 

如果输出类似下图,说明 WSL2 已经成功安装,并已将 Ubuntu-20.04 安装至 D盘

在这里插入图片描述

关闭并重启 WSL

wsl --shutdown 

Read more

C++的多态是如何体现的?一篇文章搞懂C++虚函数机制与常见问题

C++的多态是如何体现的? 一篇尽量清晰、结构化的文章,帮你搞懂虚函数机制、vtable、虚表指针,以及最容易出错的那些点。 1. 多态在C++里到底是什么? C++支持三种多态: * 编译时多态(静态多态):函数重载、运算符重载、模板(泛型)、CRTP * 运行时多态(动态多态):通过虚函数 + 指针/引用实现 * 强制多态(类型转换):static_cast、dynamic_cast 等(较少讨论) 绝大多数人问“C++的多态”时,指的其实就是运行时多态,也就是通过虚函数实现的动态绑定。 一句话总结核心: 同一个接口,不同的对象表现出不同的行为,且绑定发生在运行时。 2. 虚函数机制的核心——虚表(vtable)与虚表指针(vptr) C+

By Ne0inhk
容器适配器深度解析:从STL的stack、queue到优先队列的底层实现

容器适配器深度解析:从STL的stack、queue到优先队列的底层实现

文章目录 * 容器适配器深度解析:从STL的stack、queue到优先队列的底层实现 * 1. 栈的介绍和使用 * 1.1 栈的介绍 * 1.2 栈的使用 * 最小栈实现 * 栈的弹出压入序列 * 逆波兰表达式求值 * 1.3 stack的模拟实现 * 2. 队列的介绍和使用 * 2.1 队列的介绍 * 2.2 queue的使用 * 2.3 queue的模拟实现 * 3. 优先队列的介绍和使用 * 3.1 priority_queue的介绍 * 3.2 priority_queue的使用 * 3.3 priority_queue的模拟实现 * 4. 容器适配器 * 4.1 什么是适配器 * 4.2

By Ne0inhk
华为OD机试双机位C卷:日志解析(C/C++/Java/Python/Go/JS)

华为OD机试双机位C卷:日志解析(C/C++/Java/Python/Go/JS)

日志解析 2026华为OD机试双机位C卷 - 华为OD上机考试双机位C卷 200分题型 华为OD机试双机位C卷真题目录点击查看: 华为OD机试双机位C卷真题题库目录|机考题库 + 算法考点详解 题目描述 你是一个运维工程师,你同时负责n个系统的运维工作,已知每个系统每天会都从现场采集大量的现网运行日志(错误日志、接口日志等)下来生成一个日志文件,每个系统采集下来的日志文件大小均不相同。为了解析这些日志,你给每个系统配备了一台默认服务器进行日志解析,且此台服务器只能给本系统使用,由于所配置的服务器规则均相同,因为解析日志的速度也是相同的,即每秒钟可以解析defaultCnt条日志。 现在你发现解析的速度达不到预期,但你手头上还有一部分额外的资源可以使用,这些资源可以在任意时刻配置给任意一台服务器。但有个限制,那就是同一时刻只能配给其中一台服务器器,且服务器器是能整合全部额外资源,当然在下一秒钟即可配备给另外一台服务器。某一台服务器配备了额外资源以后,则每秒钟会增加解析extraCnt条日志,即每秒可解析(defaultCnt+extraCnt)条日志。 输入描述 输入一

By Ne0inhk
【C++ 算法】DFS & BFS 一篇速成学习

【C++ 算法】DFS & BFS 一篇速成学习

📃个人主页:island1314 ⛺️ 欢迎关注:👍点赞 👂🏽留言 😍收藏 💞 💞 💞 * 生活总是不会一帆风顺,前进的道路也不会永远一马平川,如何面对挫折影响人生走向 – 《人民日报》 🔥 目录 * 一、DFS * 1. 基本思想 * 2. 特点 * 3. C++实现 * 4. 经典例题 * 例题1:八皇后(洛谷P1219) * 例题2:奇怪的电梯(洛谷P1135) * 例题3:选数(洛谷P1036) * 例题4:迷宫(洛谷P1605) * 例题5:吃奶酪(洛谷P1433) * 例题6:单词搜索(LeetCode 79) * 二、BFS * 1. 基本思想 * 2. 特点 * 3. C++实现

By Ne0inhk