一、菜单命令

菜单命令只能用于grub配置文件的全局配置部分,不能用在grub命令行交互界面,菜单命令在配置文件中应放在其它命令之前。

1、default //设置默认启动的菜单项

2、fallback //设置启动某菜单项失败后反回的菜单项

3、hiddenmenu //隐藏菜单界面

4、timeout //设置菜单自动启动的延时时间

5、title //开始一个菜单项

二、常规命令

常规命令可以应该于配置文件和grub命令行交互界面,可使用的常规命令有

1、bootp //通过bootp初始化网络设备

2、color //设置菜单界面的颜色

3、device //指定设备文件作为驱动器

4、dhcp //通过DHCP初始化网络设备

5、hide //隐藏某分区

6、ifconfig //手工配置网络设备

7、pager //改变内部页程序的状态

8、partnew //新建一个主分区

9、parttype //改变分区的类型

10、password 为菜单界面设置口令

11、rarp //通过RARP初始化网络设置

12、serial //设置串口设备

13、setkey //设置键盘映射

14、splashimage //设置GRUB启动时的背景图片文件

15、termainal //选择终端类型

16、tftpserver //指定TFTP服务器

17、unhide //还原某隐藏分区

三、命令行和菜单项命令

命令行和菜单项命令可应该于GRUB配置文件的菜单项设置中,也可以用在GRUB命令交互界面。

1、bolcklist //显示某文件所在分区位置(block list notation)

2、boot //启动操作系统

3、cat //显示文件内容

4、chainloader //把启动控制权软交给另外的启动引导器

5、cmp //比较两个文件

6、configfile //加载已存在的GRUB配置文件

7、debug //设置为debug模式

8、displayapm //显示APM BIOS信息

9、displaymem //显示内存配置

10、embed //嵌入Stage 1.5文件

11、find //查找包括某文件的所有设备

12、fstest //测试文件系统

13、geometry //显示某驱动器的物理信息

14、halt //停止计算机运行(软件关机)

15、help //显示GRUB的命令帮助信息

16、impsprobe //查询对称多处理器(SMP)的信息

17、initrd //加载initrd文件

18、install //安装GRUB

19、ioprobe //查询某驱动器的输入输出(I/O)端口

20、kernel //引导操作系统内核

21、lock //锁定某GRUB导菜单项,使其输入密码后才可启动

22、makeactive //激活某主分区

23、map //虚拟映射某驱动器

24、md5crypt //使用MD5加密口令

25、module //加载模块

26、modulenounzip //加载模块不进行解压

27、pause //暂停并等待按键

28、quit //退出GRUB

29、reboot //重新启动计算机

30、read //读取内存中的内容

31、root //设置GRUB的root设备

32、rootnoverify //设备GRUB的root设备但不装载文件系统

33、savedefault //保存当前的启动菜单项为默认启动

34、setup //自动安装GRUB

35、testload //从文件系统中测试读取某文件

36、testvbe //测试VESA BIOS EXTENSION

37、uppermem //强制设置主机上位内存的大小

38、vbeprobe //查询VESA BIOS EXTENSION信息

 

GRUB 里的设备命名法则

    它使用了UNIX对设备的命名方法.比如我们拥有两块硬盘,那么采用这种形式(hdx,y), 这里,x,y, 都是从0开始计数的.所以两块硬盘是 (hd0,y),(hd1,y). 他们位于第一个IDE接口上. 对 hd0 来说, 请看下图:

1054331.png

(注, C: 为第一主分区, 其他分区是扩展分区.由于主分区只能有四个,即 0,1,2,3, 所以第一个扩展分区的编号从 4 开始.)

    这是硬盘,那么光驱哪? 对,采用 (cd) 就可以了. 网络设备使用 (nd). 我估计,以后支持usb以后,可以使用 (ud). ;-)  欢迎你的参与,我们的开发还在继续.

 

ROOT的使用格式是:ROOT(HDX,Y) 其中X从0---N,Y也是。第一个硬盘,第一个分区就是(HD0,0),第一个硬盘,第二个分区就是(HD0,1);

第二个硬盘,第一个分区就是(HD1,0),第二个硬盘,第二个分区就是(HD1,1);如此类推,可以知道ROOT的用法了。

ROOT是GRUB识别硬盘和文件格式的命令,告诉GRUB启动设备是什么和启动设备MOUNT的文件格式,以及下一步可以到那里找GRUB的配置文件,启动核心,或启动IMG文件等。

SETUP 和 INSTALL 是安装GRUB 到指定位置如:MBR等,具体可以看HELP文件,没有什么特殊之处。

STAGE1,STAGE2针对不同的的文件系统,都可以到GRUB的包里或/USR/SHARE/GRUB目录里找到,拷到GRUB目录下就可以了。

GRUB.CONF的格式如下:

default=0

timeout=10

splashimage=(hd1,2)/boot/grub/splash.xpm.gz

title WindowsXP

rootnoverify (hd0,0)

chainloader +1

title RedHat9

root (hd0,1)

kernel /boot/vmlinuz-2.4.20-8 ro root=LABEL=/

initrd /boot/initrd-2.4.20-8.img

title Mandrake9.1

kernel (hd1,4)/boot/vmlinuz root=/dev/hdb5 quiet devfs=mount acpi=off vga=788

initrd (hd1,4)/boot/initrd.img

default=X为默认启动的系统,0为排在第一个的系统,以此类推。

timeout=X为Grub菜单停留的时间,单位为秒

title XXX,XXX为标题,也就是你要引导的操作系统的名字,可以自己修改

rootnoverify (hd0,0) 告诉 GNU GRUB 您用的 Widnows C 盘在哪里,但同时不要试图将其挂载(‘noverify’,可选项)。

  

chainloader +1 告诉 GNU GRUB 不要试着自己载入 Windows (自身无法完成),而应该将启动进程交给 C 盘的首扇区,那里含有原始的 DOS/Windows 启动程序。

 

GRUB引导9个操作系统

 

title RedHat 73

root (hd0,8)

kernel /boot/vmlinuz-2.4.18-3 ro root=/dev/hda9

initrd /boot/initrd-2.4.18-3.img

title WinXP

rootnoverify (hd0,0)

chainloader +1

title SuSe80

rootnoverify (hd1,0)

chainloader (hd1,0)+1

title Mandrake82

rootnoverify (hd1,1)

kernel /boot/vmlinuz-2.4.18-6mdk root=/dev/hdb2

initrd /boot/initrd-2.4.18-6mdk.img

title TurbO-80

rootnoverify (hd1,2)

kernel /boot/vmlinuz root=/dev/hdb3

title Mandrake90

rootnoverify (hd1,4)

kernel /boot/vmlinuz root=/dev/hdb5

initrd /boot/initrd.img

title Red Hat Linux [limbo]

root (hd1,5)

kernel /boot/vmlinuz-2.4.18-5.58 root=/dev/hdb6

initrd /boot/initrd-2.4.18-5.58.img

title Slackware 81

rootnoverify (hd1,6)

kernel /boot/vmlinuz root=/dev/hdb7

title Debian

rootnoverify (hd1,7)

kernel /vmlinuz root=/dev/hdb8

 

恢复被windows破坏的grub.

 


如果你用grub来引导linux和windows,当windows出毛病重新安装后,会破坏MBR中的grub,这时需要恢复grub.

1.把linux安装光盘的第一张放到光驱,然后重新启动机器,在BOIS中把系统用光驱来引导。

2.等安装界面出来后,按[F4]键,也就是linux rescue模式。

3.一系列键盘以及几项简单的配制,过后就[继续]了。。。这个过程,我不说了,比较简单。

4.然后会出现这样的提示符:

sh#

5.我们就可以操作GRUB了.输入grub:

sh#grub

会出现这样的提示符:

grub>

我们就可以在这样的字符后面,输入:

grub>root (hdX,Y)

grub>setup (hd0)

如果成功会有一个successful......

这里的X,如果是一个盘,就是0,如果你所安装的linux的根分区在第二个硬盘上,那X就是1了;Y,就是装有linux系统所在的根分区。 setup (hd0)就是把GRUB写到硬盘的MBR上。