资讯动态

Linux 学习笔记(二十三):深入 Ext 文件系统(下)—— 原理、缓存与软硬链接

发布时间:2026/10/24 2:29:08 来源:尧图企业网站定制
一、 Ext2 文件系统的内部构造Ext2 文件系统将磁盘分区划分为多个块组Block Group。每个块组内包含超级块Super Block记录整个文件系统的结构信息大小、空闲数量至关重要。inode 位图 Block 位图用 0 和 1 标记 inode 和数据块是否被占用极大提高了寻找空闲空间的效率。inode 表所有 inode 的集合。数据块Data Blocks真正存文件内容的地方。二、 inode 如何找到海量数据inode 内部有 15 个指针i_block前 12 个指向直接数据块。第 13、14、15 个分别指向一级间接、二级间接、三级间接索引块。通过层层指针即使是几个 GB 的超大文件也能被精确定位。三、 极速寻路dentry 路径缓存为什么在 Linux 里找文件那么快因为内核在内存中维护了一棵树struct dentry。当你打开过一次文件后路径的树形结构就被缓存了。下次访问直接走内存无需再从磁盘读取极大提升了路径解析效率。四、 灵魂考点软链接 vs 硬链接(插入ls -li测试软硬链接的截图)硬链接ln 源文件 新文件本质是给同一个 inode 起了个别名它们共用同一份数据。创建后inode 的链接数Links会 1。删除源文件不影响硬链接只要链接数不为0即可。不能跨分区不能为目录创建。软链接ln -s 源文件 新文件相当于 Windows 的快捷方式。它是一个独立的文件有自己全新的 inode文件内容仅仅是指向源文件的路径。如果删除了源文件软链接依然存在但会变成“死链接”无法访问。总结Ext 文件系统的设计极其精妙通过位图快速分配空间通过多级索引支持大文件通过 inode 隔离属性与数据。而在日常使用中软链接常用于版本管理如 python2 / python3 的快捷映射硬链接常用于文件备份以节省空间。自我实战操作实战 1硬链接测试cd ~/linux_study/io_test # 1. 准备一个源文件 echo This is original content original.txt # 2. 创建硬链接 ln original.txt hard.txt # 3. 观察 inode、链接数Links ls -li original.txt hard.txt现象两个文件的 inode 号一模一样最前面的Links计数变成了 2。而且你修改hard.txtoriginal.txt也会跟着变因为它们本来就是同一个文件。实战 2软链接测试# 1. 创建软链接注意加 -s ln -s original.txt soft.txt # 2. 观察 ls -li original.txt soft.txt现象soft.txt的 inode 号和原文件不一样而且它是一个l类型的文件lrwxrwxrwx大小很小因为它只存了路径。实战 3删除源文件看谁怕谁# 1. 删掉源文件 rm original.txt # 2. 查看硬链接和软链接的状态 cat hard.txt # 依然能看因为硬链接还有一个名字指向数据 cat soft.txt # 报错No such file or directory 软链接变成了死链接 ls -l soft.txt # 变成了红底白字终端通常会有颜色 # 3. 清理现场 rm hard.txt soft.txt(注文档里的mount挂载实验在云服务器上直接操作有风险咱们留在以后讲文件系统扩容时再玩。知道它是“把分区关联到指定目录”即可。)

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑