在Linux操作系统中,所有的存储设备、分区、网络文件系统等资源,都需要通过特定的方式关联到系统的目录结构中才能被用户访问,而mount就是实现这个关联过程的核心操作。

mount的基本定义
mount的中文含义是挂载,它是Linux系统提供的一个命令,同时也指代挂载这个操作行为。简单来说,它的作用是将一个文件系统(比如硬盘分区、U盘、光盘、网络共享目录等)关联到当前系统目录树的某一个指定目录上,这个指定的目录被称为挂载点。挂载完成之后,用户访问这个挂载点目录,就相当于访问被挂载的文件系统里的所有内容。
Linux系统的目录结构是单一的树形结构,所有的文件和目录都从根目录/开始延伸,没有像Windows系统那样的盘符概念,因此挂载是实现存储资源访问的必要方式。
mount的工作原理
当执行mount操作时,系统会完成以下几个核心步骤:
- 检查要挂载的文件系统对应的设备是否存在,并且确认文件系统的类型(比如ext4、xfs、ntfs、nfs等)
- 检查指定的挂载点目录是否存在,如果不存在需要先创建该目录
- 将设备上的文件系统与挂载点目录建立关联,系统会记录这个挂载关系
- 之后用户访问挂载点目录时,系统会自动将访问请求转发到对应的设备上,返回对应的文件数据
如果要解除这种关联关系,就需要使用umount命令执行卸载操作,卸载之后挂载点目录会恢复为普通的目录,不再关联到对应的存储设备。
常见的mount使用场景
1. 挂载本地硬盘分区
新添加的硬盘分区在Linux系统中默认不会自动关联到目录树,需要手动挂载才能使用。比如我们有一个ext4格式的硬盘分区/dev/sdb1,想要挂载到/data目录,操作如下:
# 先创建挂载点目录,如果目录已经存在可以跳过这一步 mkdir -p /data # 执行挂载操作,指定设备路径、挂载点和文件系统类型 mount -t ext4 /dev/sdb1 /data # 查看挂载是否成功 df -h | grep /data
2. 挂载U盘等移动存储设备
插入U盘后,系统一般会识别为/dev/sdc1之类的设备(具体设备名可以通过lsblk命令查看),U盘常见的是vfat或者ntfs文件系统,挂载命令如下:
# 创建挂载点 mkdir -p /mnt/usb # 挂载vfat格式的U盘 mount -t vfat /dev/sdc1 /mnt/usb # 如果是ntfs格式,需要先确认系统安装了ntfs-3g驱动,然后执行 mount -t ntfs-3g /dev/sdc1 /mnt/usb
3. 挂载网络文件系统
如果需要访问其他服务器共享的目录,也可以通过mount挂载nfs类型的网络文件系统,命令示例如下:
# 挂载远程服务器的nfs共享目录到本地/mnt/nfs目录 mount -t nfs 192.168.0.1:/share /mnt/nfs
mount的常用参数说明
mount命令有很多可选参数,常用的参数含义如下:
| 参数 | 含义说明 |
|---|---|
| -t | 指定要挂载的文件系统的类型,比如ext4、xfs、vfat、nfs等 |
| -o | 指定挂载的额外选项,比如读写权限、是否允许执行等,多个选项用逗号分隔 |
| -a | 挂载/etc/fstab文件中配置的所有文件系统 |
| -r | 以只读模式挂载文件系统,不允许修改内容 |
| -w | 以读写模式挂载文件系统,默认就是读写模式 |
注意事项
- 挂载点目录在挂载前最好是空目录,如果目录里有其他文件,挂载之后这些文件会被暂时隐藏,卸载之后才会重新显示
- 卸载文件系统时,要确保没有进程正在访问挂载点目录,否则会提示设备繁忙无法卸载,可以先关闭相关进程再尝试卸载
- 如果希望系统开机自动挂载对应的文件系统,可以将挂载信息写入
/etc/fstab配置文件中,系统启动时会自动读取这个文件执行挂载操作
写入/etc/fstab的示例配置如下,每一列分别是设备路径、挂载点、文件系统类型、挂载选项、是否备份、是否开机检查:
/dev/sdb1 /data ext4 defaults 0 0