Linux救援模式是什么,如何使用

一、Linux 救援模式是什么?

Linux 救援模式是一个独立的、精简的 Linux 系统环境。它通常从以下介质加载:

  • 系统安装光盘/USB(最常见)
  • 专用的救援磁盘(如 SystemRescueCd)
  • • 网络启动(PXE)

它的核心目的是:在不启动你硬盘上原本的、已损坏的 Linux 系统的情况下,为你提供一个可用的 Shell 环境,让你能够挂载原来的系统分区,并进行故障排查和修复。

** rescue mode 和 emergency mode 的区别:**

  • 救援模式 会尝试自动挂载 你的根文件系统到 /mnt/sysimage(但处于只读模式),并为你提供 root shell。它会尝试加载一些必要的驱动和网络。
  • 紧急模式 更加基础。它不会尝试挂载你的根文件系统,也不会设置任何东西(如网络),只是给你一个最简的 root shell,一切都需要你手动操作。当救援模式也失败时,可以尝试紧急模式。

二、什么情况下需要使用救援模式?

当你遇到以下问题时,救援模式很可能能帮到你:

    1. 文件系统损坏fsck 无法自动修复,需要手动干预。
    1. GRUB 引导程序损坏或丢失 :系统无法启动,黑屏提示 grub rescue> 或直接进入 BIOS。
    1. 误删关键系统文件 :如 /bin/bash, /etc/fstab 等。
    1. 忘记 root 密码:需要重置。
    1. 错误的配置文件 :错误的 /etc/fstab 配置导致系统无法挂载分区。
    1. 驱动问题:新安装的驱动导致内核恐慌(Kernel Panic),无法进入系统。
    1. 修复被覆盖的 MBR:Windows 安装后覆盖了 GRUB。

三、如何使用救援模式(以 CentOS/RHEL 为例)

以下是使用系统安装盘进入救援模式的标准流程

第 1 步:准备安装介质并启动
    1. 从官网下载与你系统版本匹配的 ISO 镜像(如 CentOS 7/8, RHEL 8/9),并制作成启动 U 盘。
    1. 将 U 盘插入故障服务器,进入 BIOS/UEFI 设置,确保从 U 盘启动
    1. 启动后,你会看到系统安装界面。
第 2 步:选择救援模式
    1. 在安装界面,选择语言和键盘布局(通常保持英文即可)。
    1. 接下来会看到一个名为 "Installation Summary" 或类似标题的界面。
    1. 找到并选择 "Troubleshooting" (故障排除)选项。
    1. 在故障排除菜单中,选择 "Rescue a CentOS system""Rescue a Red Hat Enterprise Linux system"
第 3 步:配置救援环境

系统会加载一个小型 Linux 环境,然后出现一个提示符,提供几个选项:

    1. 1) Continue继续 。系统会尝试自动查找并挂载你硬盘上的 Linux 安装,并将其挂载到 /mnt/sysimage。这是最常用的选项
    1. 2) Read-Only:以只读方式挂载,防止任何意外修改。
    1. 3) Skip跳过 。不挂载任何东西,直接进入命令行。如果你需要手动操作(比如修复 /etc/fstab),或者系统自动挂载失败,可以选择这个。

绝大多数情况下,我们选择 1) Continue

系统会提示:Your system has been mounted under /mnt/sysimage.(你的系统已被挂载到 /mnt/sysimage 下)。

第 4 步:切换根环境(Chroot)

这是最关键的一步!仅仅挂载了原来的系统还不够,你需要将当前的根目录"切换"到原来系统的根目录上,这样你执行的修复命令(如重装内核、修改密码)才会实际作用于原来的系统。

系统会提示你执行以下命令来完成切换:

代码语言:javascript

AI代码解释

复制代码
chroot /mnt/sysimage

执行后,你的命令行提示符可能会发生变化。现在,你所在的 / 目录就是你原来硬盘上的根文件系统了。

第 5 步:开始修复

现在,你可以像正常登录系统一样执行任何命令了。以下是一些常见修复示例:

  • 修复 GRUB:

代码语言:javascript

AI代码解释

复制代码
# 对于 Legacy BIOS 启动:
grub2-install /dev/sda

# 对于 UEFI 启动(确保 EFI 分区已挂载,通常是 /boot/efi):
grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
# 重新生成配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
  • 重置 root 密码:

代码语言:javascript

AI代码解释

复制代码
passwd root

然后输入两遍新密码。

  • 检查并修复文件系统:

代码语言:javascript

AI代码解释

复制代码
# 首先卸载要检查的分区(如果已挂载)
umount /dev/sda1
# 然后修复
fsck -y /dev/sda1
  • 检查 /etc/fstab 文件:

代码语言:javascript

AI代码解释

复制代码
cat /etc/fstab

确保没有错误的条目。

第 6 步:退出并重启
    1. 修复完成后,退出 chroot 环境:

代码语言:javascript

AI代码解释

复制代码
exit
    1. 退出救援模式的 Shell:

代码语言:javascript

AI代码解释

复制代码
exit
    1. 系统会回到之前的界面,取出安装 U 盘,并选择 "Reboot" 重新启动计算机。

四、对于 Ubuntu/Debian 系统

Ubuntu/Debian 的安装盘也提供救援模式,通常称为 "Recovery Mode""Rescue Mode"

    1. 从安装盘启动。
    1. 选择语言后,在主菜单选择 "Try or Install Ubuntu"
    1. F10C 键进入命令行(具体提示看屏幕下方)。
    1. 手动挂载根分区(过程更接近上述的"Skip"选项)
相关推荐
用户1204872216120 小时前
Linux驱动编译与加载
linux·嵌入式
程序员老赵21 小时前
服务器文件不想 SFTP 上传?Docker 跑个 File Browser,浏览器就能管理
服务器·docker·开源
火车叼位1 天前
写给初级开发者:SSL、SSH、HTTPS 与证书体系全解析
运维
vivo互联网技术1 天前
从 10 分钟到 1 秒:ES 深度分页任意跳页的三轮优化实战
服务器·数据库·redis·elasticsearch·深度分页
用户805533698031 天前
Input 子系统架构:Core、Handler、Driver 三层是怎么协作的
linux·嵌入式
用户805533698031 天前
RK-Forge外设系列开篇 - 把板子从「能启动」变成「能用」:Ethernet/SPI/MMC 三个纯接线外设
linux·github·嵌入式
小猿姐1 天前
唯品会大规模数据库云原生实践:基于 KubeBlocks 管理数千实例的统一运维之路
运维·elasticsearch·云原生
七歌杜金房2 天前
我终于又有了自己的 Linux 电脑
linux·debian·mac
SkyWalking中文站2 天前
认识 Horizon UI · 5/17:3D 基础设施地图
运维·监控·自动化运维