mount 用于将文件系统挂载到目录树,umount 用于卸载。本文涵盖基础语法、查看挂载信息、常用选项、UUID/标签挂载、网络与特殊挂载、卸载操作,以及持久化配置 /etc/fstab 的编写规范。
1.基础语法
| 命令 | 说明 |
|---|
mount 设备 目录 | |
mount -t 类型 设备 目录 | |
mount -o 选项 设备 目录 | |
mount 目录 | 挂载 /etc/fstab 中已定义的条目(仅需指定挂载点) |
mount -a | 挂载 /etc/fstab 中所有未标记 noauto 的条目 |
umount 目录 | |
大多数挂载操作需要 root 权限,命令前请加 sudo。
2.查看已挂载的文件系统
| 命令 | 说明 |
|---|
mount | 以传统格式列出所有挂载信息(推荐改用 findmnt) |
findmnt | |
findmnt /dev/sdb1 | |
findmnt -t ext4,xfs | |
findmnt --fstab --verify | |
cat /proc/mounts | |
lsblk -f | |
df -hT | |
3.常用挂载选项
通过 -o 传入,或填写在 /etc/fstab 的第四字段。
| 选项 | 说明 |
|---|
defaults | 默认选项组合,通常为 rw,suid,dev,exec,auto,nouser,async(具体默认值因系统而异) |
ro / rw | |
noexec | |
nosuid | |
nodev | |
noatime | |
sync / async | |
noauto | mount -a |
user | 允许非 root 用户挂载(默认隐含 noexec,nosuid,nodev,可被覆盖) |
nofail | |
uid=1000,gid=1000 | 为不支持 Unix 权限的文件系统(如 FAT)设置属主和属组 |
remount | |
示例:将根文件系统重新挂载为读写模式
sudo mount -o remount,rw /
4.通过 UUID 或标签挂载
设备名(如 /dev/sdb1)可能在重启后变化,因此持久化配置中应使用 UUID 或标签标识文件系统。
| 命令 | 说明 |
|---|
lsblk -f | |
sudo blkid | |
sudo blkid /dev/sdb1 | |
sudo mount UUID=1a2b3c4d-... /mnt/data | |
sudo mount LABEL=backup /mnt/backup | |
sudo mount -U 1a2b3c4d-... /mnt/data | |
sudo mount -L backup /mnt/backup | |
sudo e2label /dev/sdb1 backup | |
建议:在 /etc/fstab 中优先使用 UUID= 或 LABEL=,避免设备名变更导致开机异常。
5.文件系统类型
-t 参数及 /etc/fstab 第三字段的常用取值。
| 类型 | 说明 |
|---|
ext4 | |
xfs | |
btrfs | |
vfat | |
exfat | FAT 的大文件扩展版,适用于 U 盘和 SD 卡 |
ntfs3 | |
iso9660 | |
tmpfs | |
nfs | |
cifs | |
auto | |
6.网络与特殊挂载
| 命令 | 说明 |
|---|
sudo mount -t nfs server:/srv/data /mnt/data | |
sudo mount -t cifs //server/share /mnt/share -o username=user | |
sudo mount -t cifs //server/share /mnt/share -o credentials=/etc/smb-credentials | |
sshfs user@host:/remote/dir /mnt/remote | |
sudo mount -o loop image.iso /mnt/iso | |
sudo mount --bind /src /dst | |
sudo mount --rbind /src /dst | |
sudo mount -t tmpfs -o size=512M tmpfs /mnt/ram | |
安全提示:CIFS 凭据文件应放置在项目目录和版本控制之外,并设置 sudo chmod 600 /etc/smb-credentials 保护。
7.卸载操作
| 命令 | 说明 |
|---|
sudo umount /mnt/data | |
sudo umount /dev/sdb1 | |
sudo umount -R /mnt/data | |
sudo umount -l /mnt/data | |
sudo umount -f /mnt/share | |
sudo umount -a -t nfs | |
lsof +f -- /mnt/data | |
fuser -mv /mnt/data | |
sudo fuser -km /mnt/data | 强制终止 |
重要:使用 fuser -km 前务必先执行 fuser -mv 确认进程。仅在常规卸载失败时才使用 -l(延迟)或 -f(强制):-f 可能导致未写入数据丢失,-l 会在仍有引用时隐藏挂载路径。
8./etc/fstab 持久化挂载配置
每行包含 6 个空格分隔的字段:
| 字段 | 名称 | 说明 |
|---|
| | UUID=、LABEL=、设备路径或远程共享地址 |
| | |
| | |
| | |
| | 几乎所有情况填 0;填 1 表示标记给 dump 备份 |
| | 开机 fsck 检查顺序:1 为根分区,2 为其他分区,0 跳过 |
示例:
UUID=1a2b3c4d-... /mnt/data ext4 defaults,nofail 0 2
| 维护命令 | 说明 |
|---|
sudo findmnt --fstab --verify | |
sudo mount -a | |
sudo systemctl daemon-reload | 修改 fstab 后重新生成 systemd 挂载单元 |
sudo mount /mnt/data | |
建议:仅在可选挂载上加 nofail。若网络文件系统的类型本身无法被识别为网络依赖,需额外添加 _netdev 选项。
9.故障排查
| 报错/现象 | 排查与处理 |
|---|
target is busy | 使用 fuser -mv 目录 或 lsof +f -- 目录 定位占用进程,关闭后再卸载 |
unknown filesystem type | 安装对应驱动或工具包,如 ntfs-3g、nfs-common/nfs-utils、cifs-utils;确认内核对 exFAT 的支持 |
wrong fs type, bad option, bad superblock | 用 lsblk -f 确认文件系统类型,查看 dmesg;如需修复,先卸载再使用对应文件系统检查工具 |
mount point does not exist | 先用 sudo mkdir -p 目录 创建挂载点 |
| 检查凭据和服务器共享权限;uid=/gid= 仅控制本地所有权映射 |
special device does not exist | 用 blkid 重新核对 UUID;设备名可能已变更 |
| 挂载的文件系统覆盖了底层目录内容;卸载后即可恢复访问 |
| 用 mount -o remount,rw / 将根分区 remount 为读写,修复错误的 /etc/fstab 条目并验证;仅在可选挂载上加 nofail |