linux mount 是系统核心命令,作用是把硬盘分区光盘 U 盘网络共享镜像文件这些存储介质的文件系统,挂载到已经存在的目录也就是挂载点上,挂载完成之后,用户访问这个目录,就等同于访问对应存储里面的数据,linux 所有外部存储默认不会自动接入根目录树,必须依靠 mount 命令完成挂载,这是 linux 和 Windows 盘符自动识别模式最大的区别,运维开发日常处理磁盘扩容挂载 U 盘 NFS 共享 ISO 镜像都会高频使用这个命令,同时配套还有 umount 卸载命令,和 mount 成对使用。需要使用 mount 的根本原因,linux 采用单根目录树结构,没有 C 盘 D 盘这类独立盘符,所有存储都要接入根目录,磁盘分区本身只是块设备,内核识别块设备之后,还需要识别文件系统,再把文件系统关联到目录节点,应用程序才能正常读写文件,如果不执行挂载,即使磁盘已经分区格式化,也没办法直接访问里面的数据。学习这个命令可以先理解挂载基本原理,掌握基础语法和常用参数,区分临时挂载和开机自动挂载,然后学习网络挂载只读挂载特殊文件系统挂载,最后处理设备忙权限错误文件系统不支持这类常见报错,就能完整掌握 mount 命令的使用逻辑。
基础语法与核心参数
| 参数 | 功能说明 | 使用特点 |
|---|---|---|
| 无参数 | 列出当前系统全部已经挂载的设备 | 快速查看所有挂载信息 |
| t 文件系统类型 | 指定文件系统类型 | 比如 ext4 ntfs nfs iso9660 |
| o 选项 | 挂载附加参数 | 读写权限同步 noexec 等配置 |
| r | 只读挂载 | 等同于 o ro,禁止写入数据 |
| w | 读写挂载 | 默认就是读写模式 |
| a | 读取 etc fstab 全部条目自动挂载 | 开机或者批量挂载使用 |
| L 卷标 | 通过卷标定位设备 | 不用写长串设备路径 |
| U UUID | 通过 UUID 定位设备 | 推荐生产环境使用,比设备名稳定 |
常用挂载选项 o 参数清单
第一 ro 只读挂载,挂载之后目录不能写入,适合光盘只读介质。
第二 rw 读写挂载,默认选项,允许读写。
第三 noexec 禁止执行二进制程序,安全加固常用选项。
第四 nosuid 忽略 suid 权限位,提升安全。
第五 sync 同步写入,数据立刻写入磁盘,性能低但是断电不容易丢数据。
第六 async 异步写入,默认模式,性能更高,断电有丢数据风险。
第七 defaults 包含 rw suid dev exec auto nouser async,fstab 里面最常用简写。
典型实操示例
第一 mount 查看当前所有挂载记录。
第二 mount dev sdb1 mnt data 把 sdb1 分区挂载到 mnt data 目录。
第三 mount t iso9660 r dev cdrom mnt cdrom 只读挂载光盘镜像设备。
第四 mount t nfs 192.168.1.100 share mnt nfs 挂载远程 NFS 网络共享。
第五 mount o loop CentOS7.iso mnt iso 挂载 ISO 镜像文件,loop 是关键参数,把普通文件模拟成块设备。
第六 mount a 读取 etc fstab 里面所有配置,批量执行挂载。
进阶重点知识
第一 临时挂载和永久挂载区别,终端直接执行 mount 命令属于临时挂载,服务器重启之后挂载就失效,想要开机自动挂载,需要把设备挂载点文件系统类型挂载选项 dump 优先级填写到 etc fstab 文件,配合 mount a 可以校验 fstab 配置是否正确。
第二 UUID 优势,dev sdb 这类设备名有可能因为磁盘顺序变化发生改变,UUID 是分区唯一标识,使用 UUID 挂载更加稳定,生产环境 fstab 推荐使用 UUID。
第三 挂载点要求,挂载点目录必须提前创建,目录可以是空目录,也可以里面原有文件,挂载之后原有文件会被临时隐藏,卸载之后文件重新显示,这个是很多新手容易忽略的特性。
第四 特殊文件系统,mount 除了磁盘介质,还可以挂载 tmpfs proc sysfs devtmpfs 这类内核虚拟文件系统,属于系统运行必需的挂载。
第五 卸载命令 umount,卸载之前要确认当前终端没有停留在挂载目录里面,否则会报设备忙,也可以使用 lsof 或者 fuser 查找占用进程。
常见报错处理
第一 mount 提示文件系统类型错误,一般是没有加 t 参数,或者分区没有格式化,文件系统损坏。
第二 mount 提示权限拒绝,普通用户挂载需要在 fstab 里面添加 user 选项,或者使用 root sudo 执行。
第三 mount 提示设备忙,代表还有进程正在访问挂载目录,需要退出占用进程再 umount。
第四 NFS 挂载超时,一般是网络不通,远程 NFS 服务未启动,或者防火墙拦截端口。
【常见问题】
问题 1 linuxmount 命令里面临时挂载和 fstab 永久挂载有什么区别
回答 1 linuxmount 命令里面直接在终端执行 mount 属于临时挂载,重启服务器之后挂载关系消失,写入 etc fstab 之后属于永久挂载,开机自动加载,使用 mount a 可以批量加载 fstab 内全部挂载项。
问题 2 linuxmount 命令里面 loop 参数是做什么的
回答 2 linuxmount 命令里面 loop 参数用于挂载 ISO 镜像这类普通文件,把文件模拟成块设备,不添加 loop 参数是没办法直接挂载 iso 镜像文件的。
问题 3 linuxmount 命令里面为什么推荐使用 UUID 而不是 dev sdb1
回答 3 linuxmount 命令里面 dev sdb 这类设备名会因为磁盘识别顺序变动发生变化,UUID 是分区唯一编号,不会变动,使用 UUID 作为 mount 定位标识,开机自动挂载更加稳定可靠。
【免责申明】
以上内容为 linux mount 命令技术科普,挂载操作会影响系统目录树,错误修改 fstab 配置有可能造成系统无法正常启动,操作前建议备份 fstab 文件,不同内核发行版支持文件系统存在差异,内容仅供学习参考,生产环境操作请提前测试。


