Linux操作系统-磁盘管理
本文介绍了Linux系统中的硬盘管理与文件存储机制。主要内容包括:1)硬盘类型(机械硬盘HDD和固态硬盘SSD)的工作原理及组件;2)文件系统的inode和block结构,以及超级块的作用;3)绝对路径与相对路径的区别;4)软链接和硬链接的特性与应用;5)磁盘分区工具(fdisk、gdisk、parted)的使用方法;6)分区格式化和挂载操作。文章重点阐述了Linux文件存储原理和磁盘管理的关键技
Linux一切以文件的形式存储在磁盘上,硬盘管理对linux系统至关重要,直接影响数据的完整性及安全性,是运维工程师必备的技能之一。
一、计算机硬盘
1、机械硬盘(HDD)
机械硬盘内部由磁道、柱面、扇区、磁头等部件组成,通过移动磁头完成寻址与数据读写操作。
-
盘片(Platters):
- 盘片上有磁道,磁道上再划分扇区,
- 由铝合金或玻璃制成,表面覆盖磁性材料。
- 数据以磁信号形式存储在同心圆磁道上,单盘可叠放1–5片。
-
磁头(Read/Write Heads):
- 悬浮于盘片上方约 5–10纳米 处,通过电磁感应读写数据。
- 每面一个磁头,配合磁头臂运动。
-
主轴电机与音圈电机:
- 主轴电机驱动盘片高速旋转(常见 5400/7200 RPM)。
- 音圈电机控制磁头臂径向移动,实现精准寻道。
-
其他组件:
- 控制电路板(含缓存DRAM、主控芯片)。
- 内部常充入过滤空气或氦气,防尘减阻。
工作方式:依赖机械运动——磁头需移动到目标磁道并等待扇区旋转到位,存在寻道延迟和旋转延迟
机械盘内部结构如下图:

2、固态硬盘(SSD)
-
NAND闪存芯片:
- 核心存储介质,由浮栅晶体管构成,通过电荷状态表示二进制数据(0/1)。
- 采用3D堆叠技术,垂直堆叠可达100+层,提升容量26。
-
主控制器(Controller):
SSD的“大脑”,负责:- 错误校正(ECC)
- 垃圾回收(GC)
- 磨损均衡(Wear Leveling)
- 数据读写调度
-
DRAM缓存(可选):
- 高端SSD配备,存储FTL(闪存转换层)映射表,加速寻址8。
-
接口电路:
- 支持SATA、NVMe(PCIe)等协议,M.2或2.5英寸形态8。
工作方式:全电子化操作,无任何运动部件,数据以电信号直接读写,延迟微秒级,支持并行访问
二、硬盘inode与block
文件数据的存放包括两个部分:文件内容、权限及文件属性。
操作系统文件存放是基于文件系统,文件系统会将文件的实际内容存储到Block中,而将权限与属性等信息存放至Inode中。
在硬盘分区中,有一个超级块 (SuperBlock) ,SuperBlock会记录整个文件系统的整体信息,包括 Inode、Block 总量、使用大小、剩余大小等信息,每个 inode 与 block 都有编号对应,方便Linux系统快速定位查找文件。
- Superblock:记录文件系统的整体信息,包括inode与block的总量、使用大小、剩余大小, 以及文件系统的格式与相关信息等;
- Inode:记录文件的属性,权限,同时会记录该文件的数据所在的block编号;
- Block:存储文件的内容,如果文件超过默认Block大小,会自动占用多个Block。
因为每个 inode 与 block 都有编号,而每个文件都会占用一个 inode ,inode 内则有文件数据放置的 block 号码。如果能够找到文件的 inode,就可以找到该文件所放置数据的block号码,从而读取该文件内容。
三、绝对路径与相对路径
绝对路径:绝对路径是以根“/”路径为起始的路径,如:/usr/local/
相对路径:相对路径是与当前路径为起始的路径,如:./test1/testfile.txt ../../log/test.log
四、软链接与硬链接
硬链接:硬链接是直接再建立一个inode链接到文件放置的块领域,即进行硬连接时该文件内容没有任何变化,只是增加了一个指向这个文件的inode,并不会额外占用磁盘空间,删除文件较为安全,也叫实体链接。


软链接:软链接是建立一个独立的文件,当读取这个链接文件时,它会把读取的行为转发到该文件所链接的文件上,相当于 windows 的快捷方式,也叫字符链接。


硬链接限制:硬链接不能跨分区,因为各个分区有自己的inode table;硬链接不能做目录的硬链接。软链接没有这两个限制。
五、磁盘分区
在实际运维过程中,经常会遇到磁盘更换、添加磁盘等操作,在我们添加了一块新盘后我们要如何使用这块硬盘呢?一般需要经过磁盘分区、分区格式化、挂载分区等操作才能使用新加的磁盘。
磁盘分区主要有以下三种方式进行磁盘分区:
1、fdisk
fdisk:可以通过fdisk查看分区,创建分区、删除分区等操作。
fdisk -l 查看分区

下面添加一块磁盘进行磁盘分区演示:

添加了磁盘还没有分区
执行fdisk /dev/sdb对磁盘进行分区

b 编辑bsd disklabel;
c 切换dos兼容性标志;
d 删除一个分区;
g 创建一个新的空GPT分区表;
G 创建一个IRIX(SGI)分区表;
l 列出已知的分区类型;
m 打印帮助菜单;
n 添加一个新分区;
o 创建一个新空DOS分区表;
p 打印分区表信息;
q 退出而不保存更改;
s 创建一个新的空的Sun磁盘标签;
t 更改分区的系统ID;
u 更改显示/输入单位;
v 验证分区表;
w 将分区表写入磁盘并退出;
x 额外功能。

再次查看分区可以看到新建的一个分区

2、gdisk
gdisk工具和fdisk很类似,都是对磁盘进行分区管理的开源工具。gdisk工具很擅长处理GPT分区方式。
最小化安装的系统需要手动安装gdisk
yum install -y gdisk
使用gdisk /dev/sdc创建分区:

3、parted
parted 是 Linux 下功能强大的磁盘分区工具,支持 GPT 和 MBR 分区表,适合大容量磁盘(超过 2TB)分区。
# 确认磁盘状态
parted -l

parted创建分区可以用交互式和非交互式两种方式。
交互式创建分区:
parted /dev/sdd
mklabel gpt
mkpart primary ext4 0% 100%

非交互式创建分区:
创建GPT分区表并分区
parted /dev/sdd mklabel gpt
parted /dev/sdd mkpart primary ext4 0% 100%

parted非交互式创建分区对于通过脚本进行自动化分区非常方便。
六、磁盘格式化
对磁盘/磁盘分区进行格式化,目前磁盘较常用的格式有:ext3,ext4,xfs. 有些地方已经开始使用btrfs

mkfs.ext4 /dev/sdc1
mkfs.xfs /dev/sdd1

通过以上步骤我们做了分区,进行了分区格式化
可以使用lsblk 和blkid 分别查看磁盘分区与磁盘格式

七、磁盘挂载
磁盘经过分区、格式化后需要挂载到指定的目录才能使用其空间。
挂载方式如下:
临时挂载:
mount 分区 挂载目录

以上使用mount方式只是做临时挂载,系统重启后挂载会丢失,下面做重启后自动挂载,需要将磁盘挂载信息写入/etc/fstab文件中。
挂载信息: 磁盘分区|UUID=uuid 挂载点 分区格式 defaults 0 0
vi /etc/fstab

挂载信息写入后可以使用mount -a 验证是否可以正常挂载,如果执行mount -a 报错,需要对挂载信息进行排查,可能是相关参数写错。重启系统后发现磁盘挂载正常。

本节介绍了磁盘类型、硬盘superblock/inode/block、相对路径与绝对路径、软硬链接、磁盘分区、格式化与磁盘挂载等内容。下一节将介绍逻辑卷LVM、磁盘阵列与软RAID。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)