Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103639272
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-04-30 09:06:25

作者:吴迪 来源:开放系统世界—赛迪网

上面代码指出的字符就是Grub菜单项上所看见的选项,你可以写上操作系统的名字和描述,如用 title Linux、 Single Mode代表这一选项是引导此Linux的单用户模式。在LILO中,label=name通过此参数来标识当前操作系统,即操作系统名。用户可通过在LILO提示后输入name来引导特定的操作系统。

(2)LILO的配置信息

在LILO.conf中,最多有16个操作系统选项,它比Grub有更大的灵活性。LILO.conf配置文件主要分为两部分:一部分是全局配置;另一部分是引导配置,“#”表示注释。

◆ LILO的全局配置

全局参数是全程有效的,它可以出现在文件LILO.conf中的任何地方。

指定引导操作系统文件的备份:

backup=backup-file
force-backup=backup-file
install= file

在装入LILO之前,将原先的引导区备份到backup-file。它可以备份到一个设备上,用户可以通过dd if=/boot/boot.bak of=/dev/hda bs=446 count=1恢复原先的MBR。force-backup=backup-file类似“backup”,但是会覆盖原有的同名文件。install=file将指定的文件作为新的引导扇区来安装,若未设置install选项,则将boot/boot.b作为默认缺省值使用。

指定一个用于安装LILO的设备:

boot=boot-device

上面代码指定一个用于安装LILO的设备。通常LILO可安装在如下几个地方:

MBR:第一个硬盘的主引导区, 对应于/dev/hda、/dev/sda或者是/dev/hda0等。

Root: Linux根分区“/”上。

Floppy: LILO安装在软盘上,对应于/dev/fd0。LILO缺省安装在根分区超级块上。

指定用于优化压缩LILO:

compact

该参数用于优化压缩LILO,让LILO把相邻扇区的多次读取请求合并成一次读取请求,从而使MAP文件更小。因此,从软驱读取时推荐使用 compact 选项。

指定强制LILO等待用户的键盘输入:

prompt         
delay=tsecs 
prompt forces

prompt给出“boot:”提示,强制LILO等待用户的键盘输入,按下回车键则立即引导默认的操作系统;按下Tab显示可供选择的操作系统。大多数情况下,如果有多个操作系统应该使用参数,这样留给用户一个选择的余地。在没有指定“prompt”参数时,LILO将立即引导缺省的操作系统。“delay”参数在这之间插入一段延时,单位是1/10秒。如果未设置delay选项或设为0,则引导装入程序就不会等待。prompt forces不等待任何的按键事件发生,就直接进入启动提示符模式。如果设定了prompt选项而没设定timeout选项,则不能自行启动。

指定非标准硬盘的具体参数:

disk=device-name

上面代码指定了非标准硬盘的具体参数。它有以下的几个参数:bios,设备号;sectors,硬盘扇区数;heads,硬盘磁头数;cylinders,硬盘柱面数;partition,用于物理定位特殊硬盘上的分区;start,每一分区的起始扇区。

指定磁盘的物理性能指标:

linear
table=device
fix-table
ignore-table

linear产生线性扇区地址,而非“扇区/磁头/柱面”地址的linear扇区地址。因此,linear地址在运行时不依赖于硬盘参数。注意,在将LILO安装到软盘上时不能使用“linear”参数。table指定含有分区表的设备;若未指定该参数,引导装入程序就不会把分区信息传送到已启动的操做系统。若一个已定位且引用了table选项的分区表被修改则必须重新运行LILO。fix-table选项使得LILO可对分区表上的扇区/磁头/柱面,以及线性地址进行调整,从而建立每个分区表入口、包含有该分区的最前和最后一个扇区的扇区/磁头/柱面及线性地址。ignore-table通知LILO忽略无效的硬盘分区表。

指定map文件:

Lock
map=map-file

指定map文件,没有本项时缺省使用/boot/map,每次改动LILO都应产生一个新的与之相关map文件。Lock是告诉LILO,提示后立即按上一次的引导映像启动计算机。允许自动记录引导命令行,作为以后启动的默认缺省值。

当用于启动的引导映像不存在时,使用optional参数使LILO忽略它。这对用于测试一个不长期存在的Linux内核是有用的。

指定LILO设置口令保护:

password=password
restricted

上面代码为LILO设置口令保护,每次重新启动计算机提示用户输入口令。因为这个密码是明文的,设置了口令后建议将LILO.conf的文件属性改为000,以免让非root用户看到口令。restricted 与password联用,使“password”仅作用于在LILO提示后有参数输入的时候。

指定串行口控制器的参数:

serial=parameters (port, bps,parity,bits)

这将初始化指定的串口,并将使引导管理器能接收来自串口的输入。

参数如下:

〈port〉 表示的串口号。
〈bps〉 串口速率。
〈parity〉设置串口校验。一般情况下,LILO忽略奇偶校验。n表示无校验,e表示偶校验,o表示奇校验。
〈bits〉字符位数,只能取7或8,缺省值是8。当有奇偶校验时只能取7。

用下面命令可以打开进程报告:

verbose=level
append=string

数目越大给出的冗长输出越多。如果在LILO命令行中附加参数-v,则冗长标准也相应增加,最大的冗长标准是5。

append传递一个特殊硬件的参数串string给Linux系统的内核。它常用来配置一些Linux不能正确测试到的硬件设备。例如:append = “hda=128,64,200”指明该硬盘为128柱面、64磁头、200扇区。

指定RAM盘的大小:

ramdisk=size

size为零时不建立RAM盘。忽略此参数时,RAM盘大小由Linux内核引导程序决定。

指定以何种读写方式载入根文件系统:

read-only
read-write

从字面上可以知道它们分别是通知LILO以只读方式载入根文件系统,以读写方式载入根文件系统。

指定LILO引导Linux系统时的VGA模式:

vga=mode

指定LILO引导Linux系统时的VGA模式,有以下的参数值:

normal  常规80×25文本模式。 
extended  80×50文本模式。 
ask
引导时询问用户使用哪一种VGA模式,这时敲回车键将显示一个可分配的VGA模式表。如果不指定VGA模式,系统将缺省地使用包含在系统内核里的VGA模式值。

◆ 引导配置

引导映像参数作用于每一个引导区。

设置包含Linux内核引导映像的文件或设备:

image=pathname

设置包含非Linux操作系统:

other=pathname

如DOS、Windows 95等系统引导的文件或设备,以提示启动其它独立的系统。

range=start-end
alias=name
loader=chain-loader

如果“image”参数被设置为一个设备,则Linux内核引导程序的存放范围必须被range=start-end设置。alias给当前操作系统起一别名。loader=chain-loader指定LILO所需要的特定的引导程序,缺省值是/boot/chain.b。

LILO运行时会给出一些提示信息,这些信息对于深刻地了解Bootloader是很有益的。表2罗列了一些错误信息供参考。

表2 LILO出错信息

LILO出错信息    代表的意义
LILO提示信息 NULL LILO没有安装或者安装lILO的分区没有被激活
L LILO的第一部分已经被装入并运行了,但它不能装入第二部分的引导程序。这种情况通常发生在介质访问失败或硬盘参数错误。
LI LILO第一部分正确,但是第二部分执行时出错。一般是硬盘参数有误或/boot/boot.b与map程序不相匹配。
LIL LILO第二部分开始执行,但是不能从“map”文件中读取描述符表(Descriptor Table)。磁盘介质错误或磁盘参数有误。
LIL? LILO在错误的地方加载。
LIL- 描述符表错误。硬盘参数的不匹配或/boot/boot.b与map程序不相匹配。
磁盘错误码 0x00 由LILO扇区读取子程序产生。map文件被破坏,或者当使用“linear”参数时访问超出1024的柱面。
0x01 LILO访问了BIOS不支持的硬盘。
0x02 磁盘介质出现问题。
0x03 磁盘介质写保护错。
0x04 磁盘扇区未找到,硬盘参数错误。
0x05 磁盘激活顺序改变。
0x06 磁盘错误的介质。
0x07 无效的初始化,BIOS没有适当地初始化硬盘。
0x08 DMA超出限度。
0x09 DMA试图越过64KB边界。由于“compact”参数造成。
0x0C 无效的磁盘介质。
0x010 “CRC错误”,检测到介质错误。建议多启动几次,运行map安装程序,把map文件从坏块写到正常的介质上。
0x11 ECC纠正成功。读错误发生然后被纠正,但是LILO并不知道这个情况,终止了启动过程。
0x20 磁盘控制器错误。
0x40 磁盘定位失败,磁盘介质问题。
0x80 磁盘超时。磁盘或驱动器没有准备好,介质坏了或没有磁盘。
0xBB BIOS错误。磁盘与BIOS配置不符。

(3)Grub配置信息

与LILO相比,Grub有更强的交互性。下面就以它的命令来理解这个bootloader 。

进入菜单,按“e”是编辑启动命令,按“c”是使用命令行。按“e”键可以编辑所选项的启动命令,用这个功能可以临时改变系统的启动参数。

要启动一个操作系统,首先指定引导哪个分区上的系统,例如要引导第一个硬盘上的第一个分区的操作系统,先键入:

grub>root (hd0,0)

如果要启动的是Windows系统,键入:

grub>chainloader (hd0,0)+1

注意,(hd0,0)要随着硬盘和分区的不同而改变。

如果要引导Linux或其它系统,应键入:

grub>kernel (hd0,6)/boot/vmlinuz root=/dev/hda7

注意,磁盘参数也要随着硬盘和分区的不同而改变,如从第二个硬盘的第一个分区引导则用hdb1,最后敲入boot就可以启动系统了。

在不能确定命令或者命令的参数时,都可以按“Tab”获得相关的帮助;用上下键可以获得命令的历史记录,这些就像在Linux中使用bash一样简单。也可以键入启动命令,然后boot就可以引导系统了。

Grub下生成引导盘:

grub> root (fd0)   
grub> setup (fd0)   
grub> quit

如果要把Grub装到硬盘上,也很容易。如果安装到MBR,则可以指定整个磁盘而不必指定分区,如下(对于hda):

grub> setup (hd0)

如果要将Grub安装到/dev/hda7的引导记录中,应输入:

grub> setup (hd0,6)

综上所述,LILO要求用户十分明白每个参数才能很好地掌握;而Grub则更加看中用户的交互性,两者在bootloader中不分伯仲。

实例

下面就以我的lilo.conf为例,把它翻译成Grub的menu.lst文件。

lilo.conf:
#The lilo.conf of the writer
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/cosixmsg   //指出开机画面的文件所存放的路径和文件名
prompt
password = wudi   //密码是wudi
timeout=50  //在5秒之后引导默认的操作系统
default=dos   //默认启动选项dos
image=/boot/vmlinuz-2.2.16-3  //指出Linux内核的路径
  label=linux  //指定操作系统的名字Linux
  vga=0x301
  read-only
  root=/dev/hda7
other=/dev/hda1   //指定操作系统的名字DOS
  label=dos

翻译后的menu.lst文件:

timeout 5  //在5秒之后引导默认的操作系统
  default 1   //默认启动选项dos
 # → linux ←   //指定操作系统的名字LINUX
 title linux   root (hd0,6)   kernel /boot/vmlinuz-2.2.16 root=/dev/hda7 ro 
  initrd /boot/initrd-2.2.16.gz 
 # → linux END ← 
 # → dos ←  //指定操作系统的名字DOS
 title dos   root (hd0,0)   chainloader +1 
 # → dos END ←

通过以上对Grub和LILO的讲解,读者可能已经对这两种bootloader有了较深地理解,但是还需要经过大量反复地练习,才能很好地掌握。

阅读(261) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~