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
分享到:
相关推荐
在 Linux 操作系统中,GRUB(Grand Unified Bootloader)是一种非常优秀的多重启动管理器,可以引导多种操作系统。本文主要介绍 GRUB 的配置文件、加密和修复方法。 GRUB 配置文件 在安装 Linux 操作系统时,系统...
- 接着输入`chainloader +1`并回车,该命令作用是将启动引导权交予当前分区的首扇区,即Windows系统所在的分区。 - 最后输入`boot`并回车,以启动Windows操作系统。如果初次尝试失败,可能需要调整`(hd0,0)`中的分区...
在深入探讨Linux启动过程与GRUB引导加载器之前,我们首先需要理解Linux系统的基本架构以及启动过程中的关键组件。Linux操作系统作为全球范围内广泛使用的开源操作系统之一,其强大的稳定性、安全性和灵活性使其成为...
GRUB是Red Hat Enterprise Linux 5.2的默认引导程序,它可以加载Linux内核映像并引导系统启动。 加载次引导程序是Linux系统启动过程的第三个阶阶段段。在这个阶段中,GRUB会加载次引导程序,例如Linux内核映像,并...
LINUX系统启动过程可以分为三个部分:引导过程、内核引导过程和系统初始化过程。引导过程是从BIOS自检到加载内核的过程。内核引导过程是从加载内核到执行init进程的过程。系统初始化过程是从执行init进程到用户登录...
"Linux操作系统GRUB故障的识别与修复" 本文主要讨论了Linux操作系统GRUB...本文通过对GRUB故障的分析和修复,帮助读者更好地理解Linux操作系统的启动过程,避免GRUB故障的发生,并在出现故障时能够快速地进行修复。
LINUX 下GRUB引导故障和救援模式,讲解详细。
Linux 系统引导管理器 GRUB 详解 GRUB(Grand Unified Bootloader)是一种多系统引导管理器,能够引导多种操作系统,包括 Linux 和 Windows。GRUB 提供了灵活的配置文件 menu.lst,以便用户自定义引导选项。GRUB 的...
对于新手来说,理解这个过程并学会排错是成为Linux系统管理员的基础。本文将深入探讨Linux启动排错实例,帮助你掌握这一核心技能。 首先,我们从Linux启动流程开始。在Linux系统中,启动流程通常分为BIOS自检、GRUB...
GRUB(Grand Unified Bootloader)是Linux系统中最常用的引导加载器之一,它的主要任务是在计算机启动时加载操作系统内核,并将其传递给适当的初始化程序。理解GRUB的工作原理和配置对于管理和维护Linux系统至关重要...
本文将深入解析如何使用GRUB(Grand Unified Bootloader)来修复Linux系统的引导问题,确保即使在遭遇引导故障时,也无需重装整个操作系统。 ### GRUB:Linux系统中的守护者 GRUB是Linux中最广泛使用的引导加载...
总的来说,理解Linux的启动过程和关键组件如GRUB、inittab以及init进程的功能,对于系统管理员来说至关重要,因为它可以帮助他们在系统出现问题时迅速定位并解决问题。通过深入学习这些概念,不仅可以提高故障排查...
这篇博客“在GRUB2中添加Windows启动项”将指导我们如何使Linux系统能够识别并引导安装在同一个硬盘上的Windows操作系统。这个过程涉及到对GRUB2配置文件的编辑以及对系统引导扇区的更新。 首先,我们需要理解GRUB2...
《基于USB GRUB引导及CF卡Linux系统剪裁的嵌入式系统构建》这篇文献主要探讨了如何构建基于USB GRUB引导的嵌入式Linux系统,并通过CF卡进行系统裁剪,以适应特定的硬件环境。嵌入式Linux是目前广泛应用的操作系统,...
剖析Linux系统启动过程 今日,我们将深入剖析 Linux 系统启动过程,从用户打开电源到屏幕出现命令行提示符的整个过程。 1. BIOS 开机自检 当用户打开 PC 的电源,BIOS 开机自检,按 BIOS 中设置的启动设备...
Linux系统启动过程涉及多个环节,从硬件层面的BIOS启动,到MBR加载引导程序,再到内核加载和系统服务的初始化。以下是详细的步骤及故障排除方法: 1. **BIOS启动**: BIOS(Basic Input Output System)是计算机硬件...
引导启动过程是计算机启动时加载操作系统的步骤,而Linux引导修复主要针对由于各种原因导致的启动问题,如误操作、系统更新或硬盘故障等。Boot Repair是一款实用工具,专为Linux用户设计,用于解决与GRUB(GRand ...
用 Linux 系统的安装盘来修复 GRUB 引导器 本文介绍了如何使用 Linux 系统的安装盘来修复 GRUB 引导器。该解决方案适用于在安装 Windows 时,不小心将 GRUB 或 LILO 从 MBR 上清除的情况。 GRUB 是一个开源的引导...
### Linux系统启动故障及常见故障解析 #### 一、MBR与Linux系统启动问题 **主引导记录(Master Boot Record, MBR)**是硬盘上的一段重要代码,位于硬盘的第一个扇区(通常是512字节),负责识别硬盘上的分区表并...
当客户在安装 LINUX 操作系统过程中,使用的是 U 盘方式安装,引导的 GRUB 信息被默认安装到了 U 盘的 MBR 中,拔除 U 盘后启动过程无法读取相应的启动管理器的代码信息,导致系统无法启动。 要解决这个问题,需要...