119121

596 分钟

#Bash 的 mount 命令

mount [OPTION]... [DEVICE] [MOUNTPOINT]

功能

挂载文件系统。

类型

可执行文件(/usr/bin/mount),属于 mount

参数

  • OPTIONS 选项:
    • -a, --all - 按顺序挂载 /etc/fstab 中配置的所有文件系统
    • -B, --bind - 将子树重新挂载到其他位置
    • -c, --no-canonicalize - 不要规范化路径
    • -F, --fork - 为每个设备创建一个新的挂载实例
    • -f, --fake - 不实际进行挂载;会写入 /etc/mtab 文件
    • -i, --internal-only - 不要调用外部命令(/sbin/mount.filesystem
    • -L, --label label - 挂载具有指定标签的分区
    • -l, --show-labels - 输出中显示标签
    • -M, --move - 将子树移动到其他位置
    • -m, --mkdir[=mode] - 如果挂载点不存在,则创建它,mode 为该目录的权限;默认为 0755
    • -n, --no-mtab - 挂载时无需写入 /etc/mtab 文件
    • -N, --namespace ns - 在 ns 指定的命名空间内执行操作
    • -O, --test-opts opts - 与 -a 选项一同使用,过滤部分文件系统
    • -o, --options opts - 使用特别的挂载选项列表;多个选项使用逗号分隔
    • --onlyonce - 检查文件系统是否已挂载,不能重复挂载
    • --options-mode mode - 如何将 fstab/mtab 中的选项与命令行选项组合
      • ignore - 忽略
      • append - 追加到命令行选项之后
      • prepend - 添加到命令行选项之前;默认
      • replace - 替换命令行选项
    • --options-source source - 默认选项的来源;默认为 fstab,mtab
      • fstab - 默认选项来自 /etc/fstab
      • mtab - 默认选项来自 /etc/mtab
      • disable - 没有默认选项
    • --options-source-force - 使用 fstab/mtab 中的选项
    • -R, --rbind - 将子树及其所有可能的子挂载点重新挂载到其他位置
    • -r, --read-only - 以只读方式挂载文件系统
    • -s - 容忍不规范的挂载选项
    • --source device - 指定设备
    • --target directory - 指定目标
    • --target-prefix directory - 给目标路径添加前缀
    • -T, --fstab path - 指定 fstab 的路径;代替 /etc/fstab
    • -t, --types fstype - 指定文件系统类型
    • -U, --uuid uuid - 挂载具有指定 UUID 的分区
    • -v, --verbose - 打印详细信息
    • -w, --rw, --read-write - 以可读可写的模式挂载文件系统
    • -h, --help - 显示帮助
    • -V, --version - 显示版本
  • DEVICE - 要挂载的设备
  • MOUNTPOINT - 要挂载到的挂载点

#特殊选项(-o

#通用

选项说明
ro以只读方式挂载
rw以读写方式挂载(默认)
suid允许 set-user-identifier 或 set-group-identifier 位生效
nosuid禁止 suid 和 sgid 位生效
dev允许设备文件
nodev禁止设备文件
exec允许执行二进制文件
noexec禁止执行二进制文件
sync同步写入,每次写操作都直接写入磁盘
async异步写入(默认)
dirsync对目录的写操作同步
remount重新挂载已挂载的文件系统,用于改变挂载参数
bind将一个目录绑定到另一个目录(--bind 的等价选项)
move移动挂载点(--move 的等价选项)
noatime访问文件时不更新 atime(访问时间)
relatime只在修改时间比访问时间新时更新 atime(默认在现代 Linux)
strictatime总是更新访问时间
nodiratime不更新目录的访问时间
atime总是更新访问时间
user普通用户可以挂载(通常与 exec,suid 联用)
nouser只有 root 可以挂载(默认)
users允许任意用户卸载挂载点
defaults默认选项:rw,suid,dev,exec,auto,nouser,async

#ext2, ext3, ext4

选项说明
commit=<n>指定写日志提交间隔(秒)
data=ordered/journal/writeback日志模式
barrier=0 | 1启用/禁用写屏障
errors=remount-ro | continue | panic出错处理策略

#ntfs

选项说明
uid=<id>设置所有权用户
gid=<id>设置所有权组
umask=<mask>设置权限掩码
nls=<charset>文件名字符集
permissions使用 Linux 权限

#vfat

选项说明
uid=<id>设置所有者
gid=<id>设置组
umask=<mask>权限掩码
shortname=mixed | lower | upperDOS 文件名策略
utf8文件名使用 UTF-8 编码

#tmpfs

选项说明
size=<size>限制挂载大小
mode=<mode>目录权限
nr_inodes=<n>最大 inode 数

#nfs, cifs

选项说明
hard硬挂载,如果服务器不可达,操作阻塞
soft软挂载,服务器不可达返回错误
intr支持中断
timeo=<n>请求超时(0.1 秒为单位)
rsize=<n>, wsize=<n>读/写缓冲大小
vers=<n>NFS 版本
sec=<sec>安全模式,如 krb5

#其它

选项说明
loop将一个文件作为块设备挂载
offset=<bytes>挂载文件内偏移位置(常用于 ISO/IMG)
x-systemd.requires=<unit>systemd 依赖
x-mount.mkdir挂载前自动创建目录

#示例

基础示例

$ sudo mkdir /mnt/my_dir                            # 创建目录作为挂载点
$ sudo mount /dev/sda1 /mnt/my_dir                  # 将 /dev/sda1 挂载到 /mnt/my_dir
$ sudo umount /mnt/my_dir                           # 卸载 /mnt/my_dir

指明文件系统类型

$ sudo mount -t ext4 /dev/sda1 /mnt/my_dir          # 将 /dev/sda1 挂载到 /mnt/my_dir

挂载 iso 镜像

$ sudo mount -o loop image.iso /mnt/my_dir          # 将 image.iso 挂载到 /mnt/my_dir
$ sudo umount --detach-loop /mnt/my_dir             # 卸载镜像的同时释放 /dev/loopX 设备

将文件当作磁盘挂载

$ sudo mount -o loop -t ext4 disk.img /mnt/my_dir   # 将 image.iso 挂载到 /mnt/my_dir
$ sudo umount --detach-loop /mnt/my_dir             # 卸载镜像的同时释放 /dev/loopX 设备

移动挂载点

$ sudo mount --move /mnt/dir1 /mnt/dir2             # 将挂载点从 /mnt/dir1 移动到 /mnt/dir2

将目录映射到另一个位置

$ sudo mount --bind /var/www /mnt/www               # 将 /var/www 映射到 /mnt/www

读写权限

$ sudo mount -o ro /dev/sda1 /mnt/my_dir            # 挂载为只读
$ sudo mount -o remount,rw /mnt/my_dir              # 重新挂载为可读可写

网络文件系统

$ sudo mount -t nfs 192.168.1.101:/data /mnt/my_dir             # 将主机 192.168.1.101 上的 /data 目录挂载到本机的 /mnt/my_dir

特殊文件系统

$ sudo mount -t proc proc /proc                                 # 内核和进程信息的伪文件系统
$ sudo mount -t sysfs sysfs /sys                                # 内核对象的伪文件系统
$ sudo mount -t devtmpfs devtmpfs /dev                          # 设备节点的伪文件系统
$ sudo mount -t devpts devpts /dev/pts                          # 伪终端的伪文件系统
$ sudo mount -t tmpfs tmpfs /tmp                                # 保存临时文件的内存文件系统
$ sudo mount -t ramfs ramfs /mnt/ram                            # 将内存当作硬盘使用
$ sudo mount -t cgroup2 ncgroup2e /sys/fs/cgroup                # cgroups
$ sudo mount -t configfs configfs /sys/kernel/config            # 内核配置接口
$ sudo mount -t securityfs securityfs /sys/kernel/security      # SELinux 和 AppArmor
$ sudo mount -t pstore pstore /sys/fs/pstore                    # 崩溃日志持久化
$ sudo mount -t debugfs debugfs /sys/kernel/debug               # 调试与性能分析
$ sudo mount -t tracefs tracefs /sys/kernel/tracing             # 内核跟踪
$ sudo mount -t hugetlbfs hugetlbfs /mnt/huge                   # 大页文件系统
$ sudo mount -t fuse fuse /mnt/fuse                             # 用户态文件系统

#相关命令

命令说明
findmnt查看设备及挂载点
umount卸载挂载点

#推荐阅读

#手册

更新: 2026/3/20

作者: PlanC

创建: 2026/3/20