引言
在 Linux 系统中,mount 命令用于将文件系统挂载到指定的目录(挂载点),从而使设备或分区的内容可访问。挂载是将存储设备(如硬盘分区、U 盘、光盘、ISO 镜像或网络共享)关联到文件系统树的过程。反之,使用 umount 命令卸载。
mount 命令的基本语法如下:
mount -t <文件系统类型> -o <选项> <设备> <挂载点>
常用简化形式:
mount <设备> <挂载点>(自动检测类型)mount -a(挂载 /etc/fstab 中所有条目)
挂载信息可通过 mount 或 cat /proc/mounts 查看。开机自动挂载由 /etc/fstab 配置。
常用命令行选项
mount 命令支持多种参数:
-a:挂载 /etc/fstab 中所有文件系统。-t <类型>:指定文件系统类型(如 ext4、ntfs、iso9660、nfs)。通常可省略,系统自动检测。-o <选项>:指定挂载选项(多个选项用逗号分隔)。-r:只读挂载(等同于 -o ro)。-w:读写挂载(默认)。-n:不更新 /etc/mtab。-L <卷标>:按卷标挂载。-U <UUID>:按 UUID 挂载。-B、--bind:绑定挂载(将已有挂载点绑定到新目录)。-M、--move:移动挂载点。--remount:重新挂载(常用于修改选项,如从 ro 到 rw)。
挂载选项详解(-o 参数)
挂载选项分为文件系统无关选项(通用)和文件系统特定选项(特定于 ext4、xfs 等)。
文件系统无关选项
这些选项适用于大多数文件系统,默认使用 defaults。
| 选项 | 说明 | 示例用途 |
|---|---|---|
| defaults | 使用默认选项:rw, suid, dev, exec, auto, nouser, async。 | 推荐大多数情况 |
| rw | 读写模式(默认)。 | |
| ro | 只读模式。 | 保护数据不被修改 |
| exec | 允许执行二进制文件(默认)。 | |
| noexec | 禁止执行二进制文件。 | 安全增强(如 /tmp) |
| suid | 允许 set-user-ID 和 set-group-ID 位生效(默认)。 | |
| nosuid | 禁止 suid/sgid 位生效。 | 安全(如外部设备) |
| dev | 允许解释块/字符设备(默认)。 | |
| nodev | 禁止解释设备文件。 | 安全(如外部设备) |
| auto | 允许 mount -a 自动挂载(默认)。 |
|
| noauto | 不允许自动挂载。 | 手动挂载设备(如 U 盘) |
| user | 允许普通用户挂载。 | |
| nouser | 只允许 root 挂载(默认)。 | |
| users | 允许所有用户挂载和卸载。 | |
| async | 异步 I/O(默认)。 | |
| sync | 同步 I/O(每次写入立即落盘)。 | 数据安全关键场景 |
| atime | 每次访问更新访问时间(默认行为可能为 relatime)。 | |
| noatime | 不更新访问时间(提升性能)。 | SSD 或高 I/O 场景 |
| relatime | 仅在 mtime/ctime 新时更新 atime(现代默认,提升性能)。 | |
| nodiratime | 不更新目录访问时间。 | |
| remount | 重新挂载(用于修改选项)。 | mount -o remount,rw / |
| loop | 使用 loop 设备挂载文件(如 ISO)。 | mount -o loop file.iso /mnt |
| nofail | 如果设备不存在,不报错(开机时有用)。 | /etc/fstab 中外部设备 |
| _netdev | 延迟挂载直到网络可用。 | NFS/CIFS 共享 |
其他高级选项:
- mand/nomand:允许/禁止强制锁。
- lazytime/nolazytime:延迟更新时间戳,提升性能。
文件系统特定选项
不同文件系统有专属选项。
ext4(最常见 Linux 文件系统)
- acl/noacl:启用/禁用访问控制列表。
- user_xattr/nouser_xattr:启用/禁用用户扩展属性。
- barrier/nobarrier:启用/禁用写屏障(默认启用,确保一致性)。
- data=ordered/writeback/journal:数据模式(ordered 为默认,确保数据一致性)。
- commit=秒:提交间隔。
- noatime、relatime 等通用选项特别有效。
示例:mount -o noatime,errors=remount-ro /dev/sda1 /
xfs
- noatime、nodiratime:常见性能优化。
- logbufs=8:增加日志缓冲。
- ikeep/noikeep:目录 inode 优化。
ntfs(Windows 分区)
通常使用 ntfs-3g 驱动:
- uid=、gid=:设置所有者。
- umask=:权限掩码。
- utf8:支持 UTF-8 编码。
- windows_names:遵守 Windows 文件名规则。
示例:mount -t ntfs-3g -o uid=1000,gid=1000 /dev/sda1 /mnt/win
iso9660(光盘/ISO)
- loop:挂载 ISO 文件。
nfs/cifs(网络共享)
- soft/hard:软/硬挂载。
- rsize/wsize:读写块大小。
/etc/fstab 配置
/etc/fstab 定义开机自动挂载,格式:
<设备> <挂载点> <类型> <选项> <dump> <pass>
- 设备:/dev/sdX、UUID=xxx 或 LABEL=xxx(推荐 UUID)。
- 选项:同 -o。
- dump:0/1(是否备份,通常 0)。
- pass:fsck 检查顺序(0 不检查,1 为根,2 为其他)。
示例:
UUID=xxxx-xxxx / ext4 defaults,noatime 0 1
/dev/sdb1 /data xfs defaults,nofail 0 2
修改后运行 mount -a 测试,或重启。
常见示例
-
挂载 U 盘(FAT32):
mount -t vfat -o uid=1000,gid=1000 /dev/sdb1 /mnt/usb -
挂载 ISO:
mount -o loop centos.iso /mnt/iso -
重新挂载根为读写:
mount -o remount,rw / -
查看挂载:
mount -l 或 findmnt
注意事项
- 挂载前确保挂载点存在(空目录推荐)。
- 外部设备建议 nosuid,nodev,noexec 增强安全。
- SSD 推荐 noatime 或 relatime。
- 错误如 “device is busy”:使用
fuser -m /mnt杀进程,或umount -l懒卸载。
mount 选项灵活配置可优化性能、安全和兼容性。根据实际需求选择合适选项。更多细节可查 man mount 或 man 8 mount。
原文 https://blog.csdn.net/2301_79518550/article/details/149883805