`
Michaelmatrix
  • 浏览: 215268 次
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Linux系统启动过程及grub引导故障排错

 
阅读更多
Linux 系统启动过程:
1、 主机开机后,就是硬件检测( POST ),通过后再根据 BIOS 里面设置的启动顺序找到启动驱动器(如硬盘,光驱等),计算机启动都要经过这一步,没什么好说的啦。
2、 读取硬盘 MBR ,启动系统引导程序(如 grub lilo ),再由系统引导程序加载 Linux 的核心( kernel
系统引导程序引导并运行核心可以分两个阶段:
一阶段:即 BIOS MBR 中读入 IPL initial program loaderI ),就是启动系统引导程序如 grub
二阶段:加载 boot loader 的所有配置文件和相关的环境参数;由于 MBR 只有 512 字节,所以系统引导工具还要从其它地方读入数据 ( /boot 目录下的文件 )
注: MBR Master Boot Record 512 字节, 0 0 1 扇区),前 446 字节 存放的是 stage1 ,后面存放硬盘分区表信息;
3、 Kernel 会立即初始化系统中各种设备并做相关配置工作,其中包括 CPU I/O 、存储设备等,也就是加载驱动程序啦。
4、 驱动加载后,会创建一个根设备,然后将根文件系统 / 以只读的方式挂载,结束后,执行 switchroot ,转到真正的根 / 上面去,同时运行 /sbin/init 程序,运行 linux 系统的第一号进程( init 进程,也就是所有进程的父进程, PID 1
init 初始化过和参考: http://blog.chinaunix.net/u1/48373/showart_416908.html
5、 读取 /etc/inittab 配置文件
6、 执行系统初始化脚本 /etc/rc.d/rc.sysinit )对系统进行基本配置,以读写方式挂载根文件系统及其其它文件系统;
主要工作有:
a)
取得网络环境与主机类型( /etc/sysconfig/network )、
b)
挂载 /proc /sys
c)
配置 selinux

d)
系统时钟,
e)
内核参数( /etc/sysctl.conf ),
f)
加载用户自定义的模块 ( /etc/sysconfig/modules/*.modules)
g)hostname
h)
使能 swap 分区,
I
)根文件系统的检查和二次挂载(读写),

j)
激活 RAID LVM 设备
k)
使能磁盘 quota
l)
检查并挂载其它文件系统

等等。
根据运行级别启动相应服务,具体的每个运行级别的服务状态是放在 /etc/rc.d/rcX.d (X= 0 ~ 6) 目录下,所有的文件均链接到 /etc/init.d 下的相应文件
/etc/rc.d/rcX.d/
里面的文件介绍:(里面的文件都是链接文件,都是指向 /etc/init.d 底下)
l S 为开头的文件,为开机时需要启动的服务;
l K 为开头的文件,为关机时需要关闭的服务的档案连结;
l S K 后面接的数字,代表该档案被执行的顺序。
7、 读取 /etc/rc.d/rc.local 文件,就是启动用户自定义的一些脚本程序,所以说如果你有什么东西需要在系统启动时启的的话就往这个文件里面写就可以了。
8、 执行 /bin/login 程序,并等待用户登入
9、 系统启动完成。
参考文章: http://blog.chinaunix.net/u1/48373/showart_418407.html
知道了 Linux 系统的开机流程,下面再了解一下 GRUB 的配置文件,以 RHEL5.0 做参考:
该文件位置保存在 /boot/grub/grub.conf ,还有一个链接文件是 /boot/grub/menu.lst 也是指向 /boot/grub/grub.conf
[root@rhel5 ~]# vi /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/hda2
# initrd /initrd-version.img
#boot=/dev/had
default=0 // 默认启动第一个系统,以 title 分隔;
timeout=5 // 在启动菜单选择界面停停留时间,单位是秒;
splashimage=(hd0,0)/grub/splash.xpm.gz //GRUB 启动背景画面,可以不写;
hiddenmenu // 开机时是否显示启动菜单,如果要显示的话就要注释掉;
title Red Hat Enterprise Linux Server (2.6.18-53.el5) // 启动菜单显示的标题
root (hd0,0) // root 启动文件所在置
kernel /vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet //kernel 内核所在位置和名字
initrd /initrd-2.6.18-53.el5.img // initrd 内核镜象的名字
title windowsXP // 第二个操作系统的标题
rootnoverify (hd0,1)
// 操作系统存放在 hd0,1 上,不要在 grub 里挂载

chainloader +1
//
加载 boot loader 的定义值, 那个 +1 代表的是第一
sector ,也可以说成 Super block
注意: kernel /vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet
rhgb 表示 redhat graphics boot ,就是会看到图片来代替启动过程中显示的文本信息,这些信息在启动后用 dmesg 也可以看到
quiet
表示在启动过程中只有重要信息显示,类似硬件自检的消息不回显示
当你的 grub.conf 配置文件出错,或者是丢失的时候,你就会发现进不了系统了。为什么?
因为 Linux 系统启动时,找不到 Kernel 文件在哪里,所以说会启动不了。会提示以下内容:
而这个时候我们可以通过下面的步聚来恢复;
1) 先找到 vmlinuz 所在的分区,也就是 /boot 所在分区

grub > root
(hd0,0)
Filesystem type is ext2fs , partition type 0x83
或者是

grub > find /vmlinuz-2.6.18-53el5 (
这里可以用 TAB 来补全 )
(hd0
0)
grub >

2) 执行 kernel /vmlinuz-2.6.18-53.el5 ro root=LABEL=/rhgb quiet ( 用来指定 linux 内核 )
grub > kernel /vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet ( 可以用 TAB 补全 )
[Linux-bzImage setup=0x1e00 size=0x1b3654]
3) 执行 initrd /initrd-2.6.18-53.el5.img (用来指定 initrd 文件)
grub > initrd /initrd-2.6.18-53.el5.img ( 这里可以用 TAB 来补全 )
[Linux-initrd @ 0xfc9d000 0x242073 bytes ]
4) 执行 boot
grub > boot
后看到底下的 Hed Hat 这几个红字时就是 OK 的意思了。再下去就是启动系统啦。
登录系统时就可以在里面修改 /boot/grub/grub.conf 配置文件错误的地方了,最方便的就是把你备份出来的 grub.conf 文件直接 COPY 一份到 /boot/grub/ 下面;所以说要注意备份这些文件,要是没有备份的话只能手工写一个了,内容就是前面所说的 grub.conf 文件内容啦。
注意:关于不同的发行版的 kernel 核心那里可能不一样,你可以 ls /boot 查看一下 kernel 文件的位置和名称以及指定 initrd 文件;

本文出自 “ky.blog ” 博客,请务必保留此出处http://kyhack.blog.51cto.com/490370/192630

分享到:
评论

相关推荐

    使用多重启动管理器GRUB引导Linux系统.pdf

    在 Linux 操作系统中,GRUB(Grand Unified Bootloader)是一种非常优秀的多重启动管理器,可以引导多种操作系统。本文主要介绍 GRUB 的配置文件、加密和修复方法。 GRUB 配置文件 在安装 Linux 操作系统时,系统...

    Linux卸载后如何删除Grub引导方法

    - 接着输入`chainloader +1`并回车,该命令作用是将启动引导权交予当前分区的首扇区,即Windows系统所在的分区。 - 最后输入`boot`并回车,以启动Windows操作系统。如果初次尝试失败,可能需要调整`(hd0,0)`中的分区...

    Linux启动过程和GRUB《博雅运维Linux全套笔记》

    在深入探讨Linux启动过程与GRUB引导加载器之前,我们首先需要理解Linux系统的基本架构以及启动过程中的关键组件。Linux操作系统作为全球范围内广泛使用的开源操作系统之一,其强大的稳定性、安全性和灵活性使其成为...

    Linux系统启动过程ppt课件.ppt

    GRUB是Red Hat Enterprise Linux 5.2的默认引导程序,它可以加载Linux内核映像并引导系统启动。 加载次引导程序是Linux系统启动过程的第三个阶阶段段。在这个阶段中,GRUB会加载次引导程序,例如Linux内核映像,并...

    LINUX系统启动过程分析

    LINUX系统启动过程可以分为三个部分:引导过程、内核引导过程和系统初始化过程。引导过程是从BIOS自检到加载内核的过程。内核引导过程是从加载内核到执行init进程的过程。系统初始化过程是从执行init进程到用户登录...

    Linux操作系统GRUB故障的识别与修复.pdf

    "Linux操作系统GRUB故障的识别与修复" 本文主要讨论了Linux操作系统GRUB...本文通过对GRUB故障的分析和修复,帮助读者更好地理解Linux操作系统的启动过程,避免GRUB故障的发生,并在出现故障时能够快速地进行修复。

    LINUX GRUB引导故障和救援模式

    LINUX 下GRUB引导故障和救援模式,讲解详细。

    Linux系统引导管理器GRUB详解.pdf

    Linux 系统引导管理器 GRUB 详解 GRUB(Grand Unified Bootloader)是一种多系统引导管理器,能够引导多种操作系统,包括 Linux 和 Windows。GRUB 提供了灵活的配置文件 menu.lst,以便用户自定义引导选项。GRUB 的...

    Linux启动排错实例

    对于新手来说,理解这个过程并学会排错是成为Linux系统管理员的基础。本文将深入探讨Linux启动排错实例,帮助你掌握这一核心技能。 首先,我们从Linux启动流程开始。在Linux系统中,启动流程通常分为BIOS自检、GRUB...

    grub引导linux启动.zip

    GRUB(Grand Unified Bootloader)是Linux系统中最常用的引导加载器之一,它的主要任务是在计算机启动时加载操作系统内核,并将其传递给适当的初始化程序。理解GRUB的工作原理和配置对于管理和维护Linux系统至关重要...

    GRUB修复linux系统引导

    本文将深入解析如何使用GRUB(Grand Unified Bootloader)来修复Linux系统的引导问题,确保即使在遭遇引导故障时,也无需重装整个操作系统。 ### GRUB:Linux系统中的守护者 GRUB是Linux中最广泛使用的引导加载...

    linux系统启动过程分析.ppt

    总的来说,理解Linux的启动过程和关键组件如GRUB、inittab以及init进程的功能,对于系统管理员来说至关重要,因为它可以帮助他们在系统出现问题时迅速定位并解决问题。通过深入学习这些概念,不仅可以提高故障排查...

    linux 在grub2中添加windows启动项

    这篇博客“在GRUB2中添加Windows启动项”将指导我们如何使Linux系统能够识别并引导安装在同一个硬盘上的Windows操作系统。这个过程涉及到对GRUB2配置文件的编辑以及对系统引导扇区的更新。 首先,我们需要理解GRUB2...

    基于USB GRUB引导及CF卡Linux系统剪裁的嵌入式系统构建.pdf

    《基于USB GRUB引导及CF卡Linux系统剪裁的嵌入式系统构建》这篇文献主要探讨了如何构建基于USB GRUB引导的嵌入式Linux系统,并通过CF卡进行系统裁剪,以适应特定的硬件环境。嵌入式Linux是目前广泛应用的操作系统,...

    剖析Linux系统启动过程

    剖析Linux系统启动过程 今日,我们将深入剖析 Linux 系统启动过程,从用户打开电源到屏幕出现命令行提示符的整个过程。 1. BIOS 开机自检 当用户打开 PC 的电源,BIOS 开机自检,按 BIOS 中设置的启动设备...

    Linux系统启动过程与故障排除.pdf

    Linux系统启动过程涉及多个环节,从硬件层面的BIOS启动,到MBR加载引导程序,再到内核加载和系统服务的初始化。以下是详细的步骤及故障排除方法: 1. **BIOS启动**: BIOS(Basic Input Output System)是计算机硬件...

    Linux引导启动修复Boot Repair.zip

    引导启动过程是计算机启动时加载操作系统的步骤,而Linux引导修复主要针对由于各种原因导致的启动问题,如误操作、系统更新或硬盘故障等。Boot Repair是一款实用工具,专为Linux用户设计,用于解决与GRUB(GRand ...

    用Linux系统的安装盘来修复GRUB引导器

    用 Linux 系统的安装盘来修复 GRUB 引导器 本文介绍了如何使用 Linux 系统的安装盘来修复 GRUB 引导器。该解决方案适用于在安装 Windows 时,不小心将 GRUB 或 LILO 从 MBR 上清除的情况。 GRUB 是一个开源的引导...

    linux系统启动故障及常见故障教程

    ### Linux系统启动故障及常见故障解析 #### 一、MBR与Linux系统启动问题 **主引导记录(Master Boot Record, MBR)**是硬盘上的一段重要代码,位于硬盘的第一个扇区(通常是512字节),负责识别硬盘上的分区表并...

    U盘安装LINUX系统,拔除U盘后无法引导系统解决方案.docx

    当客户在安装 LINUX 操作系统过程中,使用的是 U 盘方式安装,引导的 GRUB 信息被默认安装到了 U 盘的 MBR 中,拔除 U 盘后启动过程无法读取相应的启动管理器的代码信息,导致系统无法启动。 要解决这个问题,需要...

Global site tag (gtag.js) - Google Analytics