小易说IT 小易说IT

Linux 挂载文件系统完整指南

前置说明:Linux 没有盘符;挂载 = 将一个文件系统(分区 / 磁盘 / NFS 等)关联到目录树的某个目录(挂载点)。 核心命令:mount(临时挂载)、/etc/fstab(永久开机自动挂载)、umount(卸载)

一、前置准备

  1. 先确认设备:块设备一般在 /dev

# 查看磁盘、分区
lsblk
# 或者
fdisk -l
# 查看已挂载列表
mount
df -hT

常见设备名:

  • SATA:/dev/sda、分区 /dev/sda1

  • NVMe:/dev/nvme0n1、分区 /dev/nvme0n1p1

  • 逻辑卷 LVM:/dev/mapper/vgname-lvname

  1. 创建挂载点目录(挂载点就是一个普通空目录)

mkdir -p /data

⚠️ 注意:挂载点里面原有文件,挂载后会被隐藏,卸载后才会重新看见。


二、临时挂载(mount,重启失效)

基础语法

mount [-t 文件系统类型] [-o 选项] 设备源 挂载点

示例

  1. 挂载 ext4/xfs 本地分区

# -t 可以省略,mount 自动识别
mount /dev/sdb1 /data
# 显式指定文件系统
mount -t ext4 /dev/sdb1 /data
mount -t xfs /dev/sdc1 /backup
  1. 挂载 iso 镜像文件(loop 设备)

mount -o loop /root/CentOS.iso /mnt/cdrom
  1. 挂载 tmpfs(内存文件系统)

mount -t tmpfs -o size=2G mytmp /mnt/tmp
  1. 挂载 NFS 远程共享

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

常用 -o 挂载选项(高频)

ro          只读
rw          读写(默认)
noatime     不更新访问时间,提升性能(生产常用)
defaults    等价 rw,suid,dev,exec,auto,nouser,async
uid=1000,gid=1000  指定属主(挂载U盘、fat32常用)

示例:只读挂载

mount -o ro,noatime /dev/sdb1 /data

查看 mount 支持的全部选项:man mount


三、卸载 umount

# 方式1:按设备卸载
umount /dev/sdb1
# 方式2:按挂载点卸载(推荐,不容易错)
umount /data

常见报错:target is busy(目标忙)

原因:有进程在读写这个目录,或者 shell 当前 cd 在挂载点内。 排查:

# 查找占用进程
lsof /data
# 或者
fuser -m /data

处理:退出目录、停掉业务进程;紧急可加 -l(lazy 懒卸载,不推荐生产常态使用)

umount -l /data

四、永久挂载:/etc/fstab(开机自动挂载,重点!)

修改 fstab 前强烈建议备份:

cp /etc/fstab /etc/fstab.bak

fstab 一行 6 个字段,用空格 / Tab 分隔

<源设备>    <挂载点>    <fs类型>    <挂载选项>    dump    fsck
  1. 源设备:三种写法任选其一(推荐 UUID,磁盘顺序变化不受影响)

    • /dev/sdb1 设备名(不推荐,插拔磁盘容易变)

    • UUID=xxxxxx (推荐,blkid 查询 UUID)

    • LABEL=xxx 卷标

  2. 挂载点:必须存在目录

  3. 文件系统类型:ext4 / xfs / nfs / tmpfs / iso9660

  4. 挂载选项:defaults /ro/noatime 等,多选项逗号隔开

  5. dump 备份标记:0 = 不 dump,1=dump 备份(现在基本都写 0)

  6. fsck 开机自检顺序:0 = 不自检;根分区一般 1,其他分区 2;xfs、nfs、tmpfs 写 0

获取 UUID

blkid /dev/sdb1

fstab 示例

# 根分区示例
UUID=abc123-def4-5678-90gh-ijklmnopqrst   /        xfs     defaults,noatime  0 1
# 数据分区 ext4,noatime优化
UUID=12345678-1234-1234-1234-1234567890ab /data    ext4    defaults,noatime  0 2
# NFS共享
192.168.1.100:/nfs/share                  /mnt/nfs nfs     defaults          0 0
# tmpfs
tmpfs                                     /tmp     tmpfs   size=2G           0 0

修改 fstab 之后,不要直接重启!先测试

# 加载fstab里所有尚未挂载的条目,校验配置
mount -a

✅ 无报错 = 配置合法;如果报错立刻回去修复,否则开机可能卡住进不了系统!

小技巧:只挂载 fstab 里某一条

mount /data

五、特殊场景补充

1. 挂载 FAT32 / NTFS(Windows 分区)

NTFS 需要 ntfs-3g 包(默认很多精简系统不带)

# NTFS
mount -t ntfs-3g /dev/sdc1 /mnt/win
# FAT32
mount -t vfat -o uid=1000,gid=1000 /dev/sdc1 /mnt/win

fstab 里 NTFS 类型写 ntfs-3g

2. 挂载 LVM 逻辑卷

源写 /dev/mapper/vg名称-lv名称,或者它的 UUID,和普通分区用法一致。

3. systemd 挂载单元(进阶替代 fstab)

.mount 单元,云原生、systemd 深度定制环境使用,一般运维优先 fstab。


六、常见坑总结

  1. 不要挂载到已有业务文件的目录,原有文件会被隐藏;

  2. fstab 写错、UUID 写错,开机卡 emergency 救援模式;

  3. xfs 文件系统不支持 fsck 修复,第六字段必须写 0;

  4. nfs、tmpfs、iso 都不能 fsck,最后一列 0;

  5. mount -a 只挂载没挂上的,不会重复挂载已挂载点;

  6. 不要直接 rm -rf 挂载点目录,会把底层文件系统搞坏。

七、快速命令清单

lsblk                # 查看磁盘分区
blkid                # 获取UUID
mount                # 查看当前挂载
df -hT               # 挂载+容量+文件系统类型
mount -a             # 校验fstab
umount /xxx          # 卸载

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

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

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

https://www.yijunzhao.cc/