Post

mount

mount

Linux中的mount命令用于将文件系统挂载到目录树的指定位置,使存储设备(如硬盘、分区、网络存储等)的内容可访问。以下是mount的核心概念、常用参数及示例:

🧱 1 基本语法

1
mount [-选项] [设备] [挂载点]
  • 设备:如/dev/sda1UUID=xxxx、网络路径(NFS/CIFS)。
  • 挂载点:必须是一个已存在的目录。

🧰 2 常用挂载参数

通用选项

参数作用
-t <文件系统类型>指定文件系统类型(如ext4xfsnfsvfattmpfs)。
-o <选项>挂载选项(多个选项用逗号分隔),详见下文。
-a挂载/etc/fstab中所有未挂载的设备。
-r只读挂载(等效于-o ro)。
-w读写挂载(默认,等效于-o rw)。
-o的常用子选项
选项说明
rw/ro读写/只读模式。
noexec禁止执行挂载点内的程序。
nosuid忽略文件的 SUID/SGID 权限位。
nodev不解析设备文件(如 /dev 下的文件)。
relatime优化访问时间更新(减少磁盘写入)。
noatime完全不更新访问时间(进一步提升性能)。
sync/async同步/异步 I/O(同步写入更安全,异步性能更高)。
user允许普通用户挂载(需在 /etc/fstab 中配置)。
defaults使用默认选项(rw,suid,dev,exec,auto,nouser,async,relatime)。
bind绑定挂载(将一个目录挂载到另一个位置)。
remount重新挂载(修改选项而无需卸载)。

文件系统特定选项

  • ext4/xfsjournal(日志)、discard(TRIM 支持)。
  • nfs/cifsusernamepasswordvers=3.0(NFS 版本)。
  • tmpfssize=1G(限制内存文件系统大小)。

3. 常见用法示例

挂载本地磁盘

bash

1
2
3
4
5
# 挂载 ext4 分区到 /mnt/data
sudo mount /dev/sdb1 /mnt/data -t ext4 -o rw,noatime

# 通过 UUID 挂载(避免设备名变化)
sudo mount UUID=1234-5678 /mnt/usb -t vfat

挂载网络存储

bash

1
2
3
4
5
# NFS 挂载
sudo mount -t nfs 192.168.1.100:/share /mnt/nfs -o vers=4

# SMB/CIFS 挂载(需安装 cifs-utils)
sudo mount -t cifs //server/share /mnt/smb -o username=user,password=pass

绑定挂载(目录映射)

bash

1
2
3
4
5
# 将 /var/www 挂载到 /home/user/www
sudo mount --bind /var/www /home/user/www

# 递归绑定(子目录也生效)
sudo mount --rbind /olddir /newdir

临时文件系统(tmpfs)

bash

1
2
# 挂载 2GB 内存到 /tmp/ramdisk
sudo mount -t tmpfs -o size=2G tmpfs /tmp/ramdisk

重新挂载(修改选项)

bash

1
2
3
4
5
# 将 / 文件系统改为只读
sudo mount -o remount,ro /

# 重新挂载并启用 noexec
sudo mount -o remount,noexec /mnt

4. 永久挂载(/etc/fstab)

编辑 /etc/fstab 文件可实现开机自动挂载,每行格式如下:

text

1
<设备>  <挂载点>  <文件系统>  <选项>  <dump备份>  <fsck检查顺序>

示例

plaintext

1
2
UUID=1234-5678  /mnt/data  ext4  defaults,noatime  0  2
//server/share /mnt/smb    cifs  username=user,password=pass 0 0

5. 卸载命令

bash

1
2
3
umount /mnt/data    # 通过挂载点卸载
umount /dev/sdb1    # 通过设备卸载
umount -l /mnt/data # 懒卸载(延迟卸载,当不再繁忙时)

6. 查看已挂载的文件系统

bash

1
2
3
mount               # 显示所有挂载点
mount | grep /mnt   # 过滤特定挂载点
cat /proc/mounts    # 内核记录的挂载信息

注意事项

  1. 权限:挂载通常需要 root 权限(除非配置了 user 选项)。
  2. 依赖工具:部分文件系统需额外工具包(如 nfs-utilscifs-utils)。
  3. 安全:避免直接挂载不可信设备(可用 noexec,nosuid,nodev 限制)。
  4. 卸载前:确保没有进程正在使用挂载点(lsof /mnt 可查看占用进程)。
This post is licensed under CC BY 4.0 by the author.