Win10安装WSL2全攻略:Ubuntu 20.04 部署至F盘并彻底解决网络连接问题

参考链接:全网最全Win10/11系统下WSL2+Ubuntu20.04的全流程安装指南(两种支持安装至 D 盘方式)_win10安装wsl2-ZEEKLOG博客

前言

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

一、安装 WSL2

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

快捷键“win+x”打开PowerShell(管理员模式),在 PowerShell(管理员模式)中运行:

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

解释:

  • /all:在所有用户上启用该功能
  • /norestart:启用功能后不会立即重启
  1. 启用虚拟机平台功能

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

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 
image.png
  1. 将 WSL 默认版本设置为 WSL2(视情况而定)
wsl --set-default-version 2 

注意:

  • Windows 11 默认已安装 WSL2,不需要执行该命令。
  • Windows 10 用户 需要执行此命令,否则默认使用 WSL1。
  1. 重启电脑

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

二、WSL2 安装 Ubuntu-20.04 至 **F盘**

    1. 运行以下命令,将 Ubuntu-20.04 重新导入到 F:\WSL\Ubuntu-20.04
    2. 赋予新用户 sudo 权限
  1. 修改默认登录用户为普通用户(可选)
    1. 再次启动 WSL:

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

ubuntu2004 config --default-user yourusername 

创建新用户,在 WSL 终端(默认 root)下运行:⚠ 注意:请把 yourusername 替换为你想使用的用户名

adduser yourusername 

系统会要求你输入:新密码用户信息(全部可以直接回车跳过)

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

wsl -d Ubuntu-20.04 

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

启动 Ubuntu-20.04

usermod -aG sudo yourusername 

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

wsl --unregister Ubuntu-20.04 

导出 Ubuntu-20.04.tar 文件运行以下命令,将 Ubuntu-20.04 重新导入到 F:\WSL\Ubuntu-20.04.tar

wsl --export Ubuntu-20.04 F:\WSL\ubuntu20.04.tar 

执行以下命令,查看已安装的WSL分发列表:

 wsl --list --verbose 
image.png

安装 Ubuntu-20.04进入Microsoft store,搜索Ubuntu 20.04,点击下载

image.png

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

wsl --list --online 
image.png

下载并导出 Ubuntu-20.04

wsl --import Ubuntu-20.04 F:\WSL\Ubuntu-20.04 F:\WSL\ubuntu20.04.tar --version 2 
image.png

创建文件夹F盘 创建 WSL 文件夹

image.png
wsl -d Ubuntu-20.04 
image.png

三、WSL2 Ubuntu 20.04 网络连接故障

问题现象:

  • WSL2 内的 Ubuntu 20.04 无法访问互联网。
  • Ping 任何外部公网 IP 地址(如 8.8.8.8)都不通。
  • 排除了网关、IP 配置和 DNS 的问题。

根本原因:

在某些情况下(尤其是在使用了某些 VPN 软件或企业网络环境后),主机的网络接口发生变化,导致 WSL2 的虚拟网络无法正常路由。

解决方案:使用 WSL-VPNKIT

这是一个专门为解决此类问题而设计的工具,它通过提供一个稳定的虚拟网络接口来恢复 WSL2 的网络连接。

参考链接:https://www.ghostchu.com/fix-wsl-no-internet-connection/

下载链接:GitHub - sakai135/wsl-vpnkit:在被 VPN 阻止时提供与 WSL 2 的网络连接

安装与使用步骤

1.安装目录下运行

wsl --import wsl-vpnkit $env:USERPROFILE\wsl-vpnkit wsl-vpnkit.tar.gz --version 2 wsl -d wsl-vpnkit wsl.exe -d wsl-vpnkit service wsl-vpnkit start 
image.png

2.WSL-VPNKIT开机自启动

由于 WSL-VPNKIT 不会开机自启动,需要创建一个脚本帮助恢复桥接

a.创建 start-wsl2-vpn-bridge.bat 文件,内容如下:

@echo off wsl.exe -d wsl-vpnkit service wsl-vpnkit start 

b.打开任务计划程序

按 Win + R,输入 taskschd.msc 回车

c.创建任务

image.png

d.配置 创建任务<常规>

特别需要注意的是,一定要勾选“使用最高权限运行”

image.png

e.配置 创建任务<触发器>

image.png

f.配置 创建任务<触发器>

image.png

g.点击确定,重启测试

image.png

四、ubuntu 20.04 设置国内镜像源

1.备份原始源文件

sudocp /etc/apt/sources.list /etc/apt/sources.list.backup 

2.编辑源文件

sudovim /etc/apt/sources.list 

3.清华大学源

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse 

4.更新

sudoapt update sudoapt upgrade 

Read more

奥比中光Gemini335L 环境配置及Python版本SDK部署

奥比中光Gemini335L 环境配置及Python版本SDK部署

1.前言: * 最近为了完成“机械臂手眼标定”的任务需要配置 奥比中光Gemini335L深度相机的相关开发环境,这里将遇到的坑以及相关的方法总结一下给大家。这里我会讲的比较细致一点,因为考虑到我们实验室有很多对于相机外设不太了解的同学,希望这篇文章对你们的学习生活会有帮助。 * 本文目标:完成从驱动配置到 Python SDK 部署的完整流程,避免大家踩坑。 2. orbbec驱动安装与配置 2.1 为什么需要驱动 * 驱动作用:相机硬件与操作系统的桥梁,确保系统能够识别相机并正确传输深度数据、彩色图像数据。 * 若无驱动:设备管理器可能显示为未知设备,或者无法被 SDK 调用。 2.2 驱动下载 * 进入奥比中光官网 → Gemini 335L 产品页面 → 选择对应操作系统(Windows / Linux)。 * 下载 Orbbec Camera Driver(通常包含 USB 驱动)。 https://www.orbbec.

By Ne0inhk
《算法题讲解指南:优选算法-滑动窗口》--13 水果成篮

《算法题讲解指南:优选算法-滑动窗口》--13 水果成篮

🔥小叶-duck:个人主页 ❄️个人专栏:《Data-Structure-Learning》 《C++入门到进阶&自我学习过程记录》《算法题讲解指南》--从优选到贪心 ✨未择之路,不须回头 已择之路,纵是荆棘遍野,亦作花海遨游 目录 13 水果成篮 题目链接: 编辑 题目示例: 解法(滑动窗口): 算法思路: 算法流程: C++代码演示:方法一(使用容器) C++代码演示:方法二(用数组模拟哈希表) 算法总结及流程解析: 结束语 13 水果成篮 题目链接: 题目示例: 解法(滑动窗口): 算法思路:       研究的对象是一段连续的区间,可以使用【滑动窗口】思想来解决问题。       让滑动窗口满足:窗口内水果的种类只有两种。       做法:右端水果进入窗口的时候,

By Ne0inhk
TOON:一种为大模型设计的JSON压缩型数据结构

TOON:一种为大模型设计的JSON压缩型数据结构

目录 TOON:一种为大模型设计的JSON压缩型数据结构 一、精准定义,什么是 TOON? 1、JSON 数据格式的局限性 2、TOON 的结构与优势 3、TOON 数据结构的主要特征 4、媒体类型与文件拓展名 二、举例:JSON 与 TOON 描述同一组数据分别是什么样 三、结语         作者:watermelo37         ZEEKLOG优质创作者、华为云云享专家、阿里云专家博主、腾讯云“创作之星”特邀作者、火山KOL、支付宝合作作者,全平台博客昵称watermelo37。         一个假装是giser的coder,做不只专注于业务逻辑的前端工程师,Java、Docker、Python、LLM均有涉猎。 --------------------------------------------------------------------- 温柔地对待温柔的人,包容的三观就是最大的温柔。 ---------------------------------------------------------------------

By Ne0inhk

Flutter 三方库 in_date_utils 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、高效的日期逻辑处理与万年历算法引擎

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 in_date_utils 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、高效的日期逻辑处理与万年历算法引擎 在鸿蒙(OpenHarmony)系统的日历、任务管理或考勤应用中,如何快速计算某月的天数、判断闰年、或优雅地对日期进行加减操作?in_date_utils 为开发者提供了一套开箱即用的日期增强工具集。本文将深入实战其在鸿蒙生态中的应用。 前言 什么是 in_date_utils?它是 Dart 原生 DateTime 的强力补丁。在 Flutter for OpenHarmony 的实际开发中,我们经常需要处理诸如“上周一的日期”、“本月最后一个周五”等复杂的业务逻辑。利用该库,我们可以避免重复编写琐碎的日期数学运算,让鸿蒙应用的代码更加简洁、易读且稳健。 一、

By Ne0inhk