实战

# 挂载
sudo mount /dev/sdb1 /data            # 设备挂目录
sudo mount -t ext4 /dev/sdb1 /data    # 显式指定类型
sudo mount UUID=abc-123 /data         # 按 UUID 挂

# 看已挂载
mount                                  # 全部
mount | grep /data
findmnt                                # 树状视图
findmnt /data                          # 看某挂载点

# 卸载
sudo umount /data
sudo umount /dev/sdb1                  # 设备路径也行

常用挂载选项

sudo mount -o ro /dev/sdb1 /mnt        # 只读
sudo mount -o rw,noatime /dev/sdb1 /data
sudo mount -o remount,rw /              # 把已挂载的改为读写

# 多个选项逗号分隔
sudo mount -o defaults,nosuid,nodev,noexec /dev/sdb1 /data
选项 含义
defaults 等同 rw,suid,dev,exec,auto,nouser,async
ro / rw 只读 / 读写
noexec 不允许执行二进制
nosuid 忽略 SUID 位
nodev 不识别设备文件
noatime 不更新访问时间(提性能
nofail 挂载失败系统继续启动
sync / async 同步 / 异步写

特殊挂载

挂 ISO 文件

sudo mkdir /mnt/iso
sudo mount -o loop ubuntu.iso /mnt/iso
ls /mnt/iso
sudo umount /mnt/iso

挂 NFS

sudo apt install nfs-common
sudo mount -t nfs server:/path /mnt/remote

挂 CIFS / SMB(Windows 共享)

sudo apt install cifs-utils
sudo mount -t cifs //server/share /mnt/smb -o username=u,password=p

绑定挂载(同一目录两个名字)

sudo mount --bind /src/path /dst/path
# /dst/path 看起来等同 /src/path 的内容

永久挂载:/etc/fstab

UUID=abc-123    /data    ext4    defaults,noatime    0    2

测试 fstab(重启前必做):

sudo mount -a
echo $?                  # 必须 0

umount 卡住"device is busy"

sudo umount /data
# umount: /data: target is busy

# 看谁在用
sudo lsof +D /data
sudo fuser -vm /data

# 强制(最后手段)
sudo umount -l /data     # lazy umount(卸载点不可见,等使用者退出)

  • UUID 而不是 /dev/sdX(盘顺序会变)
  • 改 fstab 后重启前必测—— mount -a 报错就修
  • 容器 / chroot 里挂载有限制
  • macOS 的 mount 命令语法略不同