在 CentOS 7 系统管理中,“挂载”是一个基础且至关重要的操作,它指的是将一个存储设备(如硬盘分区、U盘、光盘或网络共享)连接到系统目录树中的一个特定点(即“挂载点”),使得用户和应用程序可以通过该目录访问设备上的文件系统,理解并熟练掌握挂载技术,是有效管理服务器存储、扩展系统功能的前提,本文将系统性地介绍在 CentOS 7 中进行挂载操作的核心知识,从临时挂载到永久配置,再到常见问题的处理。

临时挂载:快速访问存储设备
临时挂载是最直接的挂载方式,它仅在当前系统运行期间有效,重启后挂载关系会自动消失,这种方式非常适合临时访问数据或测试新设备。
操作步骤:
-
识别设备 在挂载前,首先需要确定要挂载的设备名称,可以使用
lsblk或fdisk -l命令查看系统已识别的块设备。lsblk命令以树状结构展示,更为直观。[root@centos7 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 10G 0 disk └─sdb1 8:17 0 10G 0 part
在此示例中,我们新添加了一块磁盘
/dev/sdb,它包含一个分区/dev/sdb1,这就是我们准备挂载的目标。 -
创建挂载点 挂载点是一个空目录,作为访问设备内容的入口,通常在
/mnt或/media目录下创建,也可以根据需求在任意位置创建。[root@centos7 ~]# mkdir /data
-
执行挂载命令 使用
mount命令将设备挂载到指定目录,基本语法为mount [选项] <设备文件> <挂载点>。[root@centos7 ~]# mount /dev/sdb1 /data
如果不指定文件系统类型,
mount命令会尝试自动检测,为了确保准确性,建议使用-t参数明确指定,mount -t ext4 /dev/sdb1 /data。 -
验证挂载结果 使用
df -hT命令可以查看已挂载的文件系统及其详细信息,包括设备、挂载点、总容量、已用空间、剩余空间和文件系统类型。[root@centos7 ~]# df -hT | grep sdb1 /dev/sdb1 ext4 9.8G 23M 9.2G 1% /data
至此,
/dev/sdb1分区已成功挂载到/data目录,所有对该目录的操作都会实际写入到/dev/sdb1分区中。
永久挂载:通过 /etc/fstab 实现开机自动挂载
对于需要长期使用的存储设备,每次重启后手动挂载显然不切实际,CentOS 7 通过 /etc/fstab(File System Table)文件来管理开机自动挂载的配置。
/etc/fstab 文件详解
该文件每行定义一个文件系统的挂载规则,共包含六个字段,各字段间用空格或制表符分隔。
| 字段顺序 | 字段含义 | 示例 | 说明 |
|---|---|---|---|
| 1 | <设备> 或 <UUID> |
UUID=xxxx-xxxx |
要挂载的设备,推荐使用 UUID(通用唯一标识符),因为它在设备重启或重插后不会改变,比 /dev/sdb1 这样的设备名更稳定,使用 blkid /dev/sdb1 可查询 UUID。 |
| 2 | <挂载点> |
/data |
设备挂载到的目录,对于交换分区,此处为 swap。 |
| 3 | <文件系统类型> |
ext4, xfs, nfs |
指定文件系统的类型,必须与设备格式化时的类型一致。 |
| 4 | <挂载选项> |
defaults |
挂载参数,多个参数用逗号隔开。defaults 是一个常用组合,等同于 rw, suid, dev, exec, auto, nouser, async。 |
| 5 | <dump备份> |
0 或 1 |
是否使用 dump 工具进行备份。1 表示备份,0 表示不备份,通常设为 0。 |
| 6 | <fsck检查> |
0, 1, 2 |
开机时是否使用 fsck 进行磁盘检查,根分区()应为 1,其他需要检查的分区为 2,不需要检查的为 0。 |
配置永久挂载示例:
-
获取设备 UUID
[root@centos7 ~]# blkid /dev/sdb1 /dev/sdb1: UUID="a1b2c3d4-e5f6-7890-1234-567890abcdef" TYPE="ext4" PARTUUID="..."
-
编辑
/etc/fstab文件 使用vi或nano编辑器在文件末尾添加一行配置。[root@centos7 ~]# vi /etc/fstab
UUID=a1b2c3d4-e5f6-7890-1234-567890abcdef /data ext4 defaults 0 2 -
测试配置 重要提示:在直接重启前,务必测试
/etc/fstab文件的语法是否正确,否则可能导致系统无法启动,使用mount -a命令,它会挂载fstab文件中所有尚未挂载的条目,如果没有任何输出,通常表示配置无误。[root@centos7 ~]# mount -a
再次使用
df -hT确认/data是否依然挂载,如果成功,那么下次重启时系统会自动完成挂载。
卸载文件系统
当不再需要访问某个设备时,应该将其从文件系统中卸载,使用 umount 命令。

[root@centos7 ~]# umount /data # 或者使用设备名 [root@centos7 ~]# umount /dev/sdb1
常见问题:设备正忙 如果卸载时提示 "target is busy",表示有进程正在使用该挂载点下的文件。
- 找出占用进程
使用
lsof或fuser命令查看是哪个进程在占用。[root@centos7 ~]# lsof /data # 或 [root@centos7 ~]# fuser -mv /data
- 处理占用进程
根据输出结果,可以结束相关进程(
kill <PID>),或等待其自然结束,然后再尝试卸载。 - 懒卸载
作为最后手段,可以使用
umount -l进行懒卸载,它会立即将挂载点从目录树中移除,但会等到设备不再被占用时才真正完成底层卸载操作,需谨慎使用。
相关问答 FAQs
问题1:我修改了 /etc/fstab 文件后重启,系统无法进入桌面或登录界面,该怎么办?
解答: 这通常是由于 /etc/fstab 文件中的配置错误(如设备名错误、UUID 不匹配、文件系统类型错误等)导致的,系统在启动时尝试挂载该条目失败,从而卡住,解决方法如下:
- 重启服务器,在启动引导菜单(GRUB)出现时,按
e键进入编辑模式。 - 找到以
linux16或linuxefi开头的行,将ro(只读)参数修改为rw(读写),并在行末添加init=/bin/bash。 - 按
Ctrl + X启动,系统将进入一个只有 root 权限的紧急 shell。 - shell 中,根文件系统是可读写的,使用
vi /etc/fstab命令编辑该文件,找到并注释掉(在行首加 )或删除错误的配置行。 - 保存并退出后,执行
reboot -f强制重启,系统现在应该可以正常启动了,之后,在系统内仔细检查并修正/etc/fstab的配置。
问题2:为什么我的新硬盘挂载到 /data 目录后,普通用户无法在里面创建文件或文件夹?
解答: 这是一个典型的 Linux 权限问题,当你挂载一个新文件系统时,其挂载点目录(/data)的权限和所有者默认继承自挂载操作执行者(通常是 root 用户)。/data 目录的所有者是 root,所属组是 root,其他用户默认只有读取和执行权限,没有写入权限。
解决方法:
- 修改目录权限(推荐): 使用
chown和chmod命令更改挂载点的所有者和权限,要让user1用户拥有完全控制权,可以执行:[root@centos7 ~]# chown user1:user1 /data [root@centos7 ~]# chmod 755 /data
如果希望某个用户组的所有用户都能写入,可以:
[root@centos7 ~]# chown root:developers /data [root@centos7 ~]# chmod 775 /data
- 使用挂载选项: 对于某些文件系统(如 ext4),可以在
/etc/fstab的挂载选项中指定uid和gid,但这通常用于 FAT/NTFS 等不支持 Linux 权限模型的文件系统,对于原生 Linux 文件系统,直接修改目录权限是更标准和灵活的做法。