win11 安装 WSL2 在非 C 盘及配置(图形界面+代理)

2023-05-16

WSL 安装及配置

  • 直接安装 WSL2 在非 C 盘
        • 启用 WSL 功能
        • 前提条件
        • 设置默认安装 WSL2
        • 安装在非 C 盘
  • 图形界面
        • 先决条件
        • 更新 WSL 以支持 GUI
  • 配置 WSL2 使用 Windows 网络代理

直接安装 WSL2 在非 C 盘

参考 WSL 的手动安装步骤

启用 WSL 功能

首先需要启用 WSL 相关的 windows 功能,win+R 输入 appwiz.cpl 回车 -> 启用或关闭 Windows 功能,然后启用下列三个功能:
Hyper-V 在这里插入图片描述

前提条件

win11 是默认支持 WSL2 的,如果是 win10 请参考 检查运行 WSL2 的要求

设置默认安装 WSL2

为了安装 WSL2,需要先安装 WSL2 的内核更新包:适用于 x64 计算机的 WSL2 Linux 内核更新包。
下载这个 .msi 文件之后,双击安装可能会因为权限问题导致安装失败,参考 安装程序出现2502、2503错误解决方法:

  1. 打开“命令提示符(管理员)”
  2. 在“命令提示符(管理员)”中输入"msiexec /package " +“你将要安装的程序的完整路径及程序名”(注意空格)
  3. 然后按回车键,安装程序就会自动启动

此外,你可能还需要使用命令将 WSL2 设置为默认版本:

wsl --set-default-version 2

但 win11 似乎默认就是安装 wsl2 ,我没有手动设置,直接安装的。

安装在非 C 盘

至此,所有的准备工作都OK了,从官网页面可以下载想要安装的 Linux 发行版:下载发行版
在这里插入图片描述
以我下载的 Ubuntu 22.04 LTS 为例,把下载后得到的 .appx 文件放到 D 盘目录下,然后修改后缀名为 zip ,即 Ubuntu2204-220620.appx -> Ubuntu2204-220620.zip

然后把它解压,得到一个文件夹,如果文件夹中有 ubuntu****.exe ,那就可以了;但是 22.04 版本解压后应该是有若干个 appx ,这时候根据自己的平台把 Ubuntu_2204.0.10.0_x64.appxUbuntu_2204.0.10.0_ARM64.appx 修改后缀为 zip,然后再一次解压,这一次就可以得到 .exe 了。

双击 ubuntu2204.exe 开始安装,如果出现错误,那么大概率是没有更新 WSL2 的内核,回到前面一节 “设置默认安装 WSL2” 更新内核。

安装时根据向导进行相应的设置即可。不过注意在设置用户名时只能设置小写字母、数字和下划线(不能使用大写字母),如果不符合要求是无法选择 [done] 的。

至此我们已经安装好了 WSL2,在 CMD 中使用命令可以检查我们安装的版本:

wsl -l -v

图形界面

win11 开始原生支持 WSL 的图形界面,参考 在适用于 Linux 的 Windows 子系统上运行 Linux GUI 应用

先决条件

  • 需要Windows 11内部版本 22000 或更高版本才能访问此功能。
  • 安装与以下系统匹配的驱动程序。:
    • 适用于 WSL 的 Intel GPU 驱动程序
    • 适用于 WSL 的 AMD GPU 驱动程序
    • 适用于 WSL 的 NVIDIA GPU 驱动程序

更新 WSL 以支持 GUI

由于我们已经安装好了 WSL,因此通过 powershell 更新即可:

  1. 管理员身份运行 PowerShell
  2. 更新 WSL:wsl --update
  3. 重启 WSL :wsl --shutdown

然后就可以安装并运行 GUI 程序了,比如:

sudo apt install gedit -y
gedit ~/.bashrc

配置 WSL2 使用 Windows 网络代理

通过下面脚本可以便捷实现网络代理的设置:./proxyrc.sh set 设置代理,./proxyrc.sh unset 取消代理(以这种方式设置代理只是临时的,重新进入 WSL 需要再一次设置)。

#!/bin/sh
# 获取 windows 主机 IP
hostip=$(cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }')
wslip=$(hostname -I | awk '{print $1}')
# 代理端口一般是 7890,注意自己去代理软件确认
port="7890"

PROXY_HTTP="http://${hostip}:${port}"

set_proxy(){
    export http_proxy="${PROXY_HTTP}"
    export HTTP_PROXY="${PROXY_HTTP}"

    export https_proxy="${PROXY_HTTP}"
    export HTTPS_proxy="${PROXY_HTTP}"

    export ALL_PROXY="${PROXY_SOCKS5}"
    export all_proxy=${PROXY_SOCKS5}
}

unset_proxy(){
    unset http_proxy
    unset HTTP_PROXY
    unset https_proxy
    unset HTTPS_PROXY
    unset ALL_PROXY
    unset all_proxy
}

test_setting(){
    echo "Host ip:" ${hostip}
    echo "WSL ip:" ${wslip}
    echo "Current proxy:" $https_proxy
}

if [ "$1" = "set" ]
then
    set_proxy
elif [ "$1" = "unset" ]
then
    unset_proxy
elif [ "$1" = "test" ]
then
    test_setting
else
    echo "Unsupported arguments."
fi

因为 windows 防火墙的原因,如上设置代理后依然无法使用,因此还需要在 windows 防火墙中设置一个入站规则,参考 wsl2配置使用windows网络代理 。

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

win11 安装 WSL2 在非 C 盘及配置(图形界面+代理) 的相关文章

  • educoder--MapReduce基础实战各关卡通关答案

    第1关 xff1a 成绩统计 任务描述 相关知识 什么是MapReduce 如何使用MapReduce进行运算 代码解释 编程要求 测试说明 任务描述 本关任务 xff1a 使用Map Reduce计算班级中年龄最大的学生 相关知识 为了完
  • Could NOT find ddynamic_reconfigure

    下载ddynamic reconfigure的package 链接https github com pal robotics ddynamic reconfigure tree kinetic devel 解压到catkin ws src空
  • 一位工作了10年的C++程序员总结出这些忠告

    1 可以考虑先学习C 大多数时候 xff0c 我们学习语言的目的 xff0c 不是为了成为一个语言专家 xff0c 而是希望成为一个解决问题的专家 做一个有用的程序员 xff0c 做一个赚钱的程序员 我们的价值 xff0c 将体现在客户价值
  • 新手程序员必学的代码编程技巧

    程序员往往渴望加入的是一支 30 的时间在写代码 xff0c 而70 的时间在喝着咖啡讨论着如何将产品做好 的团队 软件工作应该成为一项技术和艺术融合的高智力活动 xff0c 而项目经理应该是一个高度理解质量 范围和进度客观规律的明白人 x
  • 数学之美—细数 傅里叶变换 原理

    目录 一 傅里叶级数 xff08 Fourier Series FS xff09 的实数域表示 二 傅里叶级数 xff08 Fourier Series FS xff09 的复数域表示 三 傅里叶变换 xff08 FT xff09 的引出
  • C++小知识01 —— 0、‘0’、“0”、“\0”、‘\0’、NULL和nullptr

    可能对于才学完C 的初学者来说 这些概念都很简单 但是把它们放在一起 就真的真的给整不会了 其中最容易混淆的有单引号与双引号的用法 还有NULL与nullptr的用法 下面我会依次用代码文字结合的形式给大家讲解 0 这个就很简单 它就是数字
  • 如何解决Git代码冲突?

    本文主要用的是vscode工具 1 为什么会出现代码冲突问题呢 xff1f 可以理解为就是同一时间几个人更改同一个文件 xff0c git 不知道该听谁的 xff0c 所以就报冲突 xff0c 让开发者自己去选择 xff0c 选取到底用哪个
  • 算法优化工程师

    嵌入式算法移植优化 嵌入式算法移植优化 CUDA编程 嵌入式算法移植优化 CPU GPU TPU NPU都是什么 嵌入式算法移植优化 模型压缩与剪枝 嵌入式算法移植优化 pthread 嵌入式算法移植优化 SIMD编程 xff08 单指令流
  • Elasticsearch7.8.0启动报jdk版本错误

    因为7 8 0版本自带jdk12 xff0c 就可能会出现自己linux环境下的jdk版本较低 启动时老报错 xff0c 这时候就需要干掉当前jdk xff0c 然后启动elasticsearch xff0c 让他去匹配自带的jdk 使用命
  • 2-2进程管理-处理机调度

    文章目录 一 调度的层次二 进程调度的时机 切换与过程 调度方式三 调度器 闲逛进程四 调度算法的评价指标五 调度算法 xff08 一 xff09 先来先服务SCFS xff08 二 xff09 短作业优先算法SJF xff08 三 xff
  • 百度ai开放平台使用方法(附带例子详细步骤)

    百度ai开放平台 1 百度ai开放平台内有众多功能 xff0c 如文字识别 xff0c 语音技术等等内容 xff0c 本文章以身份证识别为例子 xff0c 教大家怎么使用它啦 链接走起 xff1a https cloud baidu com
  • 树莓派4b装完系统后,外接的显示屏刚开始蓝屏,过一会就不亮了是什么原因

    有可能是显示屏的连接或设置问题 xff0c 以下是一些可能导致这种情况的原因及相应的解决方法 xff1a 1 连接问题 xff1a 请确保显示屏与树莓派4B连接的正确 xff0c 建议检查接头是否牢固 另外 xff0c 如果你是通过 HDM
  • Maven报错:The packaging for this project did not assign a file to the build arti fact

    https blog csdn net gao zhennan article details 89713407
  • YOLO-MASK对图像数据集进行清洗

    一 前情介绍 之前在捣鼓yolo系列模型 xff0c 尝试着对coco的羊数据集进行训练 xff0c 可是发现不管怎么调参 xff0c Map一直在60几 xff0c 死活上不了70 后来在一位资深老算法师的指点下 xff0c 才明白 xf
  • 进程,文件,内存简述

    1 进程 一个程序一旦在操作系统里动起来 xff0c 他就成为了一个进程 进程表 xff1a 存放有进程的运行情况以及信息 进程核 xff1a 一个时刻 xff0c 一个进程占用的所有资源 核快照 xff1a 进程在某一时刻的状态 当产生了
  • GNURadio中运行ofdm_rx报错:gr::log :INFO: packet_headerparser_b0 - Detected an invalid packet at item ××

    修改方法 xff1a 减小发送端的乘数因子 但是本着知其然还要知其所以然的学习态度 xff0c 下面就解释下出现这种现象的原因 xff1a 2021 10 28 更新 xff1a 在实际的测试中发现 xff0c 引起该问题的原因还有可能是接
  • 关于改进邮政编码的建议 2018-03-08

    关于改进邮政编码的建议 2018 03 08 邮政法 第二十三条规定 xff1a 用户交寄邮件 xff0c 应当清楚 准确地填写收件人姓名 地址和邮政编码 邮政企业应当在邮政营业场所免费为用户提供邮政编码查询服务 邮政编码由邮政企业根据国务
  • Chapter5 MapReduce

    5 1概述 5 1 1分布式并行编程 MapReduce是一种分布式并行编程框架 在计算机发展史上的 34 摩尔定律 34 xff1a CPU的性能每隔18个月就可以翻一番 然而 xff0c 从2005年起 xff0c 摩尔定律逐渐失效 x
  • 解决Hadoop集群hdfs无法启动DataNode的问题

    问题描述 xff1a 在hadoop启动hdfs的之后 xff0c 使用jps命令查看运行情况时发现hdfs的DataNode并没有打开 笔者出现此情况前曾使用hdfs namenode format格式化了hdfs 如有三个hadoop集
  • Kalman滤波参数、调整原则

    1 Q P R关系 P的迭代为P 61 QTPQ xff1b R为观测的协方差 xff1b 状态延时高 xff0c 说明收敛速度慢 估计参数P越大 xff0c 收敛的越快 测量误差R越小 xff0c 收敛的越快 调整这两个参数即可 xff0

随机推荐