【Linux系统】分区挂载

我们能够根据一个 inode 号在指定分区寻找目标文件的 struct inode,也能根据目录文件的内容,通过映射关系,找指定的 inode,可是,现在有个问题:
问题:inode 是不能跨分区使用的!Linux不是可以有多个分区吗?我怎么知道我当前在哪一个分区?
这就涉及到分区挂载问题!
查看系统分区情况
利用命令查询当前系统的分区情况:
命令 ls /dev/vda* :查看当前 Linux 系统中的所有磁盘分区

命令 df -h:用于显示文件系统的磁盘空间使用情况。
- 这里的
-h选项表示以“人类可读”的格式输出信息 - 显示出系统中每个已挂载的文件系统的总空间、已使用的空间、剩余的空间以及这些文件系统被挂载的位置。

图中的 tmpfs 是临时文件系统,暂时不用理会
我们只需关心像 /dev/vda3 这样的文件系统分区
你可以看到/dev/vda3 条目中显示 Mounted on 挂载着 / 根目录
到这里可能还不怎么明白,先继续向下看
做个小实验:我们自己创建一个分区!
(1)创建一个大空间文件
命令 dd if=/dev/zero of=./disk.iso bs=1M count=5 :
if=/dev/zero:指定输入文件为/dev/zero,这是一个特殊的文件,可以无限提供零值的数据。of=./disk.iso:指定输出文件为当前目录下的disk.iso文件。bs=1M:设置每次读写操作的数据块大小为 1MB。count=5:指定要复制的数据块数量为 5 个。
整条命令的意思是从 /dev/zero 中读取数据,每次读取 1MB,总共读取 5 次,然后将这些数据写入到名为 disk.iso 的文件中。因此,最终会在当前目录下创建一个大小为 5MB 的全零文件 disk.iso。
这种命令常用于创建空的文件或测试文件
不用记住本命令如何写,只要知道该命令最终为我们创建了一个 大小为 5MB 的全零文件!
(2)写入文件系统
向上面的那个新建文件,写入文件系统
命令 mkfs.ext + 双击tab:查询当前Linux系统中支持的文件系统类型

命令 mkfs.ext4 disk.iso 向文件写 disk.iso 入文件系统 ext4

到这一步相当于我们有了一个小的分区: disk.iso
但该分区现在还使用不了
还需将这个 “磁盘” 挂载到系统目录下
(3)创建目录
命令 sudo mkdir /mnt/myvda2 :在该目录下创建目录文件 myvda2
意思是准备将我们前面创建的分区挂载到该目录下

(4)将“虚拟”磁盘分区挂载到目录下
命令 sudo mount -t ext4 ./disk.iso /mnt/myvda2
本条命令的意思是:
mount :挂载
-t ext4 :指明文件系统类型 -t ,为 ext4
./disk.iso /mnt/myvda2 :将分区 ./disk.iso ,挂载到指定路径 /mnt/myvda2 下

(5)实验一下
我们 cd 到该文件目录下,即进入该分区内:cd /mnt/myvda2
我们在该目录下创建一个文件,就是在该虚拟磁盘分区中创建

实际上我们进入的并不是 /mnt/myvda2 ,而是该目录下挂载的虚拟磁盘分区:disk.iso。
(6)卸载虚拟分区
命令 sudo umount /mnt/myvda2 :解除挂载
它提示这个卸载目标是忙的,因为当前用户处在这个目录下

因此需要先退出来再卸载,就能发现消失了

那我们能不能通过这个方式,卸载掉根目录挂载的磁盘分区呢?
卸载一个路径挂载分区,必须退出该分区所挂载的目录路径
逻辑上做不到卸载掉根目录挂载的磁盘分区,因为我们无论如何都一定处在根目录下,因此这个模块肯定不能通过这个方式卸载
(7)总结
每一个数据分区需要挂载到一个具体的目录下才能被访问和使用。当一个分区被挂载到某个目录后,该目录就成为了该分区的挂载点。从这时起,所有对该挂载点及其子目录的操作实际上都是对这个分区的操作。
具体来说,如果你将一个数据分区挂载到了 /mnt/myvda2/ 这个目录下,那么:
- 你创建的所有文件和目录都将存储在这个分区上。
- 访问这些文件和目录时,必须通过挂载点
/mnt/myvda2/开始指定路径。
例如,如果你在这个分区上创建了一个名为 test1 的目录,然后再在这个目录下创建了一个名为 test2 的子目录,那么这个子目录的完整路径将会是 /mnt/myvda2/test1/test2。
/mnt/myvda2/是挂载点提供的路径部分。test1/test2是在分区内部创建的路径部分。
这样的设计使得多个不同的物理存储设备可以通过统一的文件系统层次结构(文件系统层次结构是指整个系统的目录树结构)来访问,用户无需关心文件实际存储在哪个物理设备上,只需要通过标准的路径来访问即可。
- 根目录(
/):整个文件系统层次结构的起点。所有其他的目录和文件都是从根目录开始的。 - 挂载点:一个分区或外部存储设备被挂载到现有目录树中的某个特定目录上,这个目录就称为挂载点。挂载点之后的所有文件和目录都属于这个分区。
- 统一的命名空间:无论文件实际存储在哪个物理设备上,用户都可以通过一个统一的路径来访问它们。这意味着用户不需要知道文件的具体存储位置,只需知道路径即可。
(8)回答最开始的问题
你怎么确认你在哪一个分区里面???
实际上你在某个挂载了数据分区的目录下,这个目录就是挂载点
所有对该挂载点及其子目录的操作实际上都是对这个分区的操作
只要我们在这个目录下了,其实就已经处于该分区中操作了!
而访问操作一个文件必须通过唯一路径访问,而路径的前缀不就是该数据分区挂载点的路径吗!,不就自动直接进入了该分区中进行操作吗!!!!
我们所有的文件操作都是在根目录的基础下操作的
表示我们就已经进入了挂载到根目录的 /dev/vda3 磁盘分区中,进行操作了!!!

(9)衍生问题
既然根目录挂载了 /dev/vda3 的磁盘分区
既然在根目录中做的所有操作,实际上都是 /dev/vda3 的磁盘分区中进行的操作,是不是说明我在基于根目录的目录 /mnt/myvda/ 下挂载的一个新数据分区,实际上也存储在/dev/vda3 的磁盘分区中,该数据分区也在 /dev/vda3 的磁盘分区中操作??
并不是的,挂载点具有独立性
当一个目录被挂载到另一个分区时,所有对该目录及其子目录的操作都会在被挂载的分区上进行,而不是在原本的分区上。而挂载点的上级路径仍然在原本的分区中进行操作:
例如:在/mnt/myvda/ 下挂载一个新数据分区,则该目录及其子目录的操作都会在挂载的新数据分区中进行,而挂载点的上级路径仍然在原本的分区中进行(即 /mnt 下的操作还是在原本的分区中)
总结:无论你当前路径属于谁,只要我另外挂载新的分区,则我这个目录就指向新的分区了,独立出去操作了
而我们将分区一挂载到根目录,我们在根目录下又创建几个新目录,用于挂载新分区
不妨碍我们从根目录下开始解析路径,只是解析路径到一个挂载了新分区的目录,则自动进入到这个新分区中继续进行操作,这个解析路径换分区过程实际上是不同目录挂载不同分区,只是跳转到不同的存储分区中继续进行操作罢了

解析路径的过程
- 从根目录开始解析:
- 路径从根目录
/开始。 - 系统依次查找
/test1,/test2, 和/test3目录。
- 路径从根目录
- 遇到挂载点:
- 发现
/test3是一个挂载点,挂载了/dev/vda2分区。 - 系统自动跳转到
/dev/vda2分区中继续解析路径。
- 发现
- 在新分区中继续解析:
- 在
/dev/vda2分区中查找03.txt文件。 - 最终找到并操作
/test3/03.txt文件。
- 在
理论总结
- 共用同一套文件层次路径:虽然所有的目录和文件共享相同的路径层次结构,但实际存储位置取决于它们所在的分区。
- 不影响路径指向不同的分区:即使路径看起来相同,由于挂载点的存在,某些路径可能指向不同的物理分区
相关文章:
【Linux系统】分区挂载
我们能够根据一个 inode 号在指定分区寻找目标文件的 struct inode,也能根据目录文件的内容,通过映射关系,找指定的 inode,可是,现在有个问题: 问题:inode 是不能跨分区使用的!Linu…...
Oracle 可观测最佳实践
简介 Oracle 数据库是一种广泛使用的商业关系数据库管理系统(RDBMS),由甲骨文公司(Oracle Corporation)开发。它支持 SQL 语言,能够存储和管理大量数据,并提供高级数据管理功能,如数…...
Ubuntu本地部署网站
目录 1.介绍 2.安装apache 3.网页升级 1.介绍 网站其实就相当于一个文件夹,用域名访问一个网页,就相当于访问了一台电脑的某一个文件夹,在网页中看见的视频,视频和音乐其实就是文件夹里面的文件。为什么网页看起来不像电脑文件夹…...
图数据库 | 18、高可用分布式设计(中)
上文我们聊了在设计高性能、高可用图数据库的时候,从单实例、单节点出发,一般有3种架构演进选项:主备高可用,今天我们具体讲讲分布式共识,以及大规模水平分布式。 主备高可用、分布式共识、大规模水平分布式ÿ…...
Java 读取 Windows 设备的唯一性标识及定位
在 Windows 系统中,获取设备唯一性标识及定位信息对设备管理、安全监控等场景意义重大。本文介绍 Java 中几种实现方法,如 JNA 库、WMI4Java 库及通过 JNI 结合 Windows API。 1. 使用 JNA 库读取 DEVPKEY_Device_ContainerId 在 Windows 系统中&…...
Spring boot框架下的RabbitMQ消息中间件
1. RabbitMQ 基础概念 1.1 消息处理流程与组件配合 Producer(生产者) 发送消息。消息先发送到 Exchange(交换机),而不是直接到队列。Exchange(交换机) 接收到消息后,根据 Routing …...
1 行命令引发的 Go 应用崩溃
一、前言 不久前,阿里云 ARMS 团队、编译器团队、MSE 团队携手合作,共同发布并开源了 Go 语言的编译时自动插桩技术。该技术以其零侵入的特性,为 Go 应用提供了与 Java 监控能力相媲美的解决方案。开发者只需将 go build 替换为新编译命令 o…...
ScratchLLMStepByStep:训练自己的Tokenizer
1. 引言 分词器是每个大语言模型必不可少的组件,但每个大语言模型的分词器几乎都不相同。如果要训练自己的分词器,可以使用huggingface的tokenizers框架,tokenizers包含以下主要组件: Tokenizer: 分词器的核心组件,定…...
G1原理—10.如何优化G1中的FGC
大纲 1.G1的FGC可以优化的点 2.一个bug导致的FGC(Kafka发送重试 subList导致List越来越大) 3.为什么G1的FGC比ParNew CMS要更严重 4.FGC的一些参数及优化思路 1.G1的FGC可以优化的点 (1)FGC的基本原理 (2)遇到FGC应该怎么处理 (3)应该如何操作来规避FGC (4)应该如何操…...
Java基础——概念和常识(语言特点、JVM、JDK、JRE、AOT/JIT等介绍)
我是一个计算机专业研0的学生卡蒙Camel🐫🐫🐫(刚保研) 记录每天学习过程(主要学习Java、python、人工智能),总结知识点(内容来自:自我总结网上借鉴࿰…...
2025.1.16——三、supersqli 绕过|堆叠注入|handler查询法|预编译绕过法|修改原查询法
题目来源:攻防世界supersqli 目录 一、打开靶机,整理已知信息 二、sqlmap解题 step 1:爆数据库 step 2:爆表 二、手工注入解题 step 1:判断注入类型 step 2:判断字段数 step 3:查询数据…...
浅谈计算机网络03 | 现代网络组成
现代网络组成 一 、网络生态体系1.1网络生态系统的多元主体1.2 网络接入设施的多样类型 二、现代网络的典型体系结构解析三、高速网络技术3.1 以太网技术3.2 Wi-Fi技术的深度剖析3.2.1 应用场景的多元覆盖3.2.2 标准升级与性能提升 3.3 4G/5G蜂窝网的技术演进3.3.1 蜂窝技术的代…...
Red Hat8:搭建FTP服务器
目录 一、匿名FTP访问 1、新建挂载文件 2、挂载 3、关闭防火墙 4、搭建yum源 5、安装VSFTPD 6、 打开配置文件 7、设置配置文件如下几个参数 8、重启vsftpd服务 9、进入图形化界面配置网络 10、查看IP地址 11、安装ftp服务 12、遇到拒绝连接 13、测试 二、本地…...
EWM 批次管理 / Batch Management
目录 1 简介 2 业务数据 2.1 基于 PO,创建 ERP LE - Delivery 内向交货单,同时同步到 EWM 内向交货单 2.2 在 EWM 内向交货单,创建批次。EWM 批次创建的前提条件来自于物料主数据批次分类(023)。SAP 提供的标准条件…...
Java 面试题 - ArrayList 和 LinkedList 的区别,哪个集合是线程安全的?
Java 面试题 - ArrayList 和 LinkedList 的区别,哪个集合是线程安全的? 在 Java 开发中,ArrayList和LinkedList是两个常用的集合类,它们在数据结构和性能上有诸多不同,同时线程安全性也各有特点。深入理解这些差异&am…...
初学SpringBoot
目录 什么是SpringBoot 使用 Spring Boot有什么好处 Spring Boot 特点 在线构建 IntelliJ IDEA在线模板构建 IntelliJ IDEA 通maven项目构建 SpringBoot的常用配置 入口类和相关注解 定制Banner 修改banner图标 关闭banner 常规属性修改 tomcat端口号修改 常规属性…...
【网络云SRE运维开发】2025第3周-每日【2025/01/15】小测-【第14章ospf高级配置】理论和实操解析
文章目录 14.1 选择题解题思路和参考答案14.2 理论题解题思路和参考答案14.3 实操题解题思路和参考答案思科(Cisco)设备华为(Huawei)设备小米/锐捷(或其他支持标准CLI命令的设备)通过网络管理工具注意事项 …...
AWS S3 跨账户访问 Cross Account Access
进入S3对应的存储桶,上面选项选权限,存储桶策略 -- 编辑,输入对应的policy。 完全控制,包含上传删除权限,policy如下: {"Version": "2012-10-17","Statement": [{"Si…...
Ubuntu20.4和docker终端指令、安装Go环境、安装搜狗输入法、安装WPS2019:保姆级图文详解
目录 前言1、docker、node、curl版本查看终端命令1.1、查看docker版本1.2、查看node.js版本1.3、查看curl版本1.4、Ubuntu安装curl1.5、Ubuntu终端保存命令 2、安装docker-compose、Go语言2.1、安装docker-compose2.2、go语言安装步骤2.3、git版本查看 3、Ubuntu20.4安装搜狗输…...
Kotlin语言的正则表达式
Kotlin语言中的正则表达式 引言 正则表达式(Regular Expression,简称Regex)是一种用于匹配字符串中字符组合的工具。在数据处理、文本解析等领域,正则表达式以其强大的字符串处理能力得到了广泛的应用。而Kotlin作为一种现代的编…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...
渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...
