Linux系统磁盘挂载操作及原理详解
前言:在Linux系统的日常运维与管理中,磁盘存储的配置是一项基础且关键的工作。无论是新增一块物理硬盘、扩展云服务器的云盘,还是处理分区扩容,最终都绕不开“挂载”这一核心操作——只有将磁盘分区正确挂载到系统目录树中,其存储空间才能被有效利用。
然而,挂载并非简单的“连接”操作,它涉及分区识别、文件系统格式化、挂载点设置、开机自动挂载配置等多个环节,每个步骤都有其特定的逻辑和注意事项。例如,不同文件系统(如ext4、XFS、FAT32、NTFS)适用于不同场景,格式化操作可能导致数据丢失,临时挂载与永久挂载的配置方式也截然不同。
本文将从分区创建后的状态开始,详细拆解Linux磁盘挂载的完整流程,包括内核分区表刷新、多种文件系统的格式化命令、挂载点创建、临时与永久挂载配置等实操步骤,并深入解释挂载的底层原理,帮助读者不仅“会操作”,更能“懂原理”,轻松应对各类磁盘挂载场景。
一、磁盘挂载的完整操作步骤
假设已通过fdisk等工具创建了分区(以/dev/sdc1为例,实际操作中设备名可能为/dev/vdb1等,需根据实际情况替换),后续操作如下:
1. 检测未分配磁盘
首先需要确认系统中是否存在未分配的磁盘,可通过以下命令查看磁盘及分区状态:
-
查看已挂载的磁盘使用情况
该命令会显示当前已挂载的文件系统、容量、挂载点等信息,可快速判断是否有未挂载的磁盘:df -h -
查看所有块设备(包括未挂载磁盘)
列出系统中所有磁盘(如/dev/sda、/dev/sdc)及分区信息,未分区的磁盘通常不会显示分区条目(如/dev/sdc无sdc1等子项):lsblk -
查看磁盘分区详情
显示所有磁盘的分区表信息,包括磁盘大小、分区类型等,适合确认未分配磁盘的路径(如/dev/sdc):fdisk -l
通过以上命令,若发现存在未分配的磁盘(例如路径为/dev/sdc),则可进入下一步分区操作。

二、使用fdisk创建分区
以未分配磁盘/dev/sdc为例,使用fdisk工具创建分区:
-
进入磁盘分区工具
执行以下命令开始对/dev/sdc进行分区操作:fdisk /dev/sdc -
创建新分区
在fdisk交互界面中,按以下步骤操作:- 输入
n:新建一个分区; - 输入
p:选择创建主分区(主分区最多可创建4个); - 输入
1:使用第1个主分区(默认即可); - 两次回车:默认使用全部可用空间(首次分区推荐直接使用默认值,即从起始扇区到结束扇区);
- 输入
wq:保存分区表并退出。
![image]()
- 输入
-
确认分区创建成功
执行以下命令,若能看到/dev/sdc1分区,则说明创建成功:fdisk -l /dev/sdc

1. 让内核重新读取分区表
新分区创建后,内核可能未立即更新分区信息,需手动触发扫描:
partprobe /dev/sdc # 若设备为vdb,则替换为partprobe /dev/vdb
作用:通知内核重新检测目标磁盘的分区表,确保新分区(如/dev/sdc1或/dev/vdb1)被系统识别。
2. 查看分区的文件系统类型
使用blkid命令确认分区当前的文件系统(若已有数据需保留):
blkid /dev/sdc1 # 若设备为vdb1,则替换为blkid /dev/vdb1
输出示例:
/dev/sdc1: UUID="xxxx-xxxx" TYPE="ext4"
- 若分区为新创建(无数据)或需更换文件系统,可执行格式化;
- 若文件系统兼容且数据需保留,可跳过格式化。
3. 格式化分区(按需操作,会清空数据,根据需求选择一个对应的执行)
格式化是为分区创建文件系统(如ext4、xfs等),以便系统管理文件。
格式化为ext4(常用,适合多数场景):
mkfs.ext4 /dev/sdc1 # 若设备为vdb1,则替换为mkfs.ext4 /dev/vdb1,输入y确认
格式化为XFS文件系统:
sudo mkfs.xfs /dev/vdb1 # 针对vdb1设备,输入y确认
格式化为FAT32文件系统:
sudo mkfs.vfat /dev/vdb1 # 针对vdb1设备,输入y确认
格式化为NTFS文件系统:
sudo mkfs.ntfs /dev/vdb1 # 针对vdb1设备,输入y确认
使用NTFS文件系统需要安装ntfs-3g工具:
- 在Ubuntu/Debian系统中:
sudo apt install ntfs-3g- 在Fedora/CentOS系统中:
sudo dnf install ntfs-3g
4. 创建挂载点
挂载点是系统中用于访问分区的目录,需手动创建:
mkdir -p /mnt/sdc # 可根据实际需求命名,如/mnt/vdb
-p参数:确保父目录不存在时自动创建(如/mnt不存在则一并创建)。
5. 临时挂载分区
通过mount命令将分区与挂载点关联:
mount /dev/sdc1 /mnt/sdc # 若为vdb1,则替换为mount /dev/vdb1 /mnt/vdb

作用:使目标分区的内容可通过挂载点目录访问。
6. 验证挂载是否成功
查看挂载状态:
df -h
输出示例(确认分区挂载到对应目录):
Filesystem Size Used Avail Use% Mounted on
/dev/vdb1 40G 20M 38G 1% /mnt/vdb
测试读写功能(可选):
touch /mnt/sdc/test.txt # 若为vdb挂载点,则替换为touch /mnt/vdb/test.txt
ls /mnt/sdc # 查看文件是否存在(显示test.txt则正常)
rm /mnt/sdc/test.txt # 清理测试文件
7. 设置开机自动挂载
临时挂载在系统重启后会失效,需配置/etc/fstab文件实现自动挂载:
步骤1:获取分区的UUID(推荐用UUID而非设备名,更稳定)
blkid /dev/sdc1 # 若为vdb1,则替换为blkid /dev/vdb1,记录输出中的UUID值
步骤2:编辑/etc/fstab文件
vim /etc/fstab
在文件末尾添加如下内容(以ext4为例,实际需根据文件系统类型调整):
UUID=xxxx-xxxx /mnt/sdc ext4 defaults 0 0
- 字段含义:
UUID=xxxx-xxxx:分区的唯一标识(避免设备名变化导致挂载失败);/mnt/sdc:挂载点目录(如为vdb则对应/mnt/vdb);ext4:文件系统类型(根据实际格式化为的类型填写,如xfs、vfat、ntfs等);defaults:默认挂载选项(如可读可写、允许用户访问等);- 第一个
0:不启用dump备份功能; - 第二个
0:开机时不优先检查该分区(1为优先检查)。
步骤3:验证fstab配置
mount -a # 加载fstab中的所有配置,无报错则正常

二、磁盘挂载的核心原理
1. 什么是挂载?
挂载是将磁盘分区与系统目录(挂载点) 关联的过程。Linux系统以“目录树”结构管理文件,所有设备(包括磁盘)必须通过挂载点接入目录树,才能被访问。
- 比喻:分区是“存储容器”,挂载点是“容器的入口”,挂载操作就是“给容器装上门”。
2. 文件系统的作用
文件系统是分区内管理文件的规则(如文件如何存储、命名、权限控制等)。常见的Linux文件系统有ext4(兼容性好)、xfs(高性能)、btrfs(支持快照)等;此外还有跨系统兼容的FAT32(支持Windows和Linux,但单文件大小限制4GB)、NTFS(Windows常用,需通过ntfs-3g在Linux中支持)等。
- 格式化操作的本质:在分区内建立文件系统的元数据(如inode、块索引等),使系统能按规则读写数据。
3. 内核与挂载的关系
- 内核是挂载的“管理者”:
partprobe命令通知内核更新分区表,mount命令通过内核将分区与挂载点关联。 - 内核通过
/proc/mounts文件实时记录挂载信息(可通过cat /proc/mounts查看)。
4. /etc/fstab的作用
/etc/fstab是系统启动时的“挂载配置清单”,内核会根据其中的规则自动挂载分区。使用UUID而非设备名(如/dev/sdc1或/dev/vdb1)的原因是:设备名可能因磁盘插拔顺序变化(如重启后sdc变为sdd、vdb变为vdc),而UUID是分区的唯一标识,更稳定。
总结
Linux磁盘挂载的核心流程是:识别分区→创建文件系统→关联挂载点→配置自动挂载。理解这一过程不仅能完成磁盘配置,更能深入掌握Linux“一切皆文件”的设计理念——通过目录树统一管理硬件设备,使复杂的存储资源以简单的文件路径形式被访问。



浙公网安备 33010602011771号