实战
# 挂载
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 命令语法略不同