【磁盘与文件系统】

一、硬盘物理结构

层级 说明 补充细节
磁盘(Disk) 由多个 盘片(platter) 构成,每个盘片有两面可读写 盘片材质多为铝合金/玻璃,表面覆盖磁性涂层;硬盘有主轴带动盘片高速旋转(5400/7200/15000转/分钟)
磁道(Track) 盘面上同心圆轨迹,每条轨迹存储一圈数据 所有盘片同一半径的磁道组成柱面(Cylinder),是分区/格式化的重要单位
扇区(Sector) 磁道被划分为多个扇区,每个扇区通常 512B 或 4KB 扇区是磁盘物理读写的最小单位;硬盘出厂会预留备用扇区用于替换坏扇区
块(Block) 文件系统管理的最小单位,通常由若干个扇区组成(例如 4KB) 块大小可在格式化时指定(如 1KB/2KB/4KB/8KB);文件大小不足1块时,剩余空间浪费
文件(File) 由若干个块组成的逻辑数据单元 文件元数据(权限、大小、修改时间等)不存于数据块,而是存在inode

二、文件系统索引结构补充

1. 核心索引结构详解
文件系统 索引方式 特点 补充说明 & 适用场景
FAT32 链表结构 简单,但随机访问慢 无inode;通过FAT表记录块的链表关系;最大支持4GB单个文件、2TB分区;多用于U盘/老旧系统
Ext2/Ext3 索引节点(inode)+ 间接块 适中,树形层次有限 inode含12个直接块 + 1个一级间接 + 1个二级间接 + 1个三级间接;Ext3新增日志(Journal)
Ext4/XFS/Btrfs B+树结构(extent-based) 支持大文件、高性能 Extent(扩展区):直接记录连续块范围(如1-100块),减少索引开销;XFS适合大容量存储(16EB)
2. inode 核心概念(Ext系列关键)
  • inode 是什么 :每个文件对应唯一inode(索引节点),存储文件元数据(权限、所有者、大小、块映射关系等),不含文件名
  • 文件名存储位置 :文件名存于目录的目录项(dentry) 中,目录项是"文件名 → inode号"的映射表
  • inode 大小:默认128/256字节,格式化时可指定;一个分区的inode数量在格式化时固定,耗尽后无法创建新文件(即使有剩余空间)

三、磁盘分区补充

1. 分区类型
分区类型 说明 示例
主分区 一块磁盘最多4个主分区;可直接格式化并挂载使用 /dev/sda1、/dev/sda2
扩展分区 属于特殊主分区;仅作为容器,内部可划分多个逻辑分区;一块磁盘仅1个 /dev/sda4
逻辑分区 扩展分区内的分区;数量无上限(受系统限制) /dev/sda5、/dev/sda6
2. 分区标识(文件系统类型)

常见分区文件系统标识:

  • Linux 常用:Ext4(默认)、XFS(高性能)、Btrfs(新一代)、swap(交换分区)
  • Windows 常用:NTFS、FAT32
  • 通用:exFAT(支持4GB+文件,跨系统)
3. LVM (逻辑卷管理)

LVM 核心组件(从底层到上层):

复制代码
物理磁盘/分区(PV) → 卷组(VG) → 逻辑卷(LV) → 格式化文件系统 → 挂载使用
  • 优势
    1. 动态调整逻辑卷大小(无需卸载,如lvextend/lvreduce)
    2. 跨磁盘合并空间(将多个物理盘合并为一个VG)
    3. 快照(snapshot):快速备份/恢复逻辑卷
4. 常见分区命名规则
设备类型 命名格式 示例 说明
物理硬盘(SATA/SCSI) /dev/sda-z数字 /dev/sda1、/dev/sdb3 a/b/c代表磁盘序号,数字代表分区号
虚拟化硬盘 /dev/vda-z数字 /dev/vda1、/dev/vdb2 KVM/Xen虚拟化环境常用
NVMe 固态硬盘 /dev/nvme数字n数字p数字 /dev/nvme0n1p1 0代表控制器,1代表磁盘,1代表分区
LVM 逻辑卷 /dev/卷组名/逻辑卷名 /dev/ubuntu-vg/root 自定义命名

四、挂载(Mount)补充

  1. 手动挂载命令(Linux):
bash 复制代码
# 基本格式:mount 设备路径 挂载点目录
mount /dev/sda1 /mnt/data  # 将sda1挂载到/mnt/data
mount -t ext4 /dev/sdb2 /home  # 指定文件系统类型挂载
  1. 自动挂载
    • 配置文件 /etc/fstab,格式:

      复制代码
      /dev/sda1    /mnt/data    ext4    defaults    0 0
      # 设备路径    挂载点      文件系统  挂载选项    备份标记 检测顺序
    • 生效命令:mount -a(重新加载fstab)

  2. 挂载选项 (常用):
    • defaults:默认(rw, suid, dev, exec, auto, nouser, async)
    • ro:只读挂载
    • noexec:禁止执行挂载目录内的可执行文件(安全)
    • nofail:设备不存在时不报错(适合外接设备)

总结

  1. 硬盘物理最小读写单位是扇区 ,文件系统最小管理单位是,inode 负责存储文件元数据和块映射关系;
  2. 索引结构从FAT32的链表演进到Ext4/XFS的B+树(Extent),核心是提升大文件处理和随机访问性能;
  3. 磁盘分区分主分区/扩展分区/逻辑分区,LVM可动态管理磁盘空间,是企业级Linux系统的常用方案;
  4. 挂载是将文件系统关联到目录的过程,/etc/fstab 实现自动挂载,mount命令用于手动挂载。
相关推荐
浮芷.34 分钟前
鸿蒙PC端 TTS 网络连接错误问题详解:在线/离线模式切换与网络状态管理
网络·华为·开源·harmonyos·鸿蒙·鸿蒙系统
雪度娃娃35 分钟前
ASIO异步通信——多线程模型
开发语言·网络·c++·php
luj_176841 分钟前
残熵算法:风险缓冲与效率优化的融合
c语言·开发语言·网络·经验分享·算法
Bobolink_1 小时前
多场次美区拍卖直播,网络资源调度与复用方案
网络·网络优化·网络调度·跨境直播·直播网络
时代文章1 小时前
UCX 官方文档和 InfiniBand 架构知识整理
网络·ai·性能优化
快乐肚皮1 小时前
【无标题】
服务器·网络·tcp/ip
zhangfeng11332 小时前
车载gpu 飞地 只保存密钥 不保存 权重 Orin确实有TEE安全飞地(TSEC/OP-TEE)
服务器·网络·人工智能·安全·transformer·芯片
飞Link3 小时前
【TCP\UDP与可靠传输】UDP 的“简单粗暴”和它真正适用的场景
网络·网络协议·tcp/ip·udp
weixin_520649873 小时前
通信与TCP核心知识
服务器·网络·tcp/ip
liulilittle3 小时前
我从 BBRv1 到 KCC 的思考
网络·c++·tcp/ip·计算机网络·tcp·bbr·通信