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…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
