- 论坛徽章:
- 0
|
1. BIOS自检
计算机在接通电源之后首先由BIOS 进行POST自检,然后依据BIOS内设置的引导顺序从硬盘、软盘或CDROM 中读入引导块。Linux 系统是从BIOS 中的地址0xFFFF0 处开始引导的。BIOS的第1 个步骤是加电POST 自检。POST的工作是对硬件进行检测。BIOS的第2个步骤是进行本地设备的枚举和初始化。BIOS由两部分组成:POST 代码和运行时的服务。当POST 完成之后,它被从内存中清理出来,但是BIOS 运行时服务依然保留在内存中,目标操作系统可以使用这些服务。
BIOS运行时会按照CMOS的设置定义的顺序来搜索处于活动状态并且可以引导的设备。引导设备可以是软盘、CD-ROM、硬盘上的某个分区、网络上的某个设备甚至是USB 闪存。通常,Linux 系统都是从硬盘上引导的,其中主引导记录(MBR)中包含主引导加载程序。MBR 是一个512字节大小的扇区,位于磁盘上的第一个扇区(0 道0柱面1 扇区)。当MBR被加载到RAM 中之后,BIOS 就会将控制权交给MBR。
如果要查看MBR的内容,用户需要以root用户的身份运行如下命令:
#dd if=/dev/hda of=mbr.bin bs=512 count=1
读入了1+0 个块
输出了 1+0 个块
#od -xa mbr.bin
0000000 48eb 1090 d08e 00bc b8b0 0000 d88e c08e
k H dle dle so P nul | ? nul ack 9 nul stx s $ j ! ack nul
0000040 be00 07be 0438 0b75 c683 8110 fefe 7507
nul > > bel 8 eot u vt etx F dle soh ~ ~ bel u
0000060 ebf3 b416 b002 bb01 7c00 80b2 748a 0203
s k syn 4 stx 0 soh ; nul | 2 nul nl t etx stx
0000100 0080 8000 e441 0000 0800 80fa 80ca 53ea
nul nul nul nul A d nul nul nul bs z nul J nul j S
0000120 007c 3100 8ec0 8ed8 bcd0 2000 a0fb 7c40
| nul nul 1 @ so X so P y } h 4 soh v B nul
0000160 5474 41b4 aabb cd55 5a13 7252 8149 55fb
t T 4 A ; * U M dc3 Z R r I soh { U
0000200 75aa a043 7c41 c084 0575 e183 7401 6637
* u C sp A | eot @ u enq etx a soh t 7 f
0000220 4c8b be10 7c05 44c6 01ff 8b66 441e c77c
vt L dle > enq | F D del soh f vt rs D | G
0000240 1004 c700 0244 0001 8966 085c 44c7 0006
eot dle nul G D stx soh nul f ht \ bs G D ack nul
0000260 6670 c031 4489 6604 4489 b40c cd42 7213
p f 1 @ ht D eot f ht D ff 4 B M dc3 r
0000300 bb05 7000 7deb 08b4 13cd 0a73 c2f6 0f80
enq ; nul p k } 4 bs M dc3 s nl v B nul si
…………………………………………………………………
它从/dev/hda(第一个IDE盘)上读取前512个字节的内容,并将其写入mbr.bin 文件中。od 命令会以十六进制和ASCII码格式打印这个二进制文件的内容。
2 启动GRUB/LILO
GRUB 和LILO 都是引导加载程序。引导加载程序用于引导操作系统启动。当机器引导它的操作系统时,BIOS会读取引导介质上最前面的512 字节(主引导记录)。在单一的MBR中只能存储一个操作系统的引导记录,所以当需要多个操作系统时就会出现问题,需要更灵活的引导加载程序。
所有引导加载程序都以类似的方式工作,满足共同的目的,但LILO 和GRUB 之间也有很多不同之处:
- LILO 没有交互式命令界面,而GRUB拥有;
- LILO 不支持网络引导,而GRUB 支持;
- LILO 将可以引导操作系统位置的信息存储在MBR中。
如果修改了LILO 配置文件,必须将LILO 第一阶段引导加载程序重写到MBR。相对于GRUB,这是一个更为危险的选择,因为错误配置的MBR可能会让系统无法引导。使用GRUB时,如果配置文件配置错误,则只是默认转到GRUB 命令行界面。
3. 加载内核
接下来的步骤就是加载内核映像到内存中,内核映像并不是一个可执行的内核,而是一个压缩过的内核映像。通常它是一个zImage(压缩映像,小于512KB)或是一个bzImage(较大的压缩映像,大于512KB),它是提前使用zlib 压缩过的。在这个内核映像前面是一个例程,它实现少量硬件设置,并对内核映像中包含的内核进行解压缩,然后将其放入高端内存中。如果有初始RAM 磁盘映像,系统就会将它移动到内存中,并标明以后使用。然后该例程会调用内核,并开始启动内核引导的过程。
4. 执行init 进程
init进程是系统所有进程的起点,内核在完成核内引导以后,即在本进程空间内加载init程序,它的进程号是1。init进程是所有进程的发起者和控制者。因为在任何基于Linux 的系统中,它都是第一个运行的进程,所以init进程的编号(PID)永远是1。
init进程有以下两个作用。
- init进程的第一个作用是扮演终结父进程的角色。因为init进程永远不会被终止,所以系统总是可以确信它的存在,并在必要的时候以它为参照。如果某个进程在它衍生出来的全部子进程结束之前被终止,就会出现必须以init 为参照的情况。此时那些失去了父进程的子进程就都会以init作为它们的父进程。
- init 的第二个作用是在进入某个特定的运行级别时运行相应的程序,以此对各种运行级别进行管理。它的这个作用是由/etc/inittab文件定义的。
5. 通过/etc/inittab文件进行初始化
init的工作是根据/etc/inittab来执行相应的脚本,进行系统初始化,如设置键盘、字体、装载模块,设置网络等。
1./etc/rc.d/rc.sysinit
在init的配置文件中有如下一行:
si::sysinit:/etc/rc.d/rc.sysinit
rc.sysinit 是由init 执行的第一个脚本,它主要完成一些系统初始化的工作。rc.sysinit 是
每一个运行级别都要首先运行的重要脚本,它主要完成的工作有:激活交换分区、检查磁盘、加载硬件模块以及其他一些需要优先执行的任务。/etc/rc.d/rc.sysinit 主要完成各个运行模式中相同的初始化工作,包括:
- 设置初始的$PATH变量;
- 配置网络;
- 为虚拟内存启动交换;
- 设置系统的主机名;
- 检查root文件系统,以进行必要的修复;
- 检查root文件系统的配额;
- 为 root文件系统打开用户和组的配额;
- 以读/写的方式重新装载root文件系统;
- 清除被装载的文件系统表/etc/mtab;
- 把 root文件系统输入到mtab;
- 使系统为装入模块做准备;
- 查找模块的相关文件;
- 检查文件系统,以进行必要的修复;
- 加载所有其他文件系统;
- 清除/etc/mtab、/etc/fastboot和/etc/nologin;
- 删除UUCP 的lock文件;
- 删除过时的子系统文件;
- 删除过时的pid 文件;
- 设置系统时钟;
- 激活交换分区;
- 初始化串行端口;
- 装入模块。
2./etc/rc.d/rcX.d/[KS]
在rc.sysinit 执行后,将返回init,继续执行/etc/rc.d/rc 程序。以运行级别5 为例,init 将
执行配置文件inittab 中的以下内容:
l5:5:wait:/etc/rc.d/rc 5
这一行表示以5为参数运行/etc/rc.d/rc,/etc/rc.d/rc 是一个shell脚本,它接受5作为参数,去执行/etc/rc.d/rc5.d/目录下的所有的rc 启动脚本,/etc/rc.d/rc5.d/目录中的启动脚本实际上都是一些链接文件,而不是真正的rc 启动脚本,真正的rc 启动脚本实际上都在/etc/rc.d/init.d/目录下。而这些rc 启动脚本有着类似的用法,它们一般能接受start、stop、restart、status等参数。
/etc/rc.d/rc5.d/中的rc启动脚本通常是以K或S开头的链接文件,以S开头的启动脚本将以start参数来运行。如果发现相应的脚本也存在K打头的链接,而且已经处于运行态了(以/var/lock/subsys/下的文件作为标志),则将首先以stop 为参数停止这些已经启动了的守护进程,然后再重新运行。这样做是为了保证当init 改变运行级别时,所有相关的守护进程都将重启。
至于在每个运行级中将运行哪些守护进程,用户可以通过chkconfig来自行设定。常见的守护进程如下。
- amd:自动安装NFS 守护进程。
- apmd:高级电源管理守护进程。
- arpwatch:记录日志并构建一个在LAN 接口上看到的以太网地址和IP 地址对应的数据库。
- autofs:自动安装管理进程automount,与NFS 相关,依赖于NIS。
- crond:Linux 系统下计划任务的守护进程。
- named:DNS服务器。
- netfs:安装NFS、Samba和NetWare 网络文件系统。
- network:激活已配置网络接口的脚本程序。
- nfs:打开NFS 服务。
- portmap:RPC portmap管理器,它管理基于RPC 服务的连接。
- sendmail:邮件服务器sendmail。
- smb:Samba文件共享/打印服务。
- syslog:一个让系统引导时启动syslog和klogd 系统日志守候进程的脚本。
- xfs:X Window字型服务器,为本地和远程X 服务器提供字型集。
- Xinetd:支持多种网络服务的核心守护进程,可以管理wuftp、sshd、telnet 等服务。
这些守护进程启动完毕,rc程序也就执行完了,然后又将返回init继续下一步。
3.执行/etc/ec.d/rc.local
RHEL 4中的运行模式2、3、5都把/etc/rc.d/rc.local做为初始化脚本中的最后一个,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后、登录之前执行的命令。在维护Linux 系统时一般会遇到需要系统管理员对开机或者关机命令脚本进行修改的情况。如果所做的修改只在引导开机的时候起作用,并且改动不大的话,可以考虑简单地编辑一下/etc/rc.d/rc.local脚本。这个命令脚本程序是在引导过程的最后一步被执行的。
6. 执行/bin/login程序
login 程序会提示使用者输入账号及密码,接着编码并确认密码的正确性,如果账号与密码相符,则为使用者初始化环境,并将控制权交给shell,即等待用户登录。
login 会接收mingetty传来的用户名作为用户名参数,然后login 会对用户名进行分析。如果用户名不是root,且存在/etc/nologin文件,login将输出nologin 文件的内容,然后退出。这通常用来在系统维护时防止非root 用户登录。只有在/etc/securetty 中登记了的终端才允许root 用户登录,如果不存在这个文件,则root 可以在任何终端上登录。/etc/usertty 文件用于对用户作出附加访问限制,如果不存在这个文件,则没有其他限制。
在分析完用户名后,login将搜索/etc/passwd以及/etc/shadow来验证密码以及设置账户的其他信息,比如:主目录是什么、使用何种shell。如果没有指定主目录,则将主目录默认设置为根目录;如果没有指定shell,则将shell 类型默认设置为/bin/bash。
login 程序成功后,会向对应的终端再输出最近一次登录的信息(在/var/log/lastlog 中有记录),并检查用户是否有新邮件(在/usr/spool/mail/的对应用户名目录下),然后开始设置各种环境变量。对于bash 来说,系统首先寻找/etc/profile 脚本文件并执行它;然后如果用户的主目录中存.bash_profile 文件,就执行它,在这些文件中又可能调用了其他配置文件,所有的配置文件执行后,各种环境变量也设好了,这时会出现大家熟悉的命令行提示符,至此整个启动过程就结束了。
图1 所示为整个Linux 系统的启动过程。
![]()
init 进程
init 是Linux 系统执行的第一个进程,进程ID 为1,是系统所有进程的起点,主要用来执行一些开机初始化脚本和监视进程。Linux 系统在完成核内引导以后就开始运行init程序,init 程序需要读取配置文件/etc/inittab。inittab 是一个不可执行的文本文件,它由若干行命令所组成。在RHEL 4 系统中,inittab配置文件的内容如下所示。
#
# inittab This file describes how the INIT process should set up
# the system in a certain run-level.
#
# Author: Miquel van Smoorenburg,
# Modified for RHS Linux by Marc Ewing and Donnie Barnes
#
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
//表示当前缺省运行级别为5,启动系统进入图形化界面
id:5:initdefault:
//启动时自动执行/etc/rc.d/rc.sysinit 脚本
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
//当运行级别为5 时,以5为参数运行/etc/rc.d/rc脚本,init 将等待其返回
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
//在启动过程中允许按[CTRL+ALT+DELETE]重启系统
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
# When our UPS tells us power has failed, assume we have a few minutes
# of power left. Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
//在运行级别2、3、4、5 上以ttyX 为参数执行/sbin/mingetty 程序,打开ttyX 终端用于用户登录,如果
进程退出则再次运行mingetty 程序
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
//在级别5 上运行xdm程序,提供xdm 图形方式登录界面,并在退出时重新执行
# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon
inittab配置文件每行的基本格式如下。
id:runlevels:action:process
其中某些部分可以为空,下面我们逐一介绍。
1.id
1~2个字符,配置行的惟一标识,在配置文件中不能重复。
2.runlevels
配置行适用的运行级别,在这里可填入多个运行级别,比如12345或者35等。
Linux 有7个运行级别。
- 0:关机。
- 1:单用户字符界面。
- 2:不具备网络文件系统(NFS)功能的多用户字符界面。
- 3:具有网络功能的多用户字符界面。
- 4:保留不用。
- 5:具有网络功能的图形用户界面。
- 6:重新启动系统。
3.action
Init有如下几种行为,如表13.1 所示。
表 13.1 init 行为
行 为
描 述
respawn
启动并监视第4项指定的process,若process 终止则重启它
wait
执行第4 项指定的process,并等待它执行完备
once
执行第4 项指定的process
boot
不论在哪个执行等级,系统启动时都会运行第4项指定的process
bootwait
不论在哪个执行等级,系统启动时都会运行第4项指定的process,且一直等它执行完备
off
关闭任何动作,相当于忽略该配置行
ondemand
进入ondemand执行等级时,执行第4项指定的process
initdefault
系统启动后进入的执行等级,该行不需要指定process
sysinit
不论在哪个执行等级,系统会在执行boot及bootwait 之前执行第4 项指定的process
powerwait
当系统的供电不足时执行第4项指定的process,且一直等它执行完备
powerokwait
当系统的供电恢复正常时执行第4 项指定的process,且一直等它执行完备
powerfailnow
当系统的供电严重不足时执行第4 项指定的process
ctrlaltdel
当用户按下【Ctrl+Alt+Del】时执行的操作
kbrequest
当用户按下特殊的组合键时执行第4项指定的process,此组合键需在keymaps文件定义
4.process
process为init执行的进程,这些进程都保存在目录/etc/rc.d/rcX中,其中的X代表运行级别,rc程序接收X参数,然后运行/etc/rc.d/rc.X下面的程序。使用如下命令可以查看/etc/rc.d目录内容。
#ls -l /etc/rc.d/
总用量112
drwxr-xr-x 2 root root 4096 3 月15 14:44 init.d
-rwxr-xr-x 1 root root 2352 2004-03-17 rc
drwxr-xr-x 2 root root 4096 3 月15 17:42 rc0.d
drwxr-xr-x 2 root root 4096 3 月15 17:42 rc1.d
drwxr-xr-x 2 root root 4096 3 月15 17:42 rc2.d
drwxr-xr-x 2 root root 4096 3 月15 17:42 rc3.d
drwxr-xr-x 2 root root 4096 3 月15 17:42 rc4.d
drwxr-xr-x 2 root root 4096 3 月15 17:42 rc5.d
drwxr-xr-x 2 root root 4096 3 月15 17:42 rc6.d
-rwxr-xr-x 1 root root 220 2003-06-24 rc.local
-rwxr-xr-x 1 root root 27411 2005-08-03 rc.sysinit
使用如下命令查看/etc/rc.d/rc5.d 的内容。
# ls -l /etc/rc.d/rc5.d
总用量432
lrwxrwxrwx 1 root root 21 4 月29 15:11 K01tog-pegasus -> ../init.d/tog-pegasus
lrwxrwxrwx 1 root root 24 4 月29 14:20 K02NetworkManager -> ../init.d/NetworkManager
lrwxrwxrwx 1 root root 17 4 月29 15:29 K02oddjobd -> ../init.d/oddjobd
lrwxrwxrwx 1 root root 14 4 月29 15:31 K05innd -> ../init.d/innd
lrwxrwxrwx 1 root root 19 4 月29 14:17 K05saslauthd -> ../init.d/saslauthd
lrwxrwxrwx 1 root root 19 4 月29 14:21 K10dc_server -> ../init.d/dc_server
lrwxrwxrwx 1 root root 16 4 月29 14:21 S09pcmcia -> ../init.d/pcmcia
lrwxrwxrwx 1 root root 17 4 月29 14:17 S10network -> ../init.d/network
lrwxrwxrwx 1 root root 16 4 月29 14:17 S12syslog -> ../init.d/syslog
……………………………………
这些文件都是符号链接,以S打头的标识启动该程序,而以K打头的标识终止该程序,后面的数字标识执行顺序,越小越先执行,剩下的标识程序名。系统启动或者切换到该运行级别时会执行以S打头的程序,系统切换到该运行级别时会执行以K打头的程序。这个目录下的程序可通过chkconfig 程序进行管理,当然这个目录下的程序需要符合一定规范,如果了解shell编程,可以查看这些符号链接所指向的程序的源码。
init 也是一个进程,和普通的进程具有一样的属性。比如修改了/etc/inittab,想让修改马上生效,可通过运行“kill -SIGHUP 1”来实现,也可通过运行“init q”来实现。
维护 GRUB
1.引导加载程序简介
引导加载程序可以引导操作系统启动。当计算机要引导操作系统时,BIOS 会读取引导介质上最前面的MBR记录。在单一的MBR 中只能存储一个操作系统的引导记录,当需要多个操作系统时就会出现问题,所以需要更灵活的引导加载程序。
主引导记录本身要包含两类内容:引导加载程序和分区表。当BIOS引导时,它会寻找硬盘驱动器第一个扇区(MBR)中存储的数据,BIOS使用存储在MBR中的数据激活引导加载程序。
由于BIOS 只能访问很少量的数据,所以大部分引导加载程序分两个阶段进行引导。在引导的第1个阶段中,BIOS 引导一部分引导加载程序,即初始程序加载程序(IPL)。IPL查询分区表,从而能够加载位于不同介质上任意位置的数据。首先通过这步操作来定位第二阶段引导加载程序(其中包含加载程序的其余部分)。
第 2 阶段引导加载程序是引导加载程序的主体,这是引导加载程序的真正部分,它包含有加载程序更需要磁盘空间的部分,比如用户界面和内核引导程序。
引导加载程序通常配置为主引导加载程序或二级引导加载程序。主引导程序是安装在MBR上的第一阶段引导加载程序。二级引导加载程序是安装在可引导分区的第一阶段引导加载程序。
必须在MBR上安装单独的引导加载程序,并配置它将控制权转交给二级引导加载程序。很多较新的Linux 引导加载程序特别实用,因为它们提供了不同程度的交互,比如高级的GUI和加密的口令,以及通过选择操作系统进行引导的能力。这样,可以在具有多个物理磁盘的同一机器上共存多个操作系统。
2.GRUB概述
从 Red Hat Linux 7.2起,GRUB取代LILO 成为了默认的启动加载程序。在Red hat Linux加载一个系统前,它必须由一个引导加载程序中的特定命令告诉它去引导系统。这个程序一般位于系统的主硬盘驱动器或其他媒介驱动器上。
如果一个x86 系统只安装了Red Hat Linux而且只有一个版本的Linux 内核,那么通过引导加载程序开始Red Hat Linux的特定过程就不重要了。Red hat Linux安装程序允许用户快速、方便地配置引导加载程序存放在主硬盘驱动的主引导记录中来引导操作系统。
GNU GRUB(GRand Unified Bootloader)是一个将引导加载程序安装到主引导记录的程序,主引导记录位于一个硬盘开始的扇区。它允许位于主引导记录区中特定的命令来加载一个GRUB 菜单或GRUB 的命令环境。这使得用户能够开始操作系统的选择,在内核引导时传递特定命令给内核,或是在内核引导前确定一些系统参数(如可用的RAM大小)。
GRUB 支持直接和链式加载的引导方法。GRUB 能用于几乎所有操作系统、绝大多数流行的文件系统以及几乎所有的系统BIOS所能识别的硬盘。
3.GRUB特性
GRUB 包含许多特性,这使得GRUB比其他可用的引导加载程序更加优越,下面列出一
些比较重要的特性。
GRUB在x86机器上提供一个真正基于命令行的、先于操作系统启动的环境。GRUB 支持逻辑块寻址(LBA)方式。 LBA 的主要作用是寻找驱动器上文件的地址并将其置于驱动器的硬件中,它被用在许多IDE 和SCSI 硬盘中。在使用LBA 之前,硬盘驱动器遇到一个1024 柱面的限制,即BIOS 不能找到在1024柱面后的文件(比如一个引导加载程序或是内核文件)。只要系统BIOS能支持LBA模式(大多数都支持),那么LBA就允许GRUB超越1024柱面的限制,引导操作系统。
3. GRUB 的配置能在每次系统引导时被读取。
这就避免了用户每次改变引导选项时都要重写一次主引导记录。大多数的引导加载程序都不能读取配置文件,并使用它们来设置引导选项。
比如,用户必需改变一个LILO 的配置文件,然后执行一个命令将新的配置数据重写回系统的主引导记录。这种方法比GRUB所采用的方法更加危险,因为一个错误配置的主引导记录将使系统无法引导。在使用GRUB中,如果配置文件被错误配置并且引导,那它也仅仅简单地转到一个默认的命令行,允许用户手工输入命令来运行操作系统。
4. GRUB配置文件
GRUB 的配置是通过位于/boot/grub/grub.conf 的一个配置文件来完成的。下面给出了一个示例配置,示例中安装了双系统,支持Linux 和Windows的双重引导。
# 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/hda
default=0
timeout=10
splashimage=(hd1,3)/grub/splash.xpm.gz
password --md5 $opeVt0$Y.br.18LyAasRsGdSKLYlp1
title RHEL AS4 (2.6.9-22.EL)
password --md5 peVt0$Y.br.18LyAasRsGdSKLYlp1
root (hd1,3)
kernel / vmlinuz-2.6.9-22.EL ro root=LABEL=/ rhgb quiet
initrd / initrd-2.6.9-22.EL.img
title Windows XP
password --md5 peVt0$Y.br.18LyAasRsGdSKLYlp1
rootnoverify (hd0,0)
chainloader +1
default=0 表示引导第一个映像所指定的系统,default=1表示引导第二个映像所指定的系统,依次类推。如果没有在配置文件指定此选项,那么它将引导文件中指定的第一个映像。
“timeout=”:在自动引导默认操作系统(在本例中是RHEL 4)之前引导提示会等待多少秒。
“splashimage=”:GRUB GUI背景的图片所在的位置。
“password”:指定了使用MD5加密的口令。
“title”:标明了在运行期间能够从用户界面引导的具体操作系统。
“root”:GRUB 操作系统文件系统的实际位置。GRUB 引用介质的方式与LILO 不同。在LILO 示例中,/dev/hdb3 是第二块硬盘中的第三个分区。GRUB 将此硬盘引用为(hd1,3),即第二块硬盘的第三个分区(disk 0 是第一块硬盘)。
“kernel”:vmlinuz-2.6.9-22.EL是root目录中默认引导映像的名称。
“initrd”:initrd-2.6.9-22.EL.img 是root目录中默认initrd 映像的名称。
“rootnoverify”:告诉GRUB 不要尝试去改变操作系统的root。这样,当文件系统不被GRUB 所支持时,不会出现引导错误。
“chainloader +1”:告诉GRUB使用一个链式加载程序来加载这个操作系统,加载Windows时需要这个选项。
与 LILO 的配置文件不同,grub.conf会在引导时被读取,当被修改时不必去更新MBR。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/52215/showart_1679955.html |
|