查看: 3155|回复: 0

Linux启动盘boot/root盘的制作 (4)

[复制链接]

该用户从未签到

发表于 2007-2-5 00:28:19 | 显示全部楼层 |阅读模式
分享到:
二、引导映像参数 

  引导映像参数作用于每一个引导映像区。如果某一引导映像参数(例如:password)与全局参数的定义相抵触,则以该引导映像参数的定义为准,但仅限于该引导映像区。以下是具体参数项: 
  image=pathname 
  设置包含linux核心引导映像的文件或设备。 
  other=pathname 
  设置包含非linux操作系统,如DOS、SCO UNIX、Windows 95等系统引导映像的文件或设备。 
  range=start-end 
  如果“image”参数被设置为一个设备,则linux核心引导映像的存放范围必须被设置。 
  image = /dev/fd0 
  range = 1-512 
  # linux核心引导映像存放在软盘上的第一至512扇区 
  label=name 
  通过此参数来标识当前操作系统,即操作系统名。用户可通过在LILO提示后输入“标识”来决定引导哪一个操作系统。 
  alias=name 
  给当前操作系统起一别名。 
  lock 
  类似同名全局参数。 
  optional 
  类似同名全局参数。 
  password=password 
  类似同名全局参数。 
  restricted 
  类似同名全局参数。 
  以下两个参数项用于非linux操作系统: 
  loader=chain-loader 
  如果要引导第二块硬盘上的非linux操作系统或将LILO安装到软盘,这个参数是必需的。不指定时,缺省值是/boot/chain.b。如启动第二块硬盘上的MS-DOS或Windows 95,可定义loader=/boot/any_d.b;对于OS/2,则为loader=/boot/os2_d.b。 
  作为一个特殊的功能模块,any_d.b已不合时宜,在0.20版以后的lilo程序包中已不再包含它并将其功能整合进chain.b,os2_d.b亦有所变动。它们的功能可用如下语句代替。 
  例: 
   other = /dev/hdb1 
     loader = /boot/any_d.b 
  替换为: 
   other = /dev/hdb1 
     map-drive = 0x80 
     to = 0x81 
     map-drive = 0x81 
     to = 0x80 
  对于os2_d.b: 
   other = /dev/hdb1 
     loader = /boot/os2_d.b 
  替换为: 
   other = /dev/hdb1 
   loader = /boot/os2_d.b 
   map-drive = 0x80 
       to = 0x81 
   map-drive = 0x81 
     to = 0x80 
  map-drive=〈bios_device_code〉 
  通知chain.b装入重映射软驱或硬驱的内存驻留驱动程序,使用它可以引导不同硬盘上的不同操作系统,条件只有一个, BIOS必须能访问硬盘。“map-drive”后跟有变量“TO=〈盘设备号〉”。实际上,“map-drive”起到了“软”交换两个软驱或硬驱主、从顺序的作用,避免了手工接线的麻烦。 
  例:交换软驱 
     map-drive = 0 
     to = 1 
     map-drive = 1 
     to = 0 
  交换硬驱(参看loader参数例) 
  table=device 
  指定包含非linux系统分区的主设备。举例来说,如果Windows 95在第一个IDE硬盘的第一个基本分区上,即/dev/hda1上,那么必须定义table=/dev/hda 。 

三、核心参数 
  如果LILO引导的是linux系统,我们可用下面命令传递一些参数给Linux核心。除“literal”之外,它们也可用于全局参数区。 
  append=string 
  append传递一个特殊硬件的参数串string给linux系统的核心。它常用来配置一些Linux不能正确测试到的硬件设备。例如: 
  append = "hd=64,32,202" 
  通知linux核心,硬盘参数为64柱面、32磁头、202扇区。具体的参数串设置可参看/usr/doc/HOWTO/BootPrompt-HOWTO文件。 
  literal=string 
  类似于“append”,但它将撤消所有的其它核心参数(比如设置了root设备)。因为“literal”会不分青红皂白地撤消一些必需的、重要的参数,所以不能将它设置在全局参数区。 
  ramdisk=size 
  指定RAM盘的大小。size为零时不建立RAM盘。忽略此参数时,RAM盘大小由linux核心引导映像决定。 
  read-only 
  通知LILO以只读方式载入根文件系统。通常我们在检查根文件系统时需要将根文件系统以只读方式载入。linux系统在每次启动时也会将根文件系统以只读方式载入,待例行的文件系统检查后再将其重新载入为读写方式。 
  read-write 
  通知LILO以读写方式载入根文件系统。 
  root=root-device 
  指定被安装根文件系统硬盘分区设备。 
  vga=mode 
  指定引导linux系统时的VGA模式。有以下取值: 
  normal:常规80×25文本模式 
  extended (or ext): 80×50文本模式 
  ask: 引导时询问用户使用哪一种VGA模式,这时敲回车键将显示一个可分配的VGA模式表。 
  如果不指定VGA模式,系统将缺省地使用包含在系统核心里的VGA模式值。 

四、lilo.conf配置实例 
  有了这些基础知识,我们可以很容易地按照自己的意图配置LILO。请看一个lilo.conf文件的例子: 
  boot=/dev/hda         #将LILO安装在MBR。LILO作为主引导管理器 
  message=/boot/message     #注释为/boot/message 
  compact             #产生一个更小的“map”文件 
  map=/boot/map         #指定“map”文件为/boot/map 
  install=/boot/boot.b 
  password=zhoudi         #设置口令 
  vga=normal           #80x25文本模式 
  linear             #使用“linear”地址 
  prompt             #提示用户键盘输入 
  timeout=50           #超时时长为5秒 
  default=dos          #缺省引导label为dos的操作系统 
  #设定linux 
  image=/boot/vmlinuz-2.0.34-1 
  #设置linux核心引导映像 
   label=linux         #标识为linux 
   root=/dev/hda1       #设置根文件系统 
   read-only          #LILO以只读方式载入根文件系统 
  #设定MS-DOS或Windows 95 
  other=/dev/hda2         #DOS分区为第一个IDE硬盘的第二分区 
   label=dos          #标识为dos 
   table=/dev/hda       #主设备为第一个IDE硬盘 
  #设定SCO UNIX 
  注意:SCO分区必须设为活动(active)分区并将LILO安装在MBR上。 
  other=/dev/hda3 
   label=sco 
   table=/dev/hda 
  这个例子中,LILO是作为主引导管理器来管理机器上所有操作系统的。LILO也可作为二级引导管理器,这只要将“boot”参数改为根分区就可做到。例如: 
  boot=/dev/hda1 
  以这种方式使用LILO时,linux根分区必须用DOS或Linux的fdisk程序将其设置为活动分区,并且这种方式只对硬盘主分区(不是扩展或逻辑分区)有效。 
  LILO还可以启动第二个以上的操作系统。在我的机器上有两块希捷硬盘,一块硬盘为8.4GB,另一块为1.2GB,都以LBA模式接在主IDE口上。8.4GB跳线为主盘,1.2GB跳线为从盘,linux核心很容易地就将它们辨认出来并能正常使用,1.2GB的硬盘上安装了MS-DOS 6.22。笔者是这样设置lilo.conf的: 
  disk=/dev/hda 
   bios=0x80 
  #由于IDE硬盘存在双硬盘问题,所以当启动DOS系统时,会提示“无系统盘或系统盘错!”,需修改程序如下。 
  disk=/dev/hdb 
   bios=0x81 
  boot=/dev/hda 
  map=/boot/map 
  install=/boot/boot.b 
  linear 
  prompt 
  timeout=50 
  default=dos 
  image=/boot/vmlinuz-2.2.11-1 
   label=linux 
   root=/dev/hda1 
   read-only 
  other=/dev/hdb1 
   label=dos 
   map-drive = 0x80 
      to = 0x81 
      map-drive = 0x81 
      to = 0x80 
  #交换两硬盘主、从顺序 
   table=/dev/hdb 
  配置好lilo.conf文件后,在root账户下执行lilo命令,新的LILO就被载入系统。上面第一个例子执行结果如下: 
  #lilo 
  Added linux 
  Added dos* 
  Added sco 
  (注:带*号的表示其为缺省操作系统) 

五、LILO提示信息 
  LILO在运行时会给出一些提示信息,了解它的含义对我们正确配置lilo.conf或查找硬件错误是有帮助的。 
  当LILO装入它自己的时候,显示单词 “LILO”:每完成一个特定的过程显示一个字母。如果LILO在某个地方失败了,屏幕上就停留几个字母,以指示错误发生的地方。 
  注意,如果磁盘发生瞬间故障,可能会在第一个字母“L”后插入一些十六进制数字(磁盘错误码)。除非LILO停在那里并不停地产生错误码流,否则并不说明有严重问题。 
  没有提示: LILO没有安装或者安装LILO的分区没有被激活。 
  L〈错误码〉 : LILO的第一部分已经被装入并运行了,但它不能装入第二部分的引导程序。两位数字的错误码指示问题的类型(参见“磁盘错误码”),这种情况通常是在介质访问失败或硬盘参数错误。 
  LI: LILO第一部分正确但是第二部分执行时出错。这一般是硬盘参数有误或/boot/boot.b被移动后没有重新运行map安装程序。 
  LIL: LILO第二部分开始执行,但是不能从“map”文件中读取描述符表( descriptor table)。 这通常是因介质错误或磁盘参数有误引起的。 
  LIL?: LILO在错误的地方加载。原因与“LI”大致相同。 
  LIL-:描述符表(descriptor table)错误。典型原因是硬盘几何参数微妙的不匹配或/boot/boot.b被移动而没有运行map安装程序。 
  LILO: LILO执行正确。 
  1010101010: 分区情况已经改变却没有重新安装LILO,另外,超频也可能会出这种情况。 

六、磁盘错误码 
  0x00:“内部错误”。 由LILO扇区读取子程序产生。可能是因为被破坏的文件,重建map文件试试看。另一个原因也许是,当使用“linear”参数时去访问超出1024的柱面。 
  0x01:“非法命令”。这意味着LILO访问了BIOS不支持的硬盘。 
  0x02:“没找到地址标记”。通常是介质问题,多试几遍看看。 
  0x03:“写保护错”。 仅在写操作时出现。 
  0x04:“扇区未找到”。典型的原因是硬盘参数错误。 
  0x06:“激活顺序改变”。这应该是短暂的错误,再试一次。 
  0x07:“无效的初始化”。BIOS没有适当地初始化硬盘,热启动一次或许有帮助。 

  0x08:“DMA超出限度”。这不应当发生,重新启动。 
  0x09:“DMA试图越过64kB边界”。这不应当发生,建议忽略“compact”参数。 
  0x0C:“无效的介质”。这不应当发生,重新启动看看。 
  0x10:“CRC错误”。检测到介质错误。建议多启动几次,运行map安装程序,把map文件从坏块写到正常的介质上。 
  0x11:“ECC纠正成功”。读错误发生然后被纠正,但是LILO并不知道这个情况,终止了启动过程。 
  0x20:“控制器错误”。一般不应发生。 
  0x40:“定位失败”。这可能是介质问题,重新启动试试。 
  0x80:“磁盘超时”。磁盘或驱动器没有准备好。介质坏了或磁盘没有转,也有可能是从软盘启动而没有关上软驱门。 
  0xBB:“BIOS错误”。一般不应发生,如果反复发生,可考虑去掉“compact”参数或添加删除“linear”参数。 
  如果在写操作过程中发生错误,则在错误码前有个前缀“w”。尽管写错误并不影响启动过程,但它们暗示了系统中存在某种错误,建议重新配置LILO成只读格式(read-only)。 
  LILO的配置相当复杂,读者只有在实践中不断学习、摸索,勤于思考,才能用好LILO。
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /1 下一条



手机版|小黑屋|与非网

GMT+8, 2024-6-3 22:30 , Processed in 0.117005 second(s), 15 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.