做设计的兼职网站/网页设计首页
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…...

PHP 使用ThinkPHP实现电子邮件发送示例
文章目录 首先我们需要设置我们的邮箱客户端授权,获取到授权码找到我们的邮箱设置去账号中找到这一堆服务,找到后开启smtp服务开启服务后管理服务 接下来需要去下载相应的第三方类库(我这里使用的是PHPMailer)在thinkPHP中封装一下邮件服务类实际调用效果…...

Leetcode-每日一题【剑指 Offer 18. 删除链表的节点】
题目 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 注意:此题对比原题有改动 示例 1: 输入: head [4,5,1,9], val 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调…...

[LINUX使用] top 命令的使用
COLUMNS150 LINES100 top 序号 是否为启动命令 命令模板 详解 1 no vh 帮助 2 yes -d 0.01 0.01秒的间隔刷新top输出 3 no c COMMAND列切换 4 yes -e [k | m | g | t | p] 以何种计量单位显示内存列 k-kb,m-mb,g-gb,t-t…...

通过redis进行缓存分页,通过SCAN扫描进行缓存更新
问题:当我们要添加缓存时,如果我们用了PageHelper时,PageHelper只会对查询语句有效(使用到sql的查询),那么如果我们把查询到的数据都添加到缓存时,就会无法进行分页; 此时我们选择将…...

C#小轮子 Debug,Release,发布模式如何运行不同的代码
文章目录 前言C#运行模式运行模式介绍三种模式区分代码 前言 编译模式和发布模式的代码不一样是非常正常的。比较常见的是数据库不一样。编译测试数据库和发布真实的数据库地址不一样。 C#运行模式 运行模式介绍 运行模式有三种: Debug 不进行优化,…...

【【萌新的STM32 学习-6】】
萌新的STM32 学习-6 BSP 文件夹,用于存放正点原子提供的板级支持包驱动代码,如:LED、蜂鸣器、按键等。 本章我们暂时用不到该文件夹,不过可以先建好备用。 CMSIS 文件夹,用于存放 CMSIS 底层代码(ARM 和 ST…...

“深入解析JVM:探索Java虚拟机的工作原理“
标题:深入解析JVM:探索Java虚拟机的工作原理 摘要:本文将深入解析Java虚拟机(JVM)的工作原理,从字节码到执行过程,从内存模型到垃圾回收机制,逐步剖析JVM的核心组成部分和工作原理。…...

【目标检测系列】YOLOV2解读
为更好理解YOLOv2模型,请先移步,了解YOLOv1后才能更好的理解YOLOv2所做的改进。 前情回顾:【目标检测系列】YOLOV1解读_怀逸%的博客-CSDN博客 背景 通用的目标检测应该具备快速、准确且能过识别各种各样的目标的特点。自从引入神经网络以来&a…...

【深入浅出程序设计竞赛(基础篇)第一章 算法小白从0开始】
深入浅出程序设计竞赛(基础篇)第一章 算法小白从0开始 第一章 例题例1-1例1-2例1-3例1-4例1-5例1-6例1-7例1-8例1-9例1-10例1-11 第一章 课后习题1-11-21-31-4 第一章 例题 例1-1 #include<iostream> using namespace std;int main(){cout <&…...

openGauss学习笔记-36 openGauss 高级数据管理-TRUNCATE TABLE语句
文章目录 openGauss学习笔记-36 openGauss 高级数据管理-TRUNCATE TABLE语句36.1 语法格式36.2 参数说明36.3 示例 openGauss学习笔记-36 openGauss 高级数据管理-TRUNCATE TABLE语句 清理表数据,TRUNCATE TABLE用于删除表的数据,但不删除表结构。也可以…...