Linux文件系统访问详解:从挂载到故障排查的实战指南
说到 RH124很多人会觉得前面用户管理、权限控制才是重点学到第13章“访问 Linux 文件系统”时反而容易松懈。我一开始也是这么想的觉得无非就是 mount 一下、umount 一下、df 看一下等真到了考试和实际排查才发现这一章才是把整个系统串起来的关键。RHCSA 的机试里存储相关操作占了很大比重而第13章里的挂载、设备识别、文件查找、链接文件几乎就是后面所有存储题的基础。这篇文章我按“知识点问答”的形式把这一章常考、常问的问题全部过一遍也把我在实验环境里踩过的坑、总结出的经验一起放进去适合正在备考 RH124/RHCSA 的同学也适合刚接手 Linux 运维、被各种“挂载失败”“找不到文件”折磨的新手。1. 访问文件系统前先把这几个概念吃透1.1 为什么这一章叫“访问”文件系统而不是“管理”文件系统最开始我也觉得这个命名有点怪挂载、卸载、查磁盘明明是在管理存储。后来复习时才意识到文件系统的核心任务就是让内核能够按照目录树的结构去读取存储设备上的数据。所谓“访问”强调的是内核通过 VFS虚拟文件系统抽象层把不同格式的文件系统统一呈现为目录结构然后用户和应用程序才能像操作普通文件夹一样去读取、写入数据。可以这么理解一块磁盘本身只是一堆二进制数据ext4、XFS、FAT32 这些格式决定了数据怎么排布。但用户不需要关心这些排布规则内核里的 VFS 层会把这些差异消化掉让所有文件系统都表现出同样的文件、目录、权限语义。RH124 第13章里你看到的各种命令本质上都是在操作这个“访问过程”确认设备、挂载到目录树、维护挂载表、定位文件路径。这个抽象层还有一个作用就是让根文件系统挂在/之后其他文件系统再挂到目录树上的各个挂载点。开机的时候内核会先挂载根文件系统然后根据/etc/fstab继续挂载其他分区。如果你把这一章理解成“如何让更多存储设备进入根文件系统的目录树”后面所有命令就都顺理成章了。1.2 挂载点和目录树的关系把设备“接”到目录树上挂载这件事最直观的理解就是给设备“找个接入点”。这个接入点必须是一个目录叫作挂载点mount point。挂载成功以后你访问这个目录实际上访问的就是设备里的文件系统内容目录原有的内容会被临时隐藏卸载之后才重新暴露出来。我最早在虚拟机上练习时犯过一个傻把/dev/sdb1挂到/mnt发现里面什么都没有还以为数据丢了。后来才知道/mnt原本只是空目录看不到东西是因为我忘了先格式化。还有一次挂到一个非空目录/tmp/data挂载之后原来的本地文件全看不见了以为是误删赶紧卸载文件又回来了。这两个例子其实都在说明同一个道理挂载点是目录树上的“窗口”挂载时设备内容覆盖窗口卸载后恢复原样。所以实际操作时有两个习惯要养成一是在挂载前先把挂载点目录建好二是尽量用空目录或专门目录作为挂载点避免掩盖原有数据。后面在/etc/fstab里配置自动挂载时这一点尤其重要因为写错挂载点会让系统启动时找错目录。1.3 设备文件与 /dev 目录一切皆文件的入口Linux 里有一句名言叫“一切皆文件”这句话在访问文件系统时体现得最彻底。磁盘、分区、U盘、光驱这些存储设备在系统里都以设备文件的形式出现在/dev目录下。设备文件本身不存储数据它是一个“入口”进程通过这个入口向内核发起读写请求内核再驱动对应硬件完成实际操作。从类型上说存储设备大多属于块设备读写时按“块”为单位并且可以随机访问比如/dev/sda、/dev/nvme0n1都是块设备。与之对应的是字符设备比如串口、终端按字节流处理不能随机读写。平时我们用ls -l查看设备文件时前面显示的b就是块设备c就是字符设备。RH124 第13章需要掌握的主要是怎么识别这些设备文件背后的真实磁盘。比如/dev/sda是系统里的第一块 SATA/SCSI 磁盘/dev/sda1是它的第一个分区/dev/nvme0n1是 NVMe 固态盘/dev/nvme0n1p1是它的第一个分区。虚拟机里还常见/dev/vda、/dev/vdb这是 virtio 虚拟磁盘。看一眼设备名基本就能判断出这是一块什么类型的存储这个能力在机试和实际运维中都非常有用。2. mount 命令手动挂载的完整套路2.1 mount 基本语法与输出解读手动挂载最常用的命令就是mount。它的基本语法是mount [-t 文件系统类型] [-o 挂载选项] 设备 挂载点但生产环境中很少有人老老实实把-t写全因为内核会自动探测大多数文件系统类型。比如我在实验环境挂载一块新分区通常直接写mount /dev/sdb1 /mnt/data这样也能挂上系统会根据分区上的 superblock 自动识别出 XFS 或 ext4。只有遇到识别不了的场景比如挂载 Windows 常用的 NTFS或者挂载 ISO 镜像才需要显式加-t ntfs-3g、-t iso9660这类参数。不带任何参数执行mount会列出当前所有已挂载的文件系统每一行都包含设备、挂载点、文件系统类型和挂载选项。这个输出看似平平无奇但排查问题时很关键。比如你想确认某个目录到底挂没挂上或者想看看当前是不是有只读挂载直接执行mount | grep 目录就行。-o选项能控制的东西非常多RH124 阶段需要记住几个ro只读挂载、rw读写挂载、noexec禁止执行该文件系统中的程序、sync关闭写入缓冲、noatime不更新访问时间。其中sync这一点尤其适合用在 U盘 上后面我会专门聊。2.2 挂载中的常见误区与正确示范新手挂载最容易踩三个坑挂载目录不存在、挂载到非空目录、用设备名写固定配置。目录不存在的情况很简单系统会报mount: mount point does not exist所以要先执行mkdir -p /mnt/data。这个坑我在第一次实验时踩过后来就养成了习惯挂载前先ls -ld看一眼挂载点是否存在。挂载到非空目录前面讲过不是不行而是容易产生误导。Linux 不会阻止你这么做但挂载后该目录原有内容不可见经常被误认为文件丢失。所以考试和工作中我建议一律使用空目录作为挂载点。用设备名这个问题比较隐蔽。系统重启后设备名可能会因为磁盘扫描顺序变化而改变比如原来/dev/sdb变成/dev/sdc。如果你在命令里写死设备名问题不大手动敲一下还能发现如果你写进/etc/fstab系统启动时按新设备名找不到分区就可能进入紧急模式。稳妥的做法是使用 UUID 挂载先执行blkid查分区的 UUID然后用mount UUIDxxxx /mnt/data来挂载。UUID 是分区的唯一标识不随设备名变化这也是生产环境的主流做法。2.3 umount 卸载与 target is busy 的排查卸载命令是umount注意拼写不是unmount。基本用法umount /mnt/data这里既可以写挂载点也可以写设备路径推荐写挂载点因为更直观。如果已经不在那个目录下卸载通常很顺利。但如果你当前工作目录就在挂载点里面或者有进程正在使用挂载点里的文件就会提示target is busy我第一次遇到这个提示时完全不知道发生了什么心想“没人用它啊”后来才明白问题出在我自己身上当时 shell 还停在被卸载目录的子目录里。解决办法也很简单先cd /或者cd到挂载点之外再执行umount。如果确实是其他进程占用可以用lsof D /mnt/data或fuser -mv /mnt/data查看是哪些进程占用了挂载点。找出进程后要么正常结束它要么用fuser -k /mnt/data强制终结。还有一个umount -l的“懒卸载”选项效果是先把你和挂载点断开等进程结束后再真正卸载。这个命令应急时可以试但生产环境不建议滥用因为如果一直有进程写数据卸载不彻底可能导致数据损坏。2.4 开机自动挂载与 /etc/fstab 字段解析手动挂载只对当前运行有效重启就没了。要让文件系统开机自动挂载需要配置/etc/fstab。这个文件每一行代表一个挂载项用空格或 Tab 分隔成六列字段含义示例设备可以是 UUID、设备路径或 LABELUUIDxxxx挂载点目录路径/mnt/data文件系统类型xfs、ext4、swap 等xfs挂载选项defaults、ro、noexec 等defaultsdump是否备份0 表示不备份0fsck开机检查顺序0 表示不检查根分区为 1其他为 20这里最需要注意的是dump和fsck这两列很多新手会留空留空在某些系统上可能影响正常挂载所以最好明确写0 0。对根分区来说fsck 列一般写1其他普通分区写2交换分区写0。配置完/etc/fstab后我强烈建议先执行mount -a验证一下这个命令会按 fstab 配置挂载所有尚未挂载的文件系统。如果输出没有报错再重启。一旦 fstab 写错系统启动时可能会因为挂载失败而进入 emergency 模式不要慌输入 root 密码后用vi /etc/fstab把错误行注释掉然后重新挂载根文件系统并重启即可。这个排查套路我会在后面的故障章节继续展开。3. 设备识别与文件系统类型判断3.1 先看磁盘lsblk 与设备命名规则拿到一台新 Linux 机器第一件事不是急着 mount而是先搞清楚系统里有哪些磁盘和分区。我通常用lsblk它是“list block devices”的缩写输出非常直观像一棵树NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 19G 0 part /从输出里可以一眼看出磁盘、分区、大小、挂载点。TYPE为disk的是整个磁盘part是分区。如果某个分区没有挂载点说明它还没有被挂载这是后续操作的对象。设备命名规则看似复杂实际上有规律Linux 内核按照设备被发现的时间顺序编排设备名。传统 SATA/SAS/USB 磁盘使用sd开头后面跟一个小写字母表示第几块盘sda是第一块sdb是第二块数字表示分区号。NVMe 固态盘则使用nvme0n1这种形式nvme0是控制器编号n1是命名空间p1是分区。虚拟机里常见的/dev/vda、/dev/vdb是 VirtIO 块设备。这个命名顺序在现代内核里已经不再严格代表物理位置尤其随着设备热插拔重启后名字可能变化。所以看到/dev/sdb并不代表它永远都是第二块盘最好用lsblk加上-o NAME,SIZE,MODEL,SERIAL查看序列号才能确定是哪块物理硬盘。3.2 拔 U 盘前先同步sync 与缓存的关系Linux 写文件时并不是直接写进磁盘而是先写到内存中的页缓存page cache再由内核在合适的时机刷入磁盘。这样做的好处是写性能非常高坏处是断电或异常拔盘时缓存中的数据可能还没落盘导致数据丢失。sync命令的作用就是强制将缓存中的数据立即写入磁盘。RH124 第13章里虽然不会专门考sync的细节但和文件系统访问密切相关。在我自己维护的服务器上任何需要拔掉的移动存储我都要求操作人员先sync再卸载。注意顺序先sync再umount这样缓存刷新和文件系统元数据写入都能完整完成。还有一种更稳妥的办法是在挂载移动存储时就加上sync选项例如mount -o sync /dev/sdb1 /mnt/usb挂载选项里的sync会关闭写入缓冲每次写操作都直接落盘。代价是写入速度下降但换来的是数据安全性对 U盘、移动硬盘这种随时可能拔走的设备来说很值。日常服务器上的磁盘则不建议用sync否则写入性能会被拖垮。顺带说一句正常的关机流程中系统会自动执行类似sync的操作确保所有缓存写入磁盘所以“直接拔电”比“正常关机”危险得多。面试题里如果问到“Linux 写入文件后为什么还需要 sync”核心就是回答页缓存和延迟写机制。3.3 文件系统类型识别blkid、file、df -T在挂载一个未知分区前先确认它是什么文件系统可以避免挂载后才发现类型不匹配。我常用的工具有三个。第一个是blkid它会显示设备的分区表信息包括 UUID、文件系统类型、LABEL。比如blkid /dev/sdb1输出可能类似UUIDabc123 TYPExfs。这个命令也是我写/etc/fstab时获取 UUID 的固定方式。第二个是file -s它可以读取块设备上的原始数据并尝试识别文件系统类型。对于没有完整分区表的裸设备特别有效。比如一块没有分区的整盘file -s /dev/sdc能识别出文件系统或“data”。如果什么都不输出说明设备没有有效文件系统。第三个是df -T查看已经挂载的文件系统类型。df -hT是我最常用的组合-h显示可读大小-T显示类型。在排查“为什么这个目录满了”的时候df -hT能先帮我判断是哪个文件系统类型、哪个挂载点出了问题。常见的文件系统类型有XFSRHEL 的默认文件系统适合大文件和大容量存储稳定性和扩展性都很好ext4传统 Linux 文件系统兼容性最好很多老系统还在用swap交换分区没有挂载点在free -h里看FAT32/NTFSWindows 兼容格式多出现在U盘、移动硬盘上。RH124 阶段不需要深入理解每个文件系统内部结构但看到类型要能对应上场景。4. 链接文件与文件属性4.1 硬链接是如何工作的Linux 文件名和文件数据是分开的。每个文件都有一个 inode存放文件的元数据权限、大小、时间戳、数据块位置等而文件名只是目录项里指向 inode 的一个引用。硬链接就是给同一个 inode 再创建一个目录项引用。用ln 源文件 硬链接名就能创建硬链接。你会发现ls -l第二列的链接数从 1 变成了 2而ls -i看 inode 编号两个文件名完全相同。此时修改任何一个文件内容另一个也会跟着变因为它们指向的是同一份数据。硬链接有几个限制不能在文件系统之间创建因为不同文件系统有自己的 inode 编号不能混用不能链接目录避免目录树形成环只能链接普通文件。也就是说你不能用硬链接给/tmp下的文件在/home下建链接。硬链接还有一个实际应用场景误删除源文件时只要还有至少一个硬链接存在数据就不会被释放。比如我做过一个备份脚本里面用硬链接保存文件历史版本目录里所有同名文件共享一份副本既不占额外空间又能防止误删。这个思路和ln命令本身一样值得在日常运维中灵活使用。4.2 符号链接快捷方式的本质符号链接是另一种链接也叫软链接创建命令是ln -s 目标 链接名。符号链接本身是一个独立的文件里面保存的是目标文件的路径访问符号链接时内核会解析这个路径再跳转到真正的目标文件。你可以把它理解成 Windows 里的快捷方式或者网页里的重定向。符号链接不受硬链接的限制可以跨文件系统可以指向目录甚至可以指向不存在的目标。指向不存在目标的链接叫“悬空链接”在ls -l中会显示为红色闪烁访问它会报No such file or directory。这个特性在管理软件版本时很好用比如把当前版本目录软链到/opt/myapp升级时只需重新指向新版目录路径不用变。RH124 考试里常让你区分硬链接和符号链接我整理过一个对比表特性硬链接符号链接inode 是否相同相同不同链接文件有自己的 inode修改内容互相影响互相影响删除源文件链接仍有效链接失效能否跨文件系统不能能能否链接目录不能能ls -l 显示普通文件链接数1文件类型为 l目标路径跟随笔试里只要记住硬链接本质是同一个文件、目录项不同符号链接本质是路径引用大部分判断题都能拿分。4.3 文件类型与特殊权限快速回顾ls -l输出的第一个字符代表了文件类型这一章常出现的分别是-普通文件、d目录、l符号链接、b块设备、c字符设备。看到这些字符基本就能判断出文件在系统里的角色。RH124 第13章虽然主要讲访问但文件属性里的特殊权限也常被一起复习因为特殊权限会影响文件在文件系统中的访问行为。比如/tmp目录上的 sticky bit粘滞位保证只有文件所有者和 root 能删除别人创建的文件这在多用户临时目录里非常重要。SUID 和 SGID 则分别作用于可执行文件让程序以文件所有者或属组的身份运行而不是执行者身份。查看特殊权限用ls -l时可以看到普通权限位置上的x变成了s或t。修改时使用chmod的八进制数字SUID 是 4、SGID 是 2、sticky 是 1。比如chmod 1777 /tmp就给目录加了 sticky 位。考试中如果碰到“为什么 /tmp 下别人能建文件但不能删我的文件”这类题答案就是 sticky bit。它是文件系统访问控制里最容易被忽视、却最贴近实际的一个点。5. 文件查找命令到底怎么选5.1 find最强但也最需要小心的搜索命令在 Linux 里定位文件最常用的命令是find。它的基本语法是find 起始路径 条件 动作。条件部分非常丰富RH124 里最常考的是按名字、类型、大小、时间查找。按名字查找是我用到最多的find /var/log -name *.log注意-name是区分大小写的如果文件名大小写不确定可以用-iname。按类型查找配合-type f或-type d可以快速区分文件和目录。按大小查找用-size比如find / -type f -size 100M这条命令会找出所有大于 100MB 的文件在排查“磁盘空间突然被谁占了”时很有用。时间查找用-mtime-mtime 30表示 30 天前修改过的文件。动作部分最常见的是-delete、-exec、-print。-exec的写法有点特殊最后固定是{} \;比如找出所有.bak文件并删除find /data -name *.bak -exec rm {} \;我个人的经验是find在大目录下扫描会非常慢因为要遍历目录树。这时候可以用-prune排除不需要搜索的目录比如排除/proc、/sys这种虚拟文件系统。执行find / -type f -size 100M时一定要把2/dev/null加上否则你会被大量 Permission denied 刷屏。5.2 locate 和 updatedb基于数据库的快速查找find虽然灵活但每次都实时遍历在大磁盘上很慢。locate则是另一个思路它不直接搜索文件系统而是先在一个由updatedb生成的数据库里查找。这个数据库预先记录了系统里所有文件的路径所以locate的查询速度比find快几个数量级。使用方式很简单locate keyword比如查找所有名字里含passwd的文件直接locate passwd。如果刚创建的文件查不到不要慌先运行updatedb更新数据库再重新locate。updatedb可能比较耗时所以一般用cron定期执行而不是每次手动跑。locate的缺点是数据库不是实时的而且它只能按文件名匹配不能按文件内容、大小、权限等条件搜索。所以它的定位是“快速找文件路径”适合日常随手查不适合复杂的精确搜索。RH124 里考点主要是locate依赖mlocate或plocate软件包数据由updatedb生成。5.3 which、whereis、type 与命令查找文件查找不光要查数据文件还要查命令的位置。查找命令路径有三个常用工具which、whereis、type。which会在PATH环境变量指定的目录中查找可执行文件比如which ls输出/usr/bin/ls。它只关心可执行文件不关心文档和源码。whereis比which更进一步除了可执行文件还会查找帮助文档、源码包。比如whereis ls可能会输出/usr/bin/ls /usr/share/man/man1/ls.1.gz。它非常适合快速找“这个命令的 man 手册在哪”。type是 bash 内建命令能告诉你一个命令到底是外部命令、别名、还是 shell 内建函数。比如type ls会显示ls is aliased to ls --colorauto这说明你敲的ls实际上执行的是带别名参数的命令。平时排查“为什么命令行为和我预期不一样”时type很有用。这三个工具和find、locate的应用场景不一样find和locate搜文件系统里的任意文件which和type搜的是可执行命令。我把它们的适用场景整理成一张思维表命令搜索对象实时性典型用法find任意文件按条件复杂搜索实时遍历find / -name *.conflocate任意文件按名字快速搜索依赖数据库locate nginx.confwhich可执行命令路径实时搜索 PATHwhich sshwhereis可执行命令、文档、源码实时搜索固定目录whereis javatype判断命令类型实时type echo5.4 面试题为什么 find 在大目录下会慢如何优化这是一个延伸问题但很能体现对文件系统访问的理解。find慢本质上是因为它需要沿着目录树的每个目录项依次读取在大型目录树上这种遍历申请的 I/O 操作非常多尤其还包含网络文件系统或虚拟文件系统时每次访问都可能有延迟。优化思路主要有四类第一用-prune排除不必要的大目录第二把搜索范围缩小到目标目录比如只在/var/log而不是全盘搜索第三用locate替代find来做单纯的文件名匹配第四用-exec替代管道操作避免每个匹配项都启动一个子进程。记住这几点面试时至少能说出两三点考试时也能在答案里写出更高效的命令写法。6. 访问文件系统时的典型故障与排查思路6.1 设备挂载成功但看不到文件这个问题的典型场景是你执行了mount /dev/sdb1 /mnt/data系统没有报错但ls /mnt/data是空的或者看到的是别的内容。第一步先用findmnt /mnt/data确认挂载是否真的成功它会显示挂载点对应的设备、文件系统类型、挂载选项。如果输出为空说明其实没有挂上可能是你敲的命令没生效或者挂载点被占用。第二步用df -hT /mnt/data查看该目录所在的文件系统容量和类型。如果你看到容量不是目标设备的大小说明目录内容仍来自根文件系统而不是新挂载的设备。这种情况最常见的原因是挂载点路径写错了比如你创建的是/mnt/data但挂到了/mnt/data/或者挂载点目录末尾多了斜杠实际挂到了另一个目录。还有一种情况分区上确实是空的。新分区没有格式化时它显示的是未知内容或者datals自然看不到正常文件。此时可以先mkfs.xfs /dev/sdb1格式化再重新挂载。注意格式化会清空数据执行前必须确认设备盘符没有认错。6.2 /etc/fstab 写错导致开机进入 emergency 模式这个问题是 RH124 考生最容易在模拟考试里遇到的。fstab 写错后系统启动时无法挂载对应分区会自动进入 emergency 模式屏幕上会提示一句话Give root password for maintenance。如果你看到这个界面先不要慌。输入 root 密码后系统会给你一个 root shell但此时根文件系统很可能还是只读挂载的。第一步先执行mount -o remount,rw /把根文件系统重新以读写方式挂载。然后在/etc/fstab里找到错误行用#注释掉或者把它改回正确的 UUID。改完后执行mount -a验证所有挂载项是否能正常加载确认无报错再重启。这里有个细节进入 emergency 模式后很多日志文件可能也无法写入因为根文件系统只读。所以一定要记得先remount,rw否则你辛苦排查后想保存修改系统会报Read-only file system。这个坑我在第一次模拟考试时踩过后来把mount -o remount,rw /写在了便签上。6.3 Permission denied不是权限问题那么简单访问文件时提示Permission denied最常见的原因当然是权限不够但如果你是 root 还报这个错就要往文件系统自身的方向想。先用ls -ld查看目录权限和所有者确认是不是目录的x权限缺失。Linux 访问目录不仅需要r还需要x权限否则即使能列出文件列表也无法进入目录。然后看挂载选项如果挂载时带了ro那即使文件权限允许写也会报只读文件系统如果带了noexec则无法执行该文件系统里的程序会提示Permission denied。在启用了 SELinux 的 RHEL 系统上权限拒绝还可能是安全上下文的锅。此时用ls -Z查看文件的安全上下文用chcon -t或restorecon修正。排查阶段可以用setenforce 0临时关闭 SELinux 来验证确认是 SELinux 导致后再做永久策略调整但生产环境不要随便关闭改了上下文或者布尔值就行。这个章节的故障排查其实就是把前面所有知识点串起来设备识别用lsblk、blkid挂载状态用findmnt空间和类型用df -T目录权限和 SELinux 用ls -ld、ls -Z。遇到问题别急着猜先看状态再看配置最后才去动设备和格式化。7. 我备考 RH124 时整理的一些心得7.1 动手实验比刷题重要得多RH124 是红帽官方的系统管理课程重点是动手能力。第13章这些命令坐在那里看十遍不如在虚拟机里亲手挂载一块虚拟磁盘、写一次/etc/fstab、故意写错再修复来得深刻。我备考时是在虚拟机里加了三块虚拟磁盘然后反复做格式化、挂载、卸载、改 fstab、触发 emergency 模式再修复的循环直到闭着眼睛都能敲出mount UUID...。考试时看到类似题目手完全是肌肉记忆不会卡壳。7.2 把“为什么”也记下来键盘上敲出来是一回事理解原理是另一回事。比如为什么不能用/dev/sdb1直接写进 fstab因为设备名在重启后可能变化而 UUID 不变。为什么硬链接不能跨文件系统因为 inode 编号在全系统不唯一跨文件系统引用会乱套。为什么拔 U 盘前要sync因为缓存数据还没落盘直接拔会丢数据。把这些问题都弄明白后你会发现考试题虽然变来变去但都在考察同一批底层逻辑。机试里那些看起来复杂的存储题拆开来看无非就是“识别设备—创建文件系统—挂载—永久挂载—权限检查”这几步。7.3 最后的复习清单如果你时间紧可以把下面这条命令串当作第13章的最小可行动作清单每天过一遍lsblk # 看磁盘和分区 blkid /dev/sdb1 # 看UUID和文件系统类型 mkdir -p /mnt/data # 建挂载点 mount UUIDxxx /mnt/data # 手动挂载 findmnt /mnt/data # 确认挂载结果 df -hT /mnt/data # 看容量和类型 sync umount /mnt/data # 先同步再卸载再加上locate、find、which的常见用法以及硬链接、符号链接的判断这一章的知识点就基本全覆盖了。把这份清单练熟你再去应付 RHCSA 考试里文件系统相关的题目心里会稳很多。