小易说IT 小易说IT

Linux 挂载 & 卸载文件系统

核心两个命令:mount(挂载)、umount(卸载,注意:没有 n)

一、基础概念

  • 挂载点(mount point):Linux 没有盘符,把磁盘 / 分区 / 网络存储挂载到某个目录,访问这个目录就是访问该文件系统

  • 挂载点目录最好是空目录,如果目录里面原有文件,挂载后会暂时隐藏,卸载后恢复

  • 普通用户默认不能直接 mount,需要 root 或者 sudo

二、mount 用法

1. 最简格式

mount 【设备路径】 【挂载点】

示例:把 /dev/sdb1 挂载到 /mnt/data

# 先创建挂载目录
mkdir -p /mnt/data
# 挂载
sudo mount /dev/sdb1 /mnt/data

2. 指定文件系统类型(-t)

自动识别失败时手动指定,常用类型:ext4、xfs、ntfs、vfat(U 盘 FAT32)、tmpfs

# 挂载NTFS分区
sudo mount -t ntfs /dev/sdc1 /mnt/usb

# 挂载FAT32 U盘
sudo mount -t vfat /dev/sdc1 /mnt/usb

3. 常用参数(-o)

逗号分隔多个选项

# ro 只读挂载
mount -o ro /dev/sdb1 /mnt/data

# rw 读写(默认)
# uid/gid:指定访问用户(常用于ntfs/vfat)
mount -t ntfs -o uid=1000,gid=1000 /dev/sdc1 /mnt/usb

# noexec 禁止执行二进制、nosuid 关闭suid权限
mount -o noexec,nosuid /dev/sdb1 /mnt/data

4. 查看已挂载列表

# 全部挂载信息
mount

# 更清晰,带文件系统类型
lsblk

# 查看挂载表(权威)
cat /etc/mtab
# 内核挂载信息
cat /proc/mounts

5. 查看磁盘分区设备

lsblk
fdisk -l

三、umount 卸载

重点:不能在挂载点目录里面执行卸载(会提示 target is busy) 两种写法,二选一:

# 按挂载点卸载
sudo umount /mnt/data

# 按设备卸载
sudo umount /dev/sdb1

卸载遇到 target is busy(占用)

排查谁在占用:

# 查看占用进程
lsof +D /mnt/data
# 或者
fuser -m /mnt/data

处理方式:

  1. 退出该目录、关闭正在读写的程序

  2. 强制卸载(慎用!可能丢数据)

# lazy 卸载:标记卸载,等进程释放后自动完成(推荐优先用这个)
sudo umount -l /mnt/data

# 强制立刻卸载,风险高,IO未写完会损坏文件
sudo umount -f /mnt/data

四、开机自动挂载:/etc/fstab

fstab 写错会导致系统开机失败,修改前建议备份:cp /etc/fstab /etc/fstab.bak

fstab 每一行格式(6 列,空格 / Tab 分隔)

设备路径    挂载点    文件系统类型    挂载选项    dump备份标记    fsck自检标记

示例:

/dev/sdb1   /mnt/data   ext4    defaults 0 2
  • defaults = rw,suid,dev,exec,auto,nouser,async

  • 第 5 列 dump:0 = 不备份

  • 第 6 列 fsck:根分区 / 填 1,其他分区填 2,0 不检查

推荐用 UUID 而不是 /dev/sdX(盘符顺序可能变) 获取 UUID:

blkid

UUID 写法示例:

UUID="abc123-xxxx-xxxx"   /mnt/data   ext4    defaults 0 2

写完 fstab 测试挂载,避免翻车:

# 挂载fstab里所有未挂载项
sudo mount -a

五、常见场景示例

1. 挂载 ISO 镜像

mkdir -p /mnt/iso
sudo mount -o loop xxx.iso /mnt/iso

2. 挂载 tmpfs 内存盘

mount -t tmpfs -o size=2G tmpfs /mnt/ramdisk

3. 挂载 NFS 网络存储

mount -t nfs 192.168.1.100:/share /mnt/nfs

六、权限小结

  • 直接 mount/umount 需要 root

  • fstab 里加 user 选项,允许普通用户挂载卸载

UUID=xxx  /mnt/usb  vfat  defaults,user,noauto 0 0

noauto:开机不自动挂载,需要用户手动 mount

七、避坑清单

  1. 卸载命令是 umount,不是 unmount

  2. 不要在挂载目录内部执行 umount

  3. fstab 修改后一定要 mount -a 验证,不然重启进不了系统

  4. NTFS 读写:一般用 ntfs3(新版内核),老系统需要 ntfs-3g

  5. 移动硬盘直接拔 ≠ umount,容易文件损坏


本文原创作者:易君召,详见:https://www.yijunzhao.cc/about,转载请注明出处。

原文链接 https://www.yijunzhao.cc/archives/linux-mount-unmount-file-system-guide

欢迎访问 https://www.yijunzhao.cc/

https://www.yijunzhao.cc/