云计算百科
云计算领域专业知识百科平台

Liunx操作系统故障处理

Liunx操作系统引导过程

inux 操作系统的引导过程是从开机到进入登录界面的完整流程,不同启动方式(BIOS/MBR 与 UEFI/GPT) 略有差异,但核心步骤一致

一   核心前提:BIOS/MBR 与 UEFI/GPT 两种启动模式

特性 BIOS/MBR 模式(传统) UEFI/GPT 模式(现代)
固件类型 基本输入输出系统(BIOS) 统一可扩展固件接口(UEFI)
磁盘分区表 主引导记录(MBR) 全局唯一标识分区表(GPT)
支持最大磁盘容量 2.2TB 无限制(理论上
安全启动 不支持 支持(防止恶意软件)

二     Linux 标准引导流程(以 BIOS/MBR 为例)

整个过程可分为 5 个核心阶段,环环相扣:

1. 开机自检(POST,Power-On Self-Test)

触发时机:按下电源键后,主板固件(BIOS/UEFI)首先启动。
核心作用:硬件完整性检测,包括 CPU、内存、硬盘、显卡、键盘等。
结果处理:检测通过:固件读取 启动顺序(BIOS 中可设置,如优先硬盘 / U 盘)。
                  检测失败:发出蜂鸣警报(不同厂商蜂鸣码含义不同,如内存故障常为 1 长 2 短)。

2. 主引导记录加载(MBR Boot Loader)

MBR 位置:硬盘的 第一个扇区(512 字节),包含
引导程序(前 446 字节):如 GRUB Legacy、LILO。
分区表(64 字节):记录 4 个主分区信息。
魔数(2 字节):0x55AA,标识 MBR 有效。

核心操作:固件根据启动顺序找到硬盘,读取 MBR 中的引导程序到内存,然后将控制权交给它。

3. 启动加载器(Boot Loader,核心:GRUB 2)

现代 Linux 几乎都用 GRUB 2(GRand Unified Bootloader 2),替代老旧的 GRUB Legacy 和 LILO。

核心功能:显示启动菜单:列出系统中已安装的 Linux 内核版本、Windows 等其他系统。
加载内核与初始化内存盘:用户选择系统后,GRUB 读取 /boot 分区中的 内核文件(vmlinuz-xxx)和 初始化内存盘(initrd.img-xxx)到内存。
initrd.img:临时根文件系统,包含启动必需的驱动(如硬盘控制器驱动),解决内核启动时无法识别根分区的问题。
传递参数给内核:如 ro root=/dev/sda1(指定根分区为 /dev/sda1,只读挂载)。

GRUB 2 关键文件:
/boot/grub/grub.cfg:GRUB 配置文件(自动生成,不建议手动修改)。
/etc/default/grub:用户自定义配置文件(修改后需执行 update-grub 生效)。

4.内核初始化(Kernel Initialization)

核心操作:1. 内核解压缩并加载到内存,初始化硬件驱动(从 initrd.img 中读取驱动)
2. 以 只读模式 挂载根文件系统(root=/dev/sda1)。
3. 启动 第一个用户空间进程:systemd(PID=1,现代 Linux )或 init(传统 SysVinit)。

5. 初始化进程(Systemd/Init):启动系统服务

这是引导的最后阶段,负责启动所有系统服务、用户登录界面。

systemd 通过 目标(target) 管理启动流程,替代传统的运行级别(runlevel)
 

传统运行级别 systemd 目标 作用
0 poweroff.target 关机
1 rescue.target 单用户救援模式
3 multi-user.target 多用户命令行模式(无图形
5 graphical.target 多用户图形界面模式
6 reboot.target 重启

核心步骤:

1. systemd 读取默认目标(/etc/systemd/system/default.target,通常链接到 graphical.target 或 multi-user.target)。
2.按依赖关系启动服务:如挂载 /etc/fstab 中的所有分区(将根分区从只读改为读写 rw)、启动网络服务、SSH 服务、图形界面服务(如 GNOME/KDE)。
3.启动 登录管理器:图形界面下为 gdm(GNOME)/sddm(KDE),命令行下为 getty,显示登录提示符

传统 init 流程(了解即可)

通过 /etc/inittab 文件定义运行级别,执行 /etc/rc.d/rc 脚本,启动对应运行级别下的服务(/etc/rc.d/rcX.d 目录,X 为运行级别)。

三  UEFI/GPT 引导流程的差异点

与 BIOS/MBR 相比,UEFI 引导省略了 MBR 阶段,核心差异在 第 2-3 阶段:
1. UEFI 固件直接读取 EFI 系统分区(ESP):ESP 分区:FAT32 格式,挂载点通常为 /boot/efi,存放 UEFI 引导程序(如 grubx64.efi)。
2. 引导程序位置:ESP 分区的 /EFI/ubuntu(Ubuntu)或 /EFI/centos 目录下,而非 MBR 扇区。
3. 安全启动:UEFI 会验证引导程序签名,确保未被篡改(需关闭安全启动才能安装部分 Linux 系统)。

四 常见引导故障排查

1. GRUB 菜单丢失,直接进入 grub> 命令行
原因:grub.cfg 损坏或 /boot 分区挂载失败。
解决:进入救援模式,重新生成 grub.cfg(update-grub)

2. 内核 panic:无法挂载根分区
原因:root= 参数错误、硬盘驱动缺失、根分区损坏。
解决:检查 grub 启动参数,修复根分区(fsck /dev/sda1)。

3. UEFI 模式下无法启动 Linux
原因:安全启动未关闭、ESP 分区未创建或损坏。
解决:BIOS 中关闭安全启动,重建 ESP 分区并重新安装 GRUB。

整个过程的核心是 控制权的逐级传递:固件 → 引导程序 → 内核 → 初始化进程,最终完成从硬件到用户空间的系统启动。

赞(0)
未经允许不得转载:网硕互联帮助中心 » Liunx操作系统故障处理
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!