
一直追这个系列的朋友应该知道前九篇我都在强调动手练习今天这篇做个阶段汇总把 RH134 阶段真正容易丢分的模块重新过一遍。RH134 的全称是 Red Hat System Administration II很多同学把它当成独立的证书课程其实它和 RH124 合在一起复习对应的是红帽官方认证入门级的 RHCSA 考试。这篇文章不打算罗列所有命令那样太没营养而是按照我实操下来觉得最容易踩坑、也最值得反复练的几个方向来拆包括 systemd 服务管理、LVM 存储调整、SELinux 排错、firewalld 网络策略、Podman 容器以及考场节奏控制。准备考 RHCSA 的人、正在跟红帽课程但又觉得光看书不够的人或者工作中要接手 Linux 服务器日常维护的同行都可以从这篇里找到能直接照着做的东西。1. 先定靶子RH134 到底在考什么别把复习方向带偏1.1 RH124 到 RH134 的进阶逻辑很多人一开始搞不清 RH124、RH134、RH199 这些编号之间的关系。RHCSA 考试本身对应的是 RH124Red Hat System Administration I加 RH134Red Hat System Administration II两门课的内容。RH124 更像带你入门讲用户、权限、文件操作、vim、进程管理、网络基础这些基本功RH134 则明显往生产环境靠重点是系统服务怎么被管理、存储空间怎么规划和扩容、安全机制怎么配置、自动任务怎么调度还有容器化应用的起步。我的理解很简单RH124 解决的是“这台机器能不能用起来”RH134 解决的是“这台机器在复杂环境里能不能长期稳定地跑、出问题能不能快速定位”。所以复习 RH134 的时候如果还抱着背命令的思路方向就错了。考官真正想看的不是你会敲多少命令而是你有没有形成系统管理的思维习惯。举个例子碰到“重启后网卡没起来”这种问题命令本身不难难的是你能不能在脑子里快速排查一遍NetworkManager 有没有接管配置文件是不是指向了错误的接口名开机自启有没有生效这种排查路径就是 RH134 阶段反复训练的东西。1.2 高频模块与真实运维场景的映射平时工作中系统管理员天天做的一堆事基本都被 RH134 覆盖了。我会把经常被抽到的内容分成几大类方便复习时心里有个总纲考试模块核心考点对应真实场景systemd 服务管理unit 文件、开机自启、服务依赖新部署的 Web 服务要求宕机自动拉起存储与文件系统LVM、分区、挂载、swap 扩容磁盘告警后在线扩容不让业务中断SELinux三种模式、布尔值、文件上下文改了端口后服务被拒需要查 AVC 日志firewalld区域、端口、富规则给新上线应用放行指定端口计划任务cron、at、anacron每天凌晨做日志切割、每周做备份容器基础Podman 管理镜像和容器用容器跑轻量应用但不用 Docker 守护进程归档与传输tar、rsync、scp跨服务器迁移数据打包备份调优与日志tuned、journald、rsyslog服务器性能不佳时调整内核参数和日志策略这张表不是让你死记硬背而是帮你建立对应关系。考试题虽然写得比较死但如果你能想到每个模块背后的使用场景理解起来会快很多。2. 练习环境与方法用对方法比多敲一遍命令更重要2.1 实验环境怎么搭KVM 虚拟机加快照错一次重置一次RH134 的实验对象最好是真机上的虚拟机不建议拿一台云服务器硬扛。我练的时候用的方案是 KVM virt-manager装一台最小化的 Red Hat 9 虚拟机做靶机再打一个干净基线快照练坏了直接回滚。这样做的好处是你可以放心大胆地把 LVM 卷删掉重建、把 SELinux 模式改错、把 firewalld 默认 zone 换掉而不用担心把上课环境搞挂。装系统的时候有两个建议。第一磁盘分区不要用默认的自动分区手动创建 /boot、/、swap并预留一部分未分配空间后面练 LVM 扩容和新建物理卷时直接有素材可用免得再去挂一块虚拟盘。第二root 密码最好设置成自己容易记住但又不至于泄露的比如统一格式考试时能少一分紧张。网络方面给虚拟机配一个 NAT 网络就行方便和宿主机互通练 scp、rsync 的时候要用到。2.2 三个事半功倍的练习习惯光有环境还不够练习方法决定你最后是“会做”还是“看着会做”。我有三个习惯一直沿用到现在。第一个习惯是场景化练习而不是按命令清单刷题。比如今天定一个目标“给系统新增一块 2G 的磁盘用 LVM 建一个名为 data 的逻辑卷容量 800M格式化成 ext4开机自动挂载到 /data并保证文件系统的标签正确。”这个场景里你需要操作 fdisk 分区、创建 PV/VG/LV、格式化、写 /etc/fstab、验证重启一步都不少。练完了再换个场景把这块逻辑卷扩大到 1.5G并且要在线完成。这样自然就把知识点串起来了。第二个习惯是故意制造故障再排查。练 SELinux 的时候我就先把 httpd 的端口从 80 改成 8080然后重启服务等它起不来再一步步看日志、改布尔值、调文件上下文。练 systemd 的时候写一个依赖关系错误的 unit 文件看服务失败提示再回头改依赖。制造故障的过程其实就是模拟考试中的排错题做多了考场遇到类似情况心里不慌。第三个习惯是卡时间做模拟。RHCSA 考试时间是 2 个半小时题目大概 15 到 20 道每道题其实都不难但就是量大。我在考前两周每天做一套模拟题严格限制时间到点就停然后对着评分标准检查哪里丢分。这样练的不只是技术还有做题节奏尤其是先做哪类题、遇到不会的怎么处理。3. 核心模块逐个拆解最容易扣分的五个方向3.1 systemd 与开机流程管理服务别只记 systemctl 三件套只要考 RHCSAsystemctl restart、enable、status 这三个操作几乎必考。但你如果只背这三个遇到偏一点的题就抓瞎。真正重要的是一条完整链路开机后 grub 引导内核内核启动后交给 systemdsystemd 按 unit 之间的依赖关系拉起各个服务。因此考题可以有各种变体让某个服务在系统启动后等待网络就绪再启动、写一个自定义 unit 文件让脚本随开机运行、在 rescue 模式下修复改坏的服务启动配置。我建议把 unit 文件拆开理解。一个 unit 文件里常见的是 [Unit] 段的 After、Requires、Wants以及 [Service] 段的 ExecStart、Restart、Type。考试不一定让你写满全部字段但你要能看懂并能在已有文件里改关键字段。举个我当时练习的例子给一个 Nginx 服务配置了 ExecStart/usr/local/nginx/sbin/nginx结果 systemctl start 一直失败提示找不到文件一查原来这个服务的 unit 文件放在 /usr/lib/systemd/system 下而自作聪明在 /etc/systemd/system 里又建了一个同名的后来发现是开头的反斜杠被转义弄错了。最终是先用 systemctl cat 看当前生效的 unit再从错误提示里一层层找。另外systemd 还有个容易忽略的细节修改了 unit 文件之后要执行 systemctl daemon-reload不然系统用的还是旧配置。改错了还不至于立刻挂但如果题里要求“使用你修改后的配置启动服务”你忘记 reload那结果就完全不对了。3.2 LVM 存储调整在线扩容不是简单 lvextend 一下存储题目在 RHCSA 里存在感非常高LVM 更是重灾区。考试常见的考法包括把新硬盘做成物理卷加入卷组新建逻辑卷把已有逻辑卷扩容把卷组里某个物理卷移走创建带标签的逻辑卷并实现开机挂载。看起来命令就那么几个但坑往往藏在参数里。比如创建好逻辑卷之后需要格式化文件系统然后挂载。如果你用 xfs 文件系统扩容时要用 xfs_growfs 来让文件系统的容量真正扩到最新大小如果你用 ext4要用 resize2fs。挂载到永久位置时/etc/fstab 里最好写 UUID。用 blkid 查看 UUID 是最保险的不要偷懒顺手填 /dev/mapper 的路径因为设备名可能变而 UUID 是稳定的。挂载目录要事先建好fstab 写错了系统启动时会直接进入 emergency 模式这也是一道常出的隐藏扣分项。有一种题考的是 swap 扩容即新增一个 swap 分区或 swap 文件。我的建议是把 swap 做成文件比如 /swapfile因为它在虚拟机里好控制大小调整也灵活。命令流程是 dd 或 fallocate 生成文件chmod 600 设置权限mkswap 格式化swapon 启用最后在 /etc/fstab 里加一行。整个过程不难但顺序容易乱尤其是忘了 chmod导致系统提示 insecure permissions虽然能用但不规范考试会被扣分。3.3 SELinux 排错从拒绝日志反推修改方向SELinux 对很多新手来说像玄学一会儿服务起不来一会儿目录访问不了关了又怕考试扣分。其实它的原理并不复杂每个进程和文件都有一个安全上下文SELinux 策略规定哪些上下文之间可以交互。考试不会考复杂策略编写但一定会考排错思路。记住一个核心动作出问题先看 /var/log/audit/audit.log 里的 typeAVC 记录或者用 ausearch -m avc -ts recent 查最近的拒绝日志。这条命令能告诉你什么进程想访问什么资源时被拒绝。根据拒绝信息常见修法有三种修改文件的 SELinux 类型semanage fcontext restorecon、调整布尔值setsebool -P、或者改端口标签semanage port -a。比如 httpd 想监听 8080 端口默认策略里只有 80、81 等少数端口允许你这个 8080 没被标记就要用 semanage port 添加进去。布尔值那类题也很典型比如允许 FTP 服务访问用户家目录、允许 httpd 访问用户主目录这些都有对应开关用 getsebool -a | grep 可以快速查看。我常用的办法是先搜索关键词比如题目提到 httpd、home就 grep 一下找到标签很像的那一条再用 setsebool -P 永久生效。P 参数很关键不加的话重启后系统又回到原值这题就白做了。3.4 firewalld 策略配置别只改 runtime忘了 permanentfirewalld 相关的题目一般以这样的形式出现给默认 zone 开放某个端口让某个 IP 能访问某服务或者把一个网口从一个 zone 换到另一个 zone。操作上用 firewall-cmd 可以搞定但最大的坑是修改是否会永久生效。firewall-cmd --add-port8080/tcp 只对当前运行配置生效一旦 reload 或重启规则就消失。考试要求“永久生效并立即生效”标准写法是 firewall-cmd --permanent --add-port8080/tcp然后 firewall-cmd --reload。注意顺序如果先执行非 permanent 版本的再执行 permanent最后 reload那之前临时加的也会消失需要重新加。更省心的做法是先 --permanent 加规则再 --reload 一次性加载这样运行配置和永久配置保持一致。还有一个细节是 zone 和接口的绑定。用 nmcli 或 firewall-cmd --change-interface 把接口从默认的 public 改到 internal一定要看一下改完后接口的 active zone 到底在哪。题里如果明确说“让 eth1 属于 trusted 区域”那你要保证这个接口在系统重启后依然属于 trusted这意味着要用网卡配置或 nmcli connection modify 来持久化绑定而不是临时改一下。3.5 容器基础Podman 的命令几乎覆盖日常使用红帽近几个版本的考试已经把容器作为必考内容了容器技术的考题方向比较固定拉镜像、起容器、映射端口、设置环境变量、挂载卷、保存镜像为一个文件、创建 systemd 服务让容器开机自启。Podman 和 Docker 命令高度相似但它不依赖守护进程启动时权限要求也更宽松。练习时需要注意部分环境里普通用户就能跑 rootless 容器所以在这里“普通用户和 root 的容器命名空间不一致”是个常见盲区。考试里如果要求你在普通用户下创建并管理容器注意使用 podman --user 相关的命令或先检查当前是否已有容器环境避免 root 和普通用户之间内容对不上。打包镜像这题也常考核心命令是 podman save -o 文件名.tar 镜像名还原时用 podman load -i。这类题得分容易前提是镜像名不敲错。练的时候可以配合 skopeo inspect 或 podman images 来确认镜像名避免记错 tag。4. 真题节奏与考场排错动手前的三分钟比什么都重要4.1 先读题再动键盘很多考生在 RHCSA 考场翻车不是技术不会而是审题太急。题目里常有“持久化”“开机自动”“同时在 /etc/fstab 中配置”这类限定词漏掉任何一个条件整道题就算错了。我习惯拿到题先大概浏览一遍先做有把握的再做不太确定的最后留十分钟统一验证。每道题做完后都要检查一个核心问题如果我现在重启系统我做的配置还在不在这个检查逻辑对应着考试里最常见的三类扣分点没有 --permanent、fstab 没写对、服务没 enable。操作题的分数往往是由多个验证点组成的少一个环节可能一道 10 分的题只剩 4 分。你可能觉得“我明明做到了就是没重启验证”但考官的脚本只检查最终状态。4.2 考场上的快速自查清单考前两周我把一个自查清单贴在命令行窗口旁边每次模拟题做完了就对着过一遍。你可以把它抄下来考场上做完题也能用查看服务是否 running 且 enabledsystemctl status 服务名查看防火墙端口是否已在运行时生效firewall-cmd --list-ports 或 --list-services查看挂载是否永久mount -a 加上 grep /etc/fstab 检查查看 SELinux 上下文ls -Z 目标文件对比是否和同目录文件的一致查看逻辑卷容量lvdisplay 加上 df -hT 两次确认查看计划任务是否存在crontab -l 或 ls /etc/cron.d/查看容器是否能被普通用户启动podman ps -a这些命令花不了两分钟但能把低级错误全部拦下来。4.3 网络不可用时怎么排查考场可能会有网络环境的坑比如你配置好了静态 IP但服务还是 ping 不通。我建议形成一套固定的排查顺序先 ip addr 看接口有没有拿到地址再 ip route 看默认路由在不在然后 cat /etc/resolv.conf 看 DNS 配置最后 ping 网关和 ping 外网分开做缩小问题范围。虚拟机上常见的坑是 NetworkManager 没有接管接口或者接管了但配置文件的连接名和接口名对不上。改完配置后用 nmcli connection up 连接名 手动激活一次比单纯重启网络服务更可靠。考试时你可能没有太多时间去重启整台机器手动激活能节省很多时间。5. 翻车现场实录这几类问题我几乎每次都碰到5.1 fstab 写错导致开机进 emergency这个问题我栽过不止一次。每次问题都出在贪快没有用 UUID或者目录随便写。有一次我把分区挂载到 /data结果忘了先建目录重启后系统直接报 mount 失败卡在 emergency 模式。原因是 /etc/fstab 里指定的挂载源不存在或者目录不存在系统启动时无法完成挂载就进入紧急模式等待人工处理。修法其实很简单在 emergency 模式下把文件系统改成只读重新挂载然后用 vi 修 fstab 或强制卸载那块挂载再重启。但考场上这样一折腾时间就没了。所以我在练习阶段强制要求自己fstab 写完必须执行 mount -a 验证再顺手重启一次确认。5.2 时间同步没配好日志时间对不上RHCSA 考试里有可能考到时间同步比如要求配置 chrony 指向某个服务端。即使题里没考我也建议把 chrony 练一遍因为日志排查时时间戳不准确会直接影响你对问题的判断。配置方法无非是编辑 /etc/chrony.conf写入 server 地址然后 systemctl enable --now chronyd。验证用 chronyc sources 或 chronyc tracking。有次练习时我明明配好了 server但 chronyc sources 一直显示 unreachable后来发现是防火墙把 UDP 123 端口拦了。这种跨模块联动的问题恰好是 RHCSA 喜欢考的方向值得多留心。5.3 普通用户和 root 的容器分属不同存储Podman 在普通用户和 root 下运行默认存储目录完全不同因此你在 root 下创建的容器切到普通用户用 podman ps 是看不到的。考试如果要求“用用户 alice 运行一个容器”你就要以 alice 身份执行 present 的 podman 命令而不是打着 root 做完再切用户。我在练习时一开始就在 root 下起了容器做完发现题目要求的是 alice 用户结果所有容器都对不上号后来重新以 alice 身份登录再操作一遍才算了解。另外有些镜像需要普通用户映射到更大的 UID 范围可能会触发无法拉取或启动失败这时可以通过编辑 /etc/subuid 和 /etc/subgid 或者在考试环境中用管理员预先调整用户 UID 范围来解决但这类题很少不用深挖只要知道这个坑存在于什么位置就好。6. 我最后想提醒你的一点把“会”变成“稳”在整个 RH134 复习中我最大的体会是“会”和“稳”是两码事。你也许在练习环境里成功配置过复杂 LVM也许看过十几篇解析文章但真正到了考场时间压力会放大你所有的不确定性。一个命令忘加参数、一个服务忘记 enable结果就可能完全不同。所以我在最后一周做了这样几件事重新按模块把官方课程大纲看了一遍把每个目标标题改写成“我能不能用实际操作证明我会”比如大纲写“配置系统调优”我就想一套操作启用 tuned 的某个 profile并说明不同 profile 的适用场景大纲写“配置 SELinux 以满足需求”我就练排错流程和布尔值修改。这个思路推荐给你比单纯刷题更能检验真实水平。如果这篇文章能帮你少走哪怕一个弯路我就觉得这次总结没白写。后续我还会把具体的题目类型和参考命令整理成一份速查表放在下一篇里继续分享。