1.GRUB的三种模式
GRUB的用户界面有三种:菜单模式、菜单编辑模式和命令行模式。
(1) 菜单模式当存在/boot/grub/menu.lst文件时,系统启动后会自动进入该模式
(2)菜单编辑模式菜单编辑模式用来对菜单项进行编辑,其界面和菜单模式的界面十分类似,不同的是菜单中显示的是对应某个菜单项的命令列表。如果在编辑模式下按【ESC】键,将取消所有当前对菜单的编辑,并回到菜单模式下。在编辑模式下选中一个命令行,就可以对它进行修改,修改完毕后按回车键,GRUB将会提示用户确认。
(3) 命令行模式进入命令行模式后,GRUB会给出命令提示符“grub>”,此时就可以键入命令,按回车键执行。执行help命令,显示可用的命令。此模式下允许类似于Bash shell的命令行编辑功能。
2.设备名称使用GRUB时,文件系统习惯上采用的命名方式为:(,)。
在设备命名中,圆括号和逗号是很重要的。指出是一个硬盘(hd)还是一个软盘(fd)。依照系统BIOS而确定的设备号,从0开始。第1个IDE硬盘被标为0,第2个IDE硬盘被标为1。这个排序大体上等同于linux内核用字母安排设备的顺序,只是在hda中的a变成了0,hdb中的b变为了1,依次类推。系统的第1个硬盘驱动器被GRUB称为(hd0)。在它上面的第一个分区被称为(hd0,0),第2个硬盘驱动器上的第3个分区被称为(hd1,2)。
menu.lst文件内容
menu.lst(grub.conf)文件的内容如下:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE,You do not have a /boot partition,This means that
# all kernel and initrd paths are relative to /,eg.
# root (hd0,3)
# kernel /boot/vmlinuz-version ro root=/dev/hda3
# initrd /boot/initrd-version.img
#boot=/dev/hda
default=1
timeout=5
splashimage=(hd0,3)/boot/grub/splash.xpm.gz
#hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-92.el5)
root (hd0,3)
kernel /boot/vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.18-92.el5.img
title Windows Vista
rootnoverify (hd0,2)
chainloader +1
title Windows XP
rootnoverify (hd0,0)
chainloader +1
menu.lst文件中命令的说明下面对配置后menu.lst(grub.conf)文件中的一些命令进行说明。
default=1
default后加一个数字n,表示第n+1个操作系统,0表示第一个操作系统,以此类推。default=1表示在用户不选择时,将自动载入第2个操作系统(Windows XP)。
timeout=5
timeout表示默认的等待时间,如果超过5秒,用户还没有作出选择,那么系统将自动载入默认的操作系统(default=1)。
splashimage=(hd0,3)/boot/grub/splash.xpm.gz
指定GRUB引导时使用的屏幕图像文件存放的路径。
title Red Hat Enterprise Linux Server (2.6.18-92.el5)
title定义启动菜单项的名称,title后面的字符串就是在菜单项上显示的选项,可以写上操作系统的名字和描述信息,如:Red Hat Enterprise Linux Server (2.6.18-92.el5)。
root (hd0,3)
将GRUB的根分区设置成特定的设备和分区,比如说(hd0,3)。并挂入这个分区,这样文件可以被读取。是指第1个硬盘的第4个主分区。
kernel /boot/vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet
说明vmlinuz-2.6.18-92.el5是要载入的内核。后面的都是传递给内核的参数,ro是readonly的意思,root= LABEL=/是linux的硬盘分区表示法。
initrd /boot/initrd-2.6.18-92.el5.img
加载linux镜像文件。用来初始化linux映像文件,并设置相应的参数。
title Windows Vista
title定义启动菜单项的名称,title后面的字符串就是在菜单项上显示的选项,可以写上操作系统的名字和描述信息,如:Windows Vista。
rootnoverify (hd0,2)
做root命令同样的事情,只是不挂入分区。是指第1个硬盘的第3个分区。
chainloader +1
调用windows分区的引导器引导windows系统。装入一个扇区的数据,然后把引导权交给它。
1.4.2 实例—GRUB的应用
实例1-3 修复GRUB
当Linux不能被正常引导时,就应该考虑修复GRUB了。
修复GRUB的详细过程如下:
第1步:把安装盘的第一张放到光驱,然后重新启动机器,在BIOS中把系统用光驱来引导。
第2步:等安装界面出来后,在boot后面输入“linux rescue”,敲回车键。
第3步:然后会让你配置语言和键盘,按需求继续。
第4步:然后会出现命令提示符:sh-3.2#
第5步:执行#grub命令,会出现GRUB命令提示符:grub>,此时就进入了功能强大的GRUB控制台。
下面就可以在GRUB控制台执行如下的命令:
grub>root (hd0,3)
grub>setup (hd0)
grub>quit
实例1-4 重设root用户密码有时候会忘记root用户的密码,下面给出解决办法。
第1步:重启系统,进入GRUB启动界面(菜单模式),如图1-19所示。选择“Red Hat Enterprise Linux Server”菜单项,单击【E】键,进入菜单编辑模式,如图1-20所示。
第2步:在图1-20中,选择“kernel”菜单项,单击【E】键对该项进行编辑,将光标移动到最后,输入字母s,敲回车键,然后单击【B】键启动系统。
 注意:
字母s和前面的单词之间有空格。
第3步:在Linux的单用户模式下,执行命令#vi /etc/passwd(或#vim /etc/passwd),将光标移到字母x,如:,单击【DEL】键,删除字母x,然后按【Shift】和【:】键,在冒号后输入“wq”,接着敲回车键,至此,root用户的密码已经被清除。
//第2、3步 也可以:#passwd –d root
第4步:执行命令#init 3(或#init 5)。
第5步:进入Linux系统后,执行命令#passwd为root用户重新设置密码。