Swap 交换空间 + 系统启动 + 故障排错|曼巴精神打磨 Linux 运维救命基本功

发布时间:2026/9/24 14:16:17

Swap 交换空间 + 系统启动 + 故障排错|曼巴精神打磨 Linux 运维救命基本功 文章目录一、Swap 交换空间内存不够硬盘来凑存储器金字塔原理Swap 到底是啥查看内存与交换空间Swap 大小参考Swap 实操全流程1. 创建 swap 分区2. 格式化交换空间3. 激活与查看4. 优先级设置5. 关闭与持久化二、CentOS7 启动全流程从加电到登录的九步运行级别与 target 对应三、忘记 root 密码两种方法直接重置方法 1rd.break推荐正统方案方法 2init/bin/bash四、/etc/fstab 引发的启动故障三种经典场景场景 1挂载点目录不存在场景 2设备名写错 / 不存在场景 3文件系统损坏五、GRUB2 配置与故障修复GRUB 配置别瞎改常用配置改菜单超时内核启动参数GRUB 菜单加密GRUB 故障修复故障 1引导程序损坏MBR 被清故障 2内核文件 vmlinuz 丢了六、拓展磁盘加密与灵魂拷问LUKS 磁盘加密灵魂拷问1. 为啥内核 vmlinuz 和 initramfs 要分开2. 为啥不直接挂载真正的根启动写在最后ManWhat can I say兄弟们运维最怕啥系统起不来、root 密码忘、内存跑满直接炸业务。今天把Swap 交换空间管理、CentOS7 启动全流程、root 密码重置、fstab 启动故障、GRUB2 排错五大块硬骨头啃透全是机房现场救命的本事打开 CentOS7 跟着练点赞收藏反复看关键时刻真能救场一、Swap 交换空间内存不够硬盘来凑存储器金字塔原理计算机存储就是一分钱一分货速度越快容量越小越贵速度越慢容量越大越便宜。从快到慢排成金字塔CPU 寄存器 → CPU 高速缓存 → 主存内存 → 辅助存储器硬盘、U 盘层层缓存取长补短用最低的成本凑出最好的性能。Swap 到底是啥Swap 就是交换空间说白了就是内存不够硬盘来凑和 Windows 的虚拟内存 pagefile.sys 一个德行。内存满了内核把暂时不用的内存页写到硬盘的 swap 区腾出内存给前台程序程序要用到换出去的数据再从 swap 读回内存纯纯救急方案swap 在硬盘上速度比内存慢几个量级真要性能还是得加内存条查看内存与交换空间free -m # 以MB为单位看着舒服输出字段记清楚Mem 行物理内存total 总容量、used 已用、free 空闲、buff/cache 缓存Swap 行交换空间total 总大小、used 已用、free 空闲Swap 大小参考生产别瞎设按内存大小来2G 以下内存swap 设内存的 2 倍2G~8G 内存swap 和内存一样大8G~64G 内存至少 4G swap64G 以上至少 4G够兜底就行要开休眠hibernate的话swap 得比内存还大要存下整个内存的数据。Swap 实操全流程1. 创建 swap 分区用 parted 划个分区类型设为 linux-swapparted /dev/sdb mklabel gpt parted /dev/sdb unit MiB mkpart swap01 linux-swap 1 20492. 格式化交换空间mkswap /dev/sdb13. 激活与查看swapon /dev/sdb1 # 激活swap swapon -s # 查看所有激活的swap设备4. 优先级设置多个 swap 的时候可以设优先级值越大优先级越高优先用高优先级的。swapon -p 4 /dev/sdb1不设优先级的话系统按顺序用第一个用完才用第二个。5. 关闭与持久化swapoff /dev/sdb1 # 临时关闭开机自动激活写进/etc/fstabUUIDxxx swap swap pri4 0 0swapon -a # 一键激活fstab里所有swap swapoff -a # 全部关闭曼巴忠告生产环境 swap 别关极端情况能防进程 OOM 被杀也别设太大大量用 swap 的时候系统会卡成狗该加内存就加内存。二、CentOS7 启动全流程从加电到登录的九步系统启动不是黑盒一步步清清楚楚排错才能精准定位。加电自检BIOS/UEFI 跑 POST 自检初始化硬件按启动顺序找启动磁盘引导接手读磁盘 MBR 主引导扇区把控制权交给 GRUB2 引导程序GRUB 菜单加载 grub.cfg 配置显示系统选择菜单选哪个内核启动加载内核加载内核 vmlinuz 和 initramfs 临时文件系统到内存内核初始化内核识别硬件initramfs 提供驱动第一个进程 PID 1 诞生systemd加载目标systemd 加载默认运行目标 target系统初始化读 /etc/fstab 挂载文件系统启动系统服务启动服务激活所有开机自启的服务终端登录启动 getty弹出登录提示符运行级别与 target 对应传统 SysVinit 的 0-6 运行级别CentOS7 用 target 对应核心记四个表格级别对应 target作用0-关机1rescue.target单用户模式root 直接登录修系统、改密码用3multi-user.target完全多用户文本模式服务器默认5graphical.target图形化多用户模式带桌面6-重启常用命令systemctl isolate multi-user.target # 切到文本模式 systemctl get-default # 看默认启动级别 systemctl set-default multi-user.target # 改默认启动级别三、忘记 root 密码两种方法直接重置密码忘了别慌不用重装系统GRUB 里改个参数就能重置。方法 1rd.break推荐正统方案启动时在 GRUB 菜单按e编辑启动项找到linux16开头的行末尾加rd.break按Ctrlx启动进入紧急 shell把根重新挂载为读写mount -o remount,rw /sysroot切换到真正的根系统chroot /sysroot改 root 密码echo 新密码 | passwd --stdin root关键一步SELinux 环境下必须打标记不然启动不了touch /.autorelabel两次 exit 退出系统自动重启新密码登录方法 2init/bin/bash同样编辑启动项linux16 行尾加init/bin/bashCtrlx 启动直接进 bash把根重挂载为读写mount -o remount,rw /删掉 root 密码进去再设passwd -d root执行 systemd 继续启动exec /usr/lib/systemd/systemd曼巴忠告只要是 SELinux 开着的系统改完密码一定要touch /.autorelabel不然重启完 SELinux 拦着你进不去系统经典中的经典坑四、/etc/fstab 引发的启动故障三种经典场景fstab 写错了系统直接启不来三种场景挨个排。场景 1挂载点目录不存在现象系统正常启动自动帮你创建挂载点目录一般不翻车。场景 2设备名写错 / 不存在现象启动找不到设备等 1 分 30 秒超时直接进 emergency 急救模式解决输入 root 密码进急救模式vim /etc/fstab把错的行注释掉或者改对exit继续启动就行。场景 3文件系统损坏现象启动尝试修复文件系统失败后进急救模式解决xfs_repair /dev/sdb1 # xfs文件系统修复修完 exit 继续启动。曼巴忠告生产环境 fstab 里优先用 UUID别用 /dev/sda1 这种设备名磁盘顺序变了、加了新盘设备名可能变直接启动失败。UUID 是唯一的永远不变。五、GRUB2 配置与故障修复GRUB 配置别瞎改记住铁律别直接改 /boot/grub2/grub.cfg这文件是系统自动生成的手改了下次更新内核直接给你覆盖白改。正确姿势改/etc/default/grub全局配置改/etc/grub.d/里的脚本然后执行grub2-mkconfig -o /boot/grub2/grub.cfg生成新配置常用配置改菜单超时vim /etc/default/grub GRUB_TIMEOUT5 # 改成5秒 grub2-mkconfig -o /boot/grub2/grub.cfg内核启动参数GRUB_CMDLINE_LINUX里加参数rhgb开图形化启动界面quiet减少启动日志只显示重要信息debug开详细启动日志排错的时候用net.ifnames0 biosdevname0网卡名改成传统 eth0不是 ens33 那种GRUB 菜单加密不想别人随便改启动项、进单用户模式给 GRUB 加个密码。grub2-mkpasswd-pbkdf2 # 生成密码哈希把哈希写到/boot/grub2/user.cfg生成配置生效。以后编辑启动项就得输用户名密码。GRUB 故障修复故障 1引导程序损坏MBR 被清现象开机找不到引导直接黑屏提示没有启动设备解决拿系统光盘启动选Troubleshooting→Rescue a CentOS system进入救援模式chroot 到硬盘上的系统chroot /mnt/sysimage重装 GRUB 引导grub2-install /dev/sda两次 exit 重启搞定。故障 2内核文件 vmlinuz 丢了现象启动提示找不到内核文件卡 GRUB 里解决光盘进救援模式重装内核 rpm 包或者从别的同版本系统拷一个过来。六、拓展磁盘加密与灵魂拷问LUKS 磁盘加密怕别人拔了硬盘直接读数据用 LUKS 加密整个分区。yum install cryptsetup -y cryptsetup luksFormat /dev/sdb1 # 初始化加密会清数据 cryptsetup open /dev/sdb1 crypt_disk # 打开映射输密码 mkfs.xfs /dev/mapper/crypt_disk # 格式化映射设备 mount /dev/mapper/crypt_disk /mnt # 挂载使用开机要输密码才能读盘物理拿了硬盘也读不了数据安全拉满。灵魂拷问1. 为啥内核 vmlinuz 和 initramfs 要分开内核是系统骨架只管核心功能initramfs 是临时工具箱装驱动、工具。分开灵活内核升级不用改驱动驱动更新不用换内核启动更快内核体积小加载解压快适配性强不同硬件换个 initramfs 就行内核通用2. 为啥不直接挂载真正的根启动真根在硬盘上啊内核刚起来的时候硬盘驱动、LVM、加密这些都没加载根本认不出根分区在哪。initramfs 就是先搭个临时系统把驱动加载了、LVM 激活了、加密解密了把根设备准备好再挂载真正的根顺理成章。写在最后ManWhat can I say交换空间调内存、启动流程懂原理、密码忘了解锁、启动故障排错这些都是运维的基本功也是现场救火的真本事。系统起不来的时候别慌从 GRUB 到 fstab从单用户到救援模式一步步排查总有办法。一定要虚拟机亲手复现调 swap、切运行级别、重置 root 密码、故意写错 fstab 看启动故障、重装 GRUB 引导每个坑都踩一遍比背十页笔记都管用。万丈高楼平地起底层原理搞懂了排错运维直接快人一步。后续持续更新 Linux 实战干货欢迎点赞收藏关注一起持续打怪升级Mamba out
延伸阅读

更多相关文章

2026/9/24 14:16:17

408考研高频考点拆解与一周复习规划

408考研高频考点拆解与一周复习规划 【免费下载链接】cs-408 计算机考研专业课程408相关的复习经验,资源和OneNote笔记 项目地址: https://gitcode.com/GitHub_Trending/cs/cs-408 我备考 408 考研最受益的一件事,是把 cs-408 这个仓库里 6其他资…

2026/9/24 15:06:26

GD32F427开发板GDLink Programmer下载程序与连接失败排查指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 15:06:26

RedisInsight实测:官方可视化工具如何解决Redis开发与调优痛点

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 15:06:26

科研AI工作台选型指南:从文献到实验的工具组合策略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 15:01:26

天天 AI Coding 的你,出去面试的竞争力是什么?

1. 引言 这两年 AI 编程工具铺天盖地,Cursor、Copilot、通义灵码、Claude Code…… 几乎每个开发者都在用。于是面试官开始问一个很扎心的问题:“既然 AI 都能写代码了,天天用 AI Coding 的你,凭什么比不用 AI 的人更有竞争力&…

2026/9/23 12:07:00

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/23 12:06:55

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/24 0:00:21

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:21

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:21

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/22 16:34:32

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/22 20:01:30

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码