首页/新闻资讯/正文详情

Linux运维:swap交换空间、GRUB2引导、救援模式重置root密码、fstab故障排错

发布时间:2026/9/24 3:44:24 来源:云帆数科 栏目:资讯中心
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校验。

相关推荐

【AUTOSAR】 Classic Platform 分层软件架构入门
【AUTOSAR】 Classic Platform 分层软件架构入门

【AUTOSAR】 Classic Platform 分层软件架构入门 刚开始看 AUTOSAR CP 的代码和配置,最先要搞清楚的就是这套分层结构:谁在上、谁在下、谁可以调谁。本文按这个顺序讲一遍,结论以官方规范为准。 主要参考的几份规范: AUTOSAR_C… · 2026/9/24 3:44:17

Ubuntu 20.04下RTL8111/8168网卡驱动r8168编译与DKMS配置指南
Ubuntu 20.04下RTL8111/8168网卡驱动r8168编译与DKMS配置指南

/* 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:43:59

深入解析 go-ansiterm:跨平台 ANSI 终端模拟的状态机解析器及其在 Windows 控制台中的应用
深入解析 go-ansiterm:跨平台 ANSI 终端模拟的状态机解析器及其在 Windows 控制台中的应用

人工智能AI AgentAgent 沙箱云原生容器运行时零信任 【免费下载链接】substrate Agent Substrate: the core system 项目地址: https://gitcode.com/GitHub_Trending/substrate7/substrate 点击查看 免费下载 导读 go-ansiterm 是一个用 Go 实现的跨平台 ANSI 终端… · 2026/9/24 3:43:53

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

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

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:04

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:04

# 从单智能体到多智能体:这是为什么
# 从单智能体到多智能体:这是为什么

搜索“site:ijcai.org 2026 large language model multi-agent”,DuckDuckGo 返回 2024 年的综述和 2025 年的 L2M2 框架论文。这个结果并不意外——LLM 多智能体系统从提出到工程落地,一直是 IJCAI 最拥挤的赛道之一。与其追逐新名词,不如拆… · 2026/9/24 4:27:58

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:27:58

ESP8266/ESP32多屏驱动方案:共享总线加分时片选实现MAX7219点阵屏控制
ESP8266/ESP32多屏驱动方案:共享总线加分时片选实现MAX7219点阵屏控制

/* 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:52

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

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

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码