【磁盘与文件系统】

一、硬盘物理结构

层级 说明 补充细节
磁盘(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命令用于手动挂载。
相关推荐
Ivanqhz42 分钟前
SVD++算法
java·服务器·网络·深度学习·神经网络
迪康Defender3 小时前
终端安全实战:如何高效解决企业U盘泄密与管控难题
运维·网络·安全·web安全·终端安全管理
网安小学生(兼顾数据库版)3 小时前
固件+软件供应链:ONEKEY+Mend如何实现全链路安全覆盖
网络·安全·web安全
学习中的码虫4 小时前
网络编程5
服务器·网络
GPU实战笔记5 小时前
本地跑不动 llama.cpp,临时租云 GPU 怎么搭?从启动服务到环境复用
java·服务器·网络·人工智能·深度学习·llama
发量惊人的中年网工5 小时前
2026年DDoS防护方案怎么选?从攻击响应、清洗位置到成本账单,解析全球高防方案
大数据·网络·安全·ddos
黄昏回响7 小时前
软件工程基础知识(五):软件测试详解(下篇)——现代测试实践与论文指导
网络·其他·软件工程·改行学it
万联WANFLOW8 小时前
网络排障:如何从延迟、丢包、带宽定位海外访问异常
网络·架构·业界资讯
zzzyyy5389 小时前
TCP 协议学习笔记:从报文格式到异常处理
linux·网络
心易行者9 小时前
Python在线运行+SQLite数据库实战:0成本搭个人数据后台,5个场景直接套用
前端·网络·人工智能·python