Windows11安装Linux子系统,并实现服务自启动,局域网访问,磁盘挂载
Windows11安装Linux子系统,并实现服务自启动,局域网访问,磁盘挂载
- 一、准备工作
- 二、安装Linux子系统(wsl2)
- 三、为Linux子系统设置桥接网络
- 检查wsl版本
- 在 Hyper-V 管理器中创建虚拟交换机
- 创建 WSL 配置文件
- 启动wsl
- 四、设置Windows开机自启动Linux子系统服务
- 五、挂载物理磁盘
- 先决条件
- 挂载未分区磁盘
- 挂载分区磁盘
- 设置Windows开机自动挂载磁盘
环境:windows 11 专业版
一、准备工作
在安装Linux子系统之前,需要开启Windows功能,开启步骤如下:
- 打开控制面板
- 点击程序
- 点击程序和功能->启用或关闭Windows功能
- 在弹出的界面中勾选适用于Linux的Windows子系统
- 勾选Hyper-V(如果需要桥接网络则需要开启)

注:桥接网络可以使得Linux子系统与windows在同一个网段中,从而使得局域网站中的其他电脑可以直接访问Linux子系统中的服务。
完成后重启电脑
二、安装Linux子系统(wsl2)
-
打开Microsoft store
-
搜索Windows Subsystem for Linux点击获取(Windows Subsystem for Linux允许开发人员直接在Windows上运行GNU/Linux环境(包括大多数命令行工具、实用程序和应用程序),无需修改,无需传统虚拟机或双引导设置的开销。)

-
安装完成后继续搜索Linux,选择自己需要的Linux发行版安装
-

等待成功安装后,在开始->所有程序中就能看到对应的Linux子系统了,初次运行需要输入用户名和密码。
三、为Linux子系统设置桥接网络
桥接网络需要安装的为wsl2,默认情况下新安装的一般都为wsl2,可通过在cmd或PowerShell中输入命令wsl -l -v来检查当前wsl的版本
检查wsl版本
若当前版本为wsl1,则需要先更新wsl
- 更新
wsl --update - 检查版本
wsl --version - 输入如下内容
WSL version: 0.70.0.0
Kernel version: 5.15.68.1
WSLg version: 1.0.45
MSRDC version: 1.2.3575
Direct3D version: 1.606.4
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.22621.675
- 使用
wsl --set-version <distro name> 2命令将<distro name>替换为要更新的 Linux 发行版的名称。 例如,wsl --set-version Ubuntu-20.04 2会将 Ubuntu 20.04 发行版设置为使用 WSL 2。 - 关闭wsl
wsl --shutdown
在 Hyper-V 管理器中创建虚拟交换机
-
运行 Hyper-V 管理器
- 在左侧选择您的电脑
- 在右侧选择虚拟交换机管理器
- 在管理器中选择“新建虚拟网络交换机”
- 在右侧选择“外部”
- 然后单击“创建虚拟交换机”
- 在“名称:”下输入独特的名称,例如“WSL_external”
- 确保选择确切的物理适配器(WiFi、LAN 等),并且由于这很可能是您唯一的适配器,因此选中“允许管理操作系统共享此网络适配器”下的复选框
- 申请、是、确定


创建 WSL 配置文件
- 在 PowerShell 提示符下,继续(如果出现错误,则需要以管理员方式打开)
cd ~ New-Item .wslconfig .\.wslconfig- 选择文本编辑器以打开文件
- 如果你忘记了你的虚拟交换机的名称,请在PowerShell中运行以下命令:
Get-VMSwitch -SwitchType External | Select Name, SwitchType, NetAdapterInterfaceDescription, AllowManagementOS- 我的电脑输出示例:
Get-VMSwitch -SwitchType External | Select Name, SwitchType, NetAdapterInterfaceDescription, AllowManagementOSName SwitchType NetAdapterInterfaceDescription AllowManagementOS ---- ---------- ------------------------------ ----------------- WSL_external External Killer(R) Wi-Fi 6 AX1650x 160MHz Wireless Network Adapter (200NGW) True- 现在像这样添加到您的文件文本中:
.wslconfig
[wsl2] networkingMode=bridged vmSwitch=WSL_external
注意,.wslconfig文件的名称一定不能错误,否则可能导致配置不生效
当然还可以在配置文件中指定分配的cpu核数和内存大小等,详细信息请见官方文档
WSL 中的高级设置配置 | Microsoft Learn
启动wsl
- 执行
wsl即可启动,若系统安装了多个发行版,则需要指定发行版的名称,如wsl -d Ubuntu - 检查网络,在终端中输入
ifconfig检查IP地址是否和Windows在同一网网段中 - 新开一个cmd窗口,输入
ping xx.xx.xx.xx其中xx.xx.xx.xx为上述命令显示的ip地址,例如192.168.1.6,检查是否能够正常连接 - 关闭Linux子系统并重新启动,它应该保持相同的ip地址
exit
wsl --shutdown
wsl
ifconfig
四、设置Windows开机自启动Linux子系统服务
- 进入需要自启动服务的wsl发行版中,创建并编辑
/etc/init.wsl文件
sudo vim /etc/init.wsl #执行命令创建并打开文件
#输入以下内容
#! /bin/sh
/etc/init.d/ssh $1
#保存并退出
在文件中,我们启动了ssh服务,如果需要启动其他服务也可以添加到文件中,一行启动一个服务
-
赋予文件可执行权限
sudo chmod +x /etc/init.wsl -
使用
sudo /etc/init.wsl [start|stop|restart]来验证是否能正常执行,例如
sudo /etc/init.wsl start #启动服务
sudo /etc/init.wsl stop #停止服务
sudo /etc/init.wsl restart #重启服务
-
在Windows中设置开机启动,开始-运行,输入
shell:startup-
在打开的文件夹中新建vsb文件,如
wsl.vbs,输入以下内容 -
Set ws = CreateObject("Wscript.Shell") ws.run "wsl -d xxx -u root /etc/init.wsl start", vbhide #注意,xxx需要替换为你安装的wsl发行版名称,如Ubuntu-20.04
-
-
保存,重启电脑,不出意外ssh服务已经启动起来了
五、挂载物理磁盘
先决条件
你需要Windows 11版本 22000 或更高版本,或者运行 WSL 的 Microsoft Store 版本。 若要检查 WSL 和 Windows 版本,请使用 命令:wsl.exe --version
挂载未分区磁盘
-
标识磁盘 - 要列出 Windows 中的可用磁盘,使用PowerShell请运行:
GET-CimInstance -query "SELECT * from Win32_DiskDrive"磁盘路径位于“DeviceID”列下。 通常采用
\\.\PHYSICALDRIVE*格式。 -
装载磁盘 - 使用 PowerShell,可以使用上面发现的磁盘路径装载磁盘,请运行:
wsl --mount <DiskPath> #DiskPath为第一步标识出来的磁盘路径,例如wsl --mount \\.\PHYSICALDRIVE0
挂载分区磁盘
-
标识磁盘 - 要列出 Windows 中的可用磁盘,请运行:
GET-CimInstance -query "SELECT * from Win32_DiskDrive"磁盘路径列在“DeviceID”之后,通常采用
\\.\PHYSICALDRIVE*格式。 -
列出并选择要在 WSL 2 中装载的分区 - 确定磁盘后,运行:
wsl --mount <DiskPath> --bare这将使磁盘在 WSL 2 中可用。 (在我们的示例中,
<DiskPath>为\\.\PHYSICALDRIVE*。 -
附加后,可以通过在 WSL 2 中运行以下命令来列出分区:
lsblk这会显示可用的块设备及其分区。
在 Linux 中,块设备被标识为
/dev/<Device><Partition>。 例如,/dev/sdb3 是磁盘 sdb 的分区号 3。
装载所选分区
wsl --mount <DiskPath> --partition <PartitionNumber> --type <Filesystem>
#DiskPath 为磁盘标识 PartitionNumber 为分区号 Filesystem为磁盘类型
#例如 wsl --mount \\.\PHYSICALDRIVE0 --partition 1 --type ext4
其他挂载方式请查看官方文档
关于在 WSL 2 中安装 Linux 磁盘的入门 | Microsoft Learn
设置Windows开机自动挂载磁盘
挂载磁盘需要管理员权限,因此不能像自动启动服务一样,在启动菜单shell:startup中添加脚本来挂载,但是可以使用Windows任务计划程序来完成
- 新建bat脚本,例如
wsl-mont.bat放在任意位置,但需要保证不被删除,填入以下内容
wsl --mount \\.\PHYSICALDRIVE0 --partition 1 --type ext4
#这里以挂载分区磁盘举例
- 开始-搜索,任务计划程序,点击进入
- 左侧选择任务计划程序库,右侧选择创建任务
- 名称随意,描述随意,勾选不管用户是否登录都要运行、使用最高权限运行
- 点击触发器选项卡,新建-开始任务-启动时-确定
- 点击操作选项卡,新建-操作-启动程序,点击浏览,选择上述保存的脚本,点击确定
- 点击确定,计划任务创建完成
重启电脑,进入wsl发行版,即可查看到挂载的磁盘
相关文章:
Windows11安装Linux子系统,并实现服务自启动,局域网访问,磁盘挂载
Windows11安装Linux子系统,并实现服务自启动,局域网访问,磁盘挂载 一、准备工作二、安装Linux子系统(wsl2)三、为Linux子系统设置桥接网络检查wsl版本在 Hyper-V 管理器中创建虚拟交换机创建 WSL 配置文件启动wsl 四、设置Windows开机自启动L…...
【Git】保姆级详解:Git配置SSH Key(密钥和公钥)到github
博主简介:22级计算机科学与技术本科生一枚🌸博主主页:是瑶瑶子啦每日一言🌼: “当人们做不到一些事情的时候,他们会对你说你也同样不能。”——《当幸福来敲门》 克里斯加德纳 Git配置SSH Key 一、什么是Git?二、什么…...
离线环境conda虚拟环境备份迁移--conda pack问题
1.第一步:创建虚拟环境 conda create -n pyenv --clone base 或者 conda create -n pyenv python3.8.5 --offline 命令执行结束,在路径/xxxx/anaconda/envs 下看到pyenv 或者 conda info --envs 查看罗列虚拟环境 2.第二步:打包环境 conda …...
挂载 IK 分词器至 Elasticsearch Docker 容器 - Docker Docker Compose 教程
简介 本博客将讲解如何在 Docker 和 Docker-Compose 中运行 Elasticsearch,并挂载 IK 分词器。 步骤 一、快速运行Elasticsearch:8.1.3 1.首先,我们需要创建一个新的 Docker 网络:"elastic"。这个网络会提供给我们接下来所要创…...
7.6 通俗易懂解读残差网络ResNet 手撕ResNet
一.举例通俗解释ResNet思想 假设你正在学习如何骑自行车,并且想要骑到一个遥远的目的地。你可以选择直接骑到目的地,也可以选择在途中设置几个“中转站”,每个中转站都会告诉你如何朝着目的地前进。 在传统的神经网络中,就好比只…...
robotframework+selenium 进行webui页面自动化测试
robotframework其实就是一个自动化的框架,想要进行什么样的自动化测试,就需要在这框架上添加相应的库文件,而用于webui页面自动化测试的就是selenium库. 关于robotframework框架的搭建我这里就不说了,今天就给大家根据一个登录的实…...
手机突然无法获取ip地址
在日常生活中,我们对手机的依赖越来越大,尤其是在联网方面。然而,有时候我们可能会遇到手机无法获取IP地址的问题,这给我们的正常使用带来了很多不便。当我们的手机无法获得IP地址时,我们将无法连接到互联网或局域网&a…...
C++——关于命名空间
写c项目时,大家常用到的一句话就是: using namespace std; 怎么具体解析这句话呢? 命名冲突: 在c语言中,我们有变量的命名规范,如果一个变量名或者函数名和某个库里面自带的库函数或者某个关键字重名&…...
怎么进行流程图制作?用这个工具制作很方便
怎么进行流程图制作?流程图是一种非常有用的工具,可以帮助我们更好地理解和展示各种复杂的业务流程和工作流程。它可以将复杂的过程简化为易于理解的图形和文本,使得人们更容易理解和跟踪整个流程。因此,制作流程图是在日常工作中…...
【ChatGPT 指令大全】怎么使用ChatGPT来辅助学习英语
在当今全球化的社会中,英语已成为一门世界性的语言,掌握良好的英语技能对个人和职业发展至关重要。而借助人工智能的力量,ChatGPT为学习者提供了一个有价值的工具,可以在学习过程中提供即时的帮助和反馈。在本文中,我们…...
Ubuntu20配置仅主机网络
Ubuntu20配置仅主机网络,使虚拟机与物理机网络联通且配置固定IP 进入终端:vim /etc/netplan/01-network-manager-all.yaml 修改为: network:ethernets:enp0s8:addresses: [192.168.138.108/24]dhcp4: false optional: truegateway4: 192.…...
调整奇数偶数顺序
调整数组使奇数全部都位于偶数前面。 题目: 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。 思路: 1. 给定两个下标left和right&#…...
日志的规范
确定日志级别: 确保你的系统有一个明确的日志级别策略。通常,日志级别包括DEBUG,INFO,WARN,ERROR和FATAL。DEBUG级别的日志记录所有详细信息,适用于开发和调试环境。INFO级别的日志记录常规操作信息&#x…...
Spring AOP(AOP概念,组成成分,实现,原理)
目录 1. 什么是Spring AOP? 2. 为什么要用AOP? 3. AOP该怎么学习? 3.1 AOP的组成 (1)切面(Aspect) (2)连接点(join point) (3&a…...
Android WebView简单应用:构建内嵌网页浏览功能
在现代移动应用开发中,内嵌网页浏览功能是许多应用程序的常见需求。Android平台提供了WebView组件,它允许开发者将网页内容嵌入到应用中,并提供了丰富的功能和定制选项。本文将介绍如何在Android应用中使用WebView组件,帮助您快速…...
并发——乐观锁常见的两种实现方式,乐观锁的缺点
文章目录 乐观锁常见的两种实现方式1. 版本号机制2. CAS算法 乐观锁的缺点1 ABA 问题2 循环时间长开销大3 只能保证一个共享变量的原子操作 乐观锁常见的两种实现方式 乐观锁一般会使用版本号机制或CAS算法实现。 1. 版本号机制 一般是在数据表中加上一个数据版本号version字段…...
Spring 事务管理
目录 1. 事务管理 1.1. Spring框架的事务支持模型的优势 1.1.1. 全局事务 1.1.2. 本地事务 1.1.3. Spring框架的一致化编程模型 1.2. 了解Spring框架的事务抽象(Transaction Abstraction) 1.2.1. Hibernate 事务设置 1.3. 用事务同步资源 1.3.1…...
unity修改单个3D物体的重力的大小该怎么处理呢?
在Unity中修改单个3D物体的重力大小可以通过以下步骤实现: 创建一个新的C#脚本来控制重力: 首先,创建一个新的C#脚本(例如:GravityModifier.cs)并将其附加到需要修改重力的3D物体上。在脚本中,…...
[Qt]FrameLessWindow实现调整大小、移动弹窗并具有Aero效果
说明 我们知道QWidget等设置了this->setWindowFlags(Qt::FramelessWindowHint);后无法移动和调整大小,但实际项目中是需要窗口能够调整大小的。所以以实现FrameLess弹窗调整大小及移动弹窗需求,并且在Windows 10上有Aero效果。 先看一下效果…...
【API生命周期看护】API日落
一、基本概念 在API的整个生命周期中,不可能是永远不变的。功能可能有变动、服务也可能有升级迭代,这个时候对外的能力入口:API自然也需要改变。 一般来说,API的变动是不可以引入兼容性问题的,也即不管做什么变动&am…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
Python竞赛环境搭建全攻略
Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...
基于江科大stm32屏幕驱动,实现OLED多级菜单(动画效果),结构体链表实现(独创源码)
引言 在嵌入式系统中,用户界面的设计往往直接影响到用户体验。本文将以STM32微控制器和OLED显示屏为例,介绍如何实现一个多级菜单系统。该系统支持用户通过按键导航菜单,执行相应操作,并提供平滑的滚动动画效果。 本文设计了一个…...
