热门关键字:  ubuntu  分区  函数  linux系统进程  Fedora

当前位置 :| 主页>Linux教程>Linux入门>

GRUB 引导程序配置大全

来源: 作者: 时间:2007-06-18 Tag: 点击:
4. GRUB配置文件
grub.confGRUB的配置文件,其结构比较简单,可以分为两部分,第一步分是全局配置,另外一部分就是每个操作系统的启动配置。其中可以有多个操作系统的菜单配置。下面就是一个具体的例子。
#=================/boot/grub/grub.conf文件范例==================

timeout 30 # 等待用户选择菜单项的时间(以秒计),超时则引导默认的选项
default 0 # 默认选项,第一项
fallback 1 # 如果第一项出错,则启动下面的后备选项
splashimage=(hd0,0)/grub/splash.xpm.gz #GRUB启动画面

#以下是启动Linux的配置
titleRed Hat Linux Enterprise AS3 for syd168 #启动项的菜单标题
root (hd0,0) #指定根文件系统,第1块硬盘第1个扇区中的/boot
kernel /vmlinuz-2.4.18 ro root=LABEL=/ #内核在/boot
initrd /initrd-2.4.18-14.img #启动RAM盘在/boot

#以下是启动Windows的配置,如果只有Linux就不需要
title Windows2003 Enterprise for syd168 #Windows启动菜单标题
root noverify(hd0,1) #该操作系统在hd0的第二分区,不mount
chainloader +1 #从第一个硬盘的第二个分区引导Windows

#=================/boot/grub/grub.conf文件范例==================
上面的例子,只是简单说明了GRUB中启动LinuxWindows的配置方法。更多的启动配置请参考下面内容。
5. 引导多系统配置
GRUB支持多操作系统引导。用GRUB引导后可以进入命令行模式或者菜单模式,可以通过灵活的命令行模式选择引导各个分区的操作系统,指定引导参数。GRUB支持三种引导方法,一种是直接引导操作系统内核,另一种是通过chainload进行间接引导,第三种就是通过网络引导操作系统。
对于GRUB能够支持的LinuxFreeBSDOpenBSDNetBSDGUN Mach可以通过直接引导完成,但是对于GRUB不支持的操作系统(如Windows),需要用第二种方法chainload来完成。下面就分别来看看这几种引导方法:
(1) 直接引导
配置过程通常如下:
a) root命令设置包含操作系统内核的根设备
b) kernel命令装载内核映象文件,如果这个内核引导的时有参数的话,可以直接将参数加在内核文件名的后面
c) modulemodulenounzip装载内核模块
d) boot开始引导
(2) chainload引导
a) 设置GRUB的根设备,用rootnoverify (hdxy)指定
b) 开始引导,用chainloader +1指定,此处“+1”是指示GRUB读入分区的第一个扇区的引导记录。
c) 执行boot开始引导
以上是一般的chainloader方式,对于DOSWINDOWS,可以简单地用两条指令进行引导:chainloader (hdxy)+1,然后boot,其中xy用来指明所在分区号。
(3) 从网络引导:
为了使GRUB能够支持从网络引导,需要在编译时打开网络支持选项(请参考源文件中的netboot/README.netboot)。另外,要在网络中设置两个服务:动态IP服务(BOOTPDHCPRARPFTP服务。然后,分别针对不同的服务器BOOTPDHCPRARP运行bootpdhcprarp。如果一切设置无误的话GRUB就会给出IPIP netmaskTFTP服务器的IP和网关的IP地址。最后,从网上得到操作系统的映象文件。下面是一个例子
grub> bootp
Probing...[NE*000]
NE2000 base ...
Address: 192.168.110.23 Netmask: 255.255.255.0
Server: 192.168.110.14 Gateway: 192.168.110.1
grub> root (nd)
grub> kernel /tftproot/gnumach.gz root=sd0s1
grub> module /tftproot/serverboot.gz
grub> boot
(4) 操作系统引导距离
a) GNU/Linux
grub> root (hd13)
grub> kernel /vmlinuz root=/dev/hda1
如果你需要指定内核启动参数的话,可以直接加到命令的最后面如:
grub> kernel /vmlinuz root=/dev/hda1 vga=ext
如果你使用initrd的话,在kernel命令之后执行:
grub> initrd /initrd
grub> boot
b) FreeBSD
GRUB能够直接装载.ELFa.out两种格式的内核,但是由于FreeBSD的内核引导接口有时有较大的变动,所以,对FreeBSD最安全的引导方法是引导/boot/loader
grub> root (hd0a)
grub> kernel /boot/loader
grub> boot
c) NetBSDOpenBSDNetBSD
这三种系统的引导指令序列一样,如下:
q root命令设置根设备
q kernel装载内核
q boot'引导系统
d) DOS/Windows
grub> rootnoverify (hd00)
grub> chainloader +1
grub> boot
e) SCO UnixWare
grub> rootnoverify (hd10)
grub> chainloader --force +1
grub> makeactive
注意,最后的这条指令将设置Unix Ware分区为活动分区,这样要求你的GRUB安装在MBR,否则下次启动时将直接进入UnixWare而不会进入GRUB grub>
当然,如果每次引导都需要敲入命令的话实在是太麻烦了,因此,类似于LILOGRUB提供了一个菜单方式,只要将这些命令放入配置文件中就可以实现菜单方式的多引导。当然在菜单方式下你可以切换到命令模式下。GRUB引导时查找/boot/grub/menu.lst,如果存在这个文件的话,就根据这个文件生成一个引导菜单,menu.lst文件格式请参考后面的内容。
6. GRUB的安全配置
对于Linux系统,root帐号有着之高无尚的权限。但即使root帐号没有被盗窃,黑客照样可能登陆系统窃取机密。可以在启动的时候,通过在Linux启动菜单的kernel行最后加入“1”或“single”进入单用户模式,直接可以修改root密码。另外,有时候一台计算机上安装了多个操作系统,有些系统必须在授权后才可以启动。
为了保护GRUB在未被授权下的修改和一些系统在授权下才可启动的目的,GRUB提供了密码验证功能,只有通过密码验证才能在启动时候进入命令行状态修改GRUB或启动需要密码验证的操作系统。
GRUB的菜单密码是在grub.conf配置文件中实现的。GRUB提供的密码级别有两种,一种是全局的密码,即进入命令行前都必须输入的密码,另外就是只针对修改特定菜单项时必须输入的密码。GRUB密码可以是明文的或MD5加密的。
如果是明文密码,格式为:password 明文密码串,如:
password 123456
如果是MD5加密的密码,格式为:password --md5 md5密码串,如:
password --md5 XJjfsddf33444%%$^$^$###。下面是一个具体的例子:
#=================包含密码的grub.conf文件范例==================
password --md5 <进入GRUB命令行模式的密码>
timeout=30
default=0

title Red Hat Enterprise Linux 4 for syd168
password --md5 <启动RHEL 4验证密码>
root (hd01)
kernel /vmlinuz ro root=LABEL=/
initrd /initrd-xxx.img

title Windows 2003 Enterprise Edition for syd168
password --md5 <启动Windows 2003验证密码>
rootnoverify hd00
chainloader +1
#=================包含密码的grub.conf文件范例==================
对于这个配置,当GRUB显示菜单的时候,必须按下p并输入对应的密码才能进入命令模式,如果选择Red Hat Enterprise Linux 4 for syd168并按下回车,会出现提示信息,要求输入密码,这时应该输入密码,密码正确后才可以启动该系统。
--md5告诉GRUB后面的内容是已经用md5算法加密过的了。所以GRUB会将用户输入的口令用MD5(grub-crypt完成)加密后再与之比较。要产生MD5密码,可以把在命令模式下用md5crypt命令或在shell下执行grub-md5-crypt得到的MD5加密串复制到配置文件中即可。
7. GRUB的修复
GRUB虽然提供了方便的启动管理功能,但某些情况下,可能因为误操作或者系统故障导致GRUB被破坏或丢失。如何恢复被破坏的GRUB是很多读者头痛的问题。其实GRUB的修复并不是很难,只要懂得GRUB的基本工作原理,就可以很容易地修复它。
下面,我们介绍两种修复GRUB的方法,即用安装光盘和用备份软盘修复的方法。
(1) 用安装光盘修复GRUB
a.) 用安装光盘启动计算机
首先修改计算机的CMOS配置,并准备好RHEL 4的安装光盘。然后启动计算机,系统会自动从光盘启动。
b.) 选择rescue修复模式
当计算机启动后,会显示如图4-5所示的画面,在最后行输入如下命令并按回车:
bootlinux rescue
这时候,安装程序会自动进入紧急修复模式。首先显示语言,键盘等基本配置。建议语言选择中选择简体中文,后面会出现网络配置,可以选择不配置网络。随后会出现图4-6的画面,提示查找系统中安装的RHEL 4并将其挂载在/mnt/sysimage下。这里直接按回车即可,随后出现图4-7,表示找到已经安装的RHEL 4,并要将其挂在在/mnt/sysimage下,而且提示可以将其切换为根。这里也是按回车即可。然后就进入Linux 的命令行状态。
c.) 改变根路径
按照上面的提示,首先切换目录/mnt/sysimage为根。输入如下命令即可:
#chroot /mnt/sysimage
这时候,/就和正常的Linux一样了。
d.) 运行grub修复GRUB
现在,就可以开始修复GRUB了。只要执行如下几个命令即可:
#grub #执行grub交互程序
grub>find /boot/grub/stage1 #查找stage1所在的设备
(hd0,0) #显示查到的结果
grub>root (hd0,0) #设置根设备
grub>setup (hd0) #安装GRUB MBR
grub>quit #退出GRUB
e.) 退出系统并重新启动系统
#exit #退出chroot
#exit #退出linux并重新启动
执行完上述两条命令后,系统就会重新启动。丢失的GRUB就再次出现了。当然,如果GRUB的破坏很利害,导致很多文件都丢失。则可以按照前面的指示,重新安装GRUB。在RHEL 4的安装光盘中本身就包含GRUB的安装包。
当然,也可以通过启动软盘修复GRUB。但现在计算机上使用软盘的几率已经很小了,所以这里就不再啰嗦了。当然,也可以通过可启动的U盘修复硬盘上的GRUB,由于篇幅的关系,这里讨论了。

上一页 1 2下一页
[收藏] [推荐] [评论] [打印] [关闭]
0
上一篇:Linux系统的相关专业术语发音
下一篇:Linux操作系统优化方法介绍
最新评论共有 4 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
栏目列表
热点关注
相关文章