Linux运维:swap交换空间、GRUB2引导、救援模式重置root密码、fstab故障排错
swap交换分区 系统启动原理完整笔记一、swap交换空间swap交换分区在硬盘上划分一块空间充当内存后备。当物理内存耗尽时内核会把长时间不访问的内存数据冷页写入swap当程序再次需要该数据时再从swap读回物理内存。⚠️swap本质是硬盘读写速度远低于物理内存不能替代真实内存。swap工作流程程序运行数据存放在物理内存。物理内存占用接近耗尽内核筛选冷页很久没有访问的数据。将冷页数据写入swap分区释放物理内存给其他程序使用。如果冷页的数据需要被访问内核再把swap的数据重新读回物理内存。free查看内存与swapfree# 以MB为单位显示free-m字段说明字段说明Mem total物理内存总大小Mem used已经使用的内存Mem free完全空闲未使用内存shared多个进程共享内存buff/cache缓冲区、页缓存占用available应用程序可用内存最重要Swap total交换空间总大小Swap used已经使用swap大小Swap freeswap空闲大小创建swap分区方式1使用磁盘分区作为swap使用parted/fdisk/gdisk划分分区分区类型设置为linux‑swap# gpt磁盘示例创建2G大小swap分区parted/dev/sdb mklabel gptparted/dev/sdb unit MiB mkpart swap01 linux-swap12049parted/dev/sdb unit MiB printmkswap格式化swap分区mkswap/dev/sdb1# blkid可以获取swap的UUIDblkid /dev/sdb1激活、查看swap# 激活swap分区swapon/dev/sdb1# 查看所有swap设备、类型、大小、优先级swapon-s# 指定优先级数字越大优先级越高优先被使用swapon-p4/dev/sdb1取消swap激活#关闭单个swapswapoff /dev/sdb1#关闭全部swapswapoff-a/etc/fstab持久化开机自动激活swap编辑/etc/fstab推荐使用UUIDUUID2bf4e179-3648-4412-9495-3b278df4acd6 swap swap pri4 0 0生效校验#读取fstab激活所有fstab内定义的swapswapon-a补充也可以使用swapfile交换文件不需要单独分区。二、CentOS7系统完整启动原理CentOS7采用systemd作为PID 1初始化进程整体启动流程上电BIOS硬件自检 → MBR引导 → GRUB2引导菜单 → 加载内核initramfs → 内核启动systemd(PID1) → systemd执行target目标 → 启动系统服务 → mingetty登录终端1. BIOS阶段开机BIOS进行硬件POST自检检测CPU、内存、硬盘、显卡硬件是否正常。根据BIOS设置的启动顺序找到启动磁盘读取磁盘最前面512字节MBR主引导记录。2. MBR主引导记录MBR一共512字节446字节引导代码BIOS把执行权交给这里64字节4个分区表项2字节55AA结束标记代表有效MBRMBR引导代码将系统控制权转交GRUB2引导程序。3. GRUB2引导阶段读取/boot/grub2/grub.cfg弹出开机菜单支持选择不同内核版本。在开机菜单界面按e进入编辑模式可以临时修改内核启动参数。在linux16内核行末尾添加rd.break按下Ctrlx进入救援模式常用于重置root密码。相关配置文件说明/etc/default/grubgrub全局变量设置超时时间、内核启动参数。/etc/grub.d/*.cfg数字开头脚本从小到大执行拼接生成最终grub.cfg。/boot/grub2/grub.cfg真正生效引导配置禁止直接编辑通过grub2‑mkconfig生成。重新生成grub配置命令grub2-mkconfig-o/boot/grub2/grub.cfggrub设置菜单超时时间vim/etc/default/grubGRUB_TIMEOUT10#修改超时10秒#重新生成配置grub2-mkconfig-o/boot/grub2/grub.cfgrebootgrub加密防止修改启动项#生成加密密码哈希grub2-mkpasswd-pbkdf2#把生成的哈希密码写入/boot/grub2/user.cfgvim/boot/grub2/user.cfgGRUB2_PASSWORDgrub.pbkdf2.sha512.xxxxxxx#更新grub配置grub2-mkconfig-o/boot/grub2/grub.cfg4. 内核与initramfs阶段GRUB把内核vmlinuz与initramfs内存临时文件系统加载进内存。initramfs内置磁盘驱动、LVM、RAID驱动内核依靠它识别硬盘硬件。内核识别到真实根文件系统切换真正根/。内核启动用户空间第一个进程systemdPID1所有进程的父进程。5. systemd执行target目标targetsystemd的单元集合相当于运行级别。target作用poweroff.target关机reboot.target重启rescue.target救援模式基础环境尽量初始化完成用于修复故障、重置root密码emergency.target紧急模式几乎不初始化根文件系统损坏、fstab严重错误进入multi‑user.target字符终端多用户模式无图形graphical.target图形界面模式查看与修改默认开机target#查看开机默认启动目标systemctl get-default#临时切换当前系统运行目标不修改开机systemctl isolate multi-user.target#设置开机默认进入字符模式systemctl set-default multi-user.target6. 系统初始化sysinit.targetsysinit.target完成底层初始化挂载根、boot、swap文件系统加载内核模块设置系统时钟SELinux初始化。之后根据default.target并行启动各类系统服务sshd、network等。systemd最大特点并行启动服务提升开机速度。7. mingetty登录终端服务启动完毕启动mingetty终端程序弹出登录提示符等待用户输入账号密码登录系统。三、rd.break救援模式重置root密码操作步骤开机grub菜单按e编辑内核项找到linux16行行末尾添加rd.break按Ctrlx启动。此时根文件系统/sysroot是只读挂载重新挂载为读写模式mount-oremount,rw /sysroot切换真正根环境chroot/sysroot修改root密码echo新密码|passwd--stdinroot退出chroot两次exit重启系统。四、/etc/fstab故障引发启动失败/etc/fstab定义开机自动挂载设备配置写错会导致开机进入紧急模式emergency.target。故障1挂载点目录不存在fstab写的挂载点目录不存在。现象系统开机自动尝试创建目录一般不会进入紧急模式挂载失败日志告警。故障2设备UUID/设备名写错fstab填写错误UUID或者磁盘设备名。现象系统等待超时默认1分30秒超时失败进入emergency紧急模式提示输入root密码。修复输入root密码登录。vim /etc/fstab修正错误行。mount -a测试挂载是否正常。exit退出系统继续启动。故障3文件系统损坏xfs/ext4文件系统元数据损坏无法挂载。现象进入紧急模式。修复#xfs修复xfs_repair /dev/sdb1#ext4修复e2fsck-f/dev/sdb1rescue.target救援模式 vs emergency.target紧急模式对比项目rescue.target救援模式emergency.target紧急模式进入grub参数linux16行末尾加rd.breaklinux16行末尾加systemd.unitemergency.target初始化程度sysinit.target尽量完成基础服务加载最小初始化几乎不加载驱动服务根文件系统尝试挂载根默认只读ro根挂载失败才会进入该模式典型用途重置root密码、普通系统故障修复根分区损坏、fstab严重错误登录需要root密码需要root密码避坑总结swap是硬盘模拟内存性能差不能替代物理内存优先使用UUID写fstab。grub.cfg禁止直接修改修改/etc/default/grub后执行grub2‑mkconfig生成配置。rd.break救援模式重置密码必须先mount -o remount,rw /sysroot再chroot /sysroot。/etc/fstab修改完务必执行mount -a测试避免配置错误导致开机进入紧急模式。rescue救援模式适合改密码emergency紧急模式用于根分区严重损坏场景。面试速记小结swap作用内存不足把冷页换出到磁盘swapon激活、swapoff关闭fstab持久化。CentOS7启动流程BIOS → MBR → GRUB2 → kernelinitramfs → systemd(PID1) → target →服务 →登录终端。grub配置文件/etc/default/grub使用grub2‑mkconfig生成grub.cfg。rd.break重置root密码三步重新挂载读写、chroot、修改密码。fstab写错会进入emergency紧急模式修复完用mount -a校验。

相关新闻

ADAU1701硬件设计与SigmaStudio工程实战指南

ADAU1701硬件设计与SigmaStudio工程实战指南

/* 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 3:44:43 阅读更多 →
AI陪伴机器人单文件H5宣传站-一个人怎么写出项目官网

AI陪伴机器人单文件H5宣传站-一个人怎么写出项目官网

11-单文件H5宣传站-一个人怎么写出项目官网系列:AI 伙伴(AI-Partner)——具身智能陪伴机器人 数据接口部署与二次开发篇(11/12)一、先抛问题:项目官网到底需要多重 AI 伙伴(AI-Partner&#xf…

2026/9/24 3:43:42 阅读更多 →
使用 Meshery 构建 NGINX Init Container 与 VHost 多域名托管的弹性设计模式

使用 Meshery 构建 NGINX Init Container 与 VHost 多域名托管的弹性设计模式

云原生微服务运维DevOps 【免费下载链接】meshery Meshery, the cloud native manager 项目地址: https://gitcode.com/GitHub_Trending/me/meshery 点击查看 免费下载 本指南围绕 Meshery Catalog 中一份标记为 resiliency(弹性)类型的 NGI…

2026/9/24 3:42:42 阅读更多 →

最新新闻

LPC2388实战指南:AMBA总线与ARM7嵌入式开发深度解析

LPC2388实战指南:AMBA总线与ARM7嵌入式开发深度解析

/* 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 4:28:13 阅读更多 →
定制柜背板 5 毫米、9 毫米、18 毫米,各用在哪

定制柜背板 5 毫米、9 毫米、18 毫米,各用在哪

背板用 5 毫米、9 毫米还是 18 毫米,先看柜子挂在哪个房间、柜深多少、跨度多长,不是越厚越合适。这是做海口全屋定制时容易被一句话带过去的构件,也容易被"加厚就是升级"的直觉带偏。欧派大家居在海口是有实体门店的连锁体系&…

2026/9/24 4:28:13 阅读更多 →
nginx-ui MCP 配置管理工具详解:让 AI Agent 安全读写 Nginx 配置文件

nginx-ui MCP 配置管理工具详解:让 AI Agent 安全读写 Nginx 配置文件

后端前端运维MCP 服务 【免费下载链接】nginx-ui Yet another WebUI for Nginx 项目地址: https://gitcode.com/gh_mirrors/ngi/nginx-ui 点击查看 免费下载 导读 本文聚焦 nginx-ui 内置的 MCP(Model Context Protocol)配置管理模块&#…

2026/9/24 4:28:13 阅读更多 →
Talos Linux ResolverConfig 配置指南:nameservers、searchDomains 与 hostDNS 全解析

Talos Linux ResolverConfig 配置指南:nameservers、searchDomains 与 hostDNS 全解析

云原生操作系统容器编排 【免费下载链接】talos Talos Linux is a modern Linux distribution built for Kubernetes. 项目地址: https://gitcode.com/gh_mirrors/ta/talos 点击查看 免费下载 本文基于 Talos Linux(v1.15 参考文档与源码)系…

2026/9/24 4:28:13 阅读更多 →
Storm 与机器学习:在线模型更新、实时预测与特征工程管道

Storm 与机器学习:在线模型更新、实时预测与特征工程管道

Storm 与机器学习:在线模型更新、实时预测与特征工程管道本文探讨了如何利用 Apache Storm 构建机器学习在线模型更新、实时预测与特征工程管道。从基础架构到具体实现,详细介绍了 Storm 与机器学习系统的集成方案,包括在线模型更新机制、实时…

2026/9/24 4:28:13 阅读更多 →
高通骁龙865救砖指南:QPST与9008模式底层刷机实战

高通骁龙865救砖指南:QPST与9008模式底层刷机实战

/* 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 4:27:12 阅读更多 →

日新闻

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

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

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

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

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

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

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

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

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

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/23 4:49:06 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →