一、硬盘物理结构
| 层级 | 说明 | 补充细节 |
|---|---|---|
| 磁盘(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) → 格式化文件系统 → 挂载使用
- 优势 :
- 动态调整逻辑卷大小(无需卸载,如lvextend/lvreduce)
- 跨磁盘合并空间(将多个物理盘合并为一个VG)
- 快照(snapshot):快速备份/恢复逻辑卷
4. 常见分区命名规则
| 设备类型 | 命名格式 | 示例 | 说明 |
|---|---|---|---|
| 物理硬盘(SATA/SCSI) | /dev/sd[a-z][数字] | /dev/sda1、/dev/sdb3 | a/b/c代表磁盘序号,数字代表分区号 |
| 虚拟化硬盘 | /dev/vd[a-z][数字] | /dev/vda1、/dev/vdb2 | KVM/Xen虚拟化环境常用 |
| NVMe 固态硬盘 | /dev/nvme[数字]n[数字]p[数字] | /dev/nvme0n1p1 | 0代表控制器,1代表磁盘,1代表分区 |
| LVM 逻辑卷 | /dev/卷组名/逻辑卷名 | /dev/ubuntu-vg/root | 自定义命名 |
四、挂载(Mount)补充
- 手动挂载命令(Linux):
bash
# 基本格式:mount 设备路径 挂载点目录
mount /dev/sda1 /mnt/data # 将sda1挂载到/mnt/data
mount -t ext4 /dev/sdb2 /home # 指定文件系统类型挂载
- 自动挂载 :
-
配置文件
/etc/fstab,格式:/dev/sda1 /mnt/data ext4 defaults 0 0 # 设备路径 挂载点 文件系统 挂载选项 备份标记 检测顺序 -
生效命令:
mount -a(重新加载fstab)
-
- 挂载选项 (常用):
defaults:默认(rw, suid, dev, exec, auto, nouser, async)ro:只读挂载noexec:禁止执行挂载目录内的可执行文件(安全)nofail:设备不存在时不报错(适合外接设备)
总结
- 硬盘物理最小读写单位是扇区 ,文件系统最小管理单位是块,inode 负责存储文件元数据和块映射关系;
- 索引结构从FAT32的链表演进到Ext4/XFS的B+树(Extent),核心是提升大文件处理和随机访问性能;
- 磁盘分区分主分区/扩展分区/逻辑分区,LVM可动态管理磁盘空间,是企业级Linux系统的常用方案;
- 挂载是将文件系统关联到目录的过程,/etc/fstab 实现自动挂载,mount命令用于手动挂载。