Chinaunix首页 | 论坛 | 博客

分类: LINUX

2009-01-27 15:07:17

  说实在的,整个开机以 grub 来作为 boot loader 就很棒了~没有什么需要玩 LILO 的啦! 不过, grub 还是有点小缺点的,那就是,当你的 partition 变了,或者是 Windows 存在, 但 Linux 死掉时,因为在 Linux 的设定档 (/boot/grub/menu.lst) 挂点, 将会导致无法启动 Windows 的困境,除非您很清楚的知道如何使用 grub shell ,否则, 还真糗~

  在这个部分, LILO 则使用与 grub 不同的机制,他将 boot loader 的 stage1 与 stage2 通通写入 MBR 或者是 super block 开机区当中,所以,设定档当然就不需要一定要存在于 Linux 的 filesystem 上啰!您说对吧! ^_^。 但还是各有利弊得失啦~没有说那个比较好就是了。但也因为如此,所以: 当 LILO 设定档被改过后,一定需要重新安装 LILO 一次。 这一点与 grub 是完全不同的呢。

  其实,LILO (LInux LOader) 看名称就知道是 Linux 最早的 boot loader , 他主要利用 /etc/lilo.conf 这个设定档,然后再以 lilo 主程式将该设定内容写入开机区当中。 接下来我们就来玩一玩 LILO ,不过需要留意的是, FC4 似乎没有提供 Lilo 给我们呢! 所以使用 FC4 的朋友应该就没有办法玩这个咚咚了~不过没关系吧~知道 boot loader 即可啊! ^_^

  LILO 的设定档 /etc/lilo.conf:
  LILO 的设定档 /etc/lilo.conf 同样的分为两部分,分别是 LILO 整体环境设定部分, 与每个开机项目核心档案名称规范部分。有点像这样啦:

  [root@linux ~]# vi /etc/lilo.conf
  # 第一部份,整体的设定部分
  prompt      <==强制出现 boot 的开机讯息啰!
  Compact     <==可以整合一些读取的磁区,可以保持 map 较小,适合软碟开机时使用
  timeout=50  <==如果有多重开机的话,可以设定这个延迟时间,单位0.1秒
  default=linux-2.4.18  <==预设的开机项目,与底下的 label 对应!
  boot=/dev/hda         <==Lilo 的开机资讯写入到 /dev/hda 这颗硬碟的 MBR 当中。
  map=/boot/map         <==用来说明 local 主机的地图资讯啰!
  install=/boot/boot.b  <==关于开机区的讯息(boot sector),不用理他没关系!
  Linear                <==在较大容量的硬碟使用时,可以加入这一个参数试试看!
  lba32                 <==这个东西也是在大容量的硬碟使用时候会需要的参数!
  password=1234567      <==设定密码!如果为了安全起见,可以设定您的 lilo 密码哩!
  message=/boot/message <==那个 LILO 的讯息就是在里面出现的啦!

  # 第二部分,个别的开机设定部分,一个 image 或 other 均代表一个开机设定!
  image=/boot/vmlinuz-2.4.7-10     <==核心档案啦!
  label=linux-2.4.7        <==请注意!label 前面以 [tab] 按键来作为分隔!
  initrd=/boot/initrd-2.4.7-10.img
  read-only                <==开机磁区挂载为唯读!
  root=/dev/hda1           <==挂载成 / 这个 root 目录的磁碟!
  other=/dev/hdb1                  <==如果是‘非 Linux 核心’就以 other 来设定
  label=Windows2k          <==同样的要有 label 来表示这个开机磁区的名称!

  注意上面的几个项目,在整体环境设定项目当中,要注意:

  * timeout=50
  timeout 的设定是 0.1 秒,所以 delay=50 表示延迟时间为 5 秒!

  * linear 与 lba32
  linear 与 lba32 通常用在 SCSI 或者是较大的硬碟,例如磁柱(cylinder)总数超过 1024 磁柱的硬碟,可以使用这个项目来除错!不过,如果是小于 8GB 的硬碟, 这两个东西有没有设定就没有什么影响了!早期的硬碟容量不大,所以 cylinder 不会超过 1024 ,但较新的硬碟容量太大了,如果核心档案 (/boot/vmlinuz) 放置在 1024 磁柱以后,则可能会发生无法读取的问题,因此需要设定这个 lba32 啊! 这也是为何很多 distribution 预设都会将 /boot 独立出来的缘故!

  * default
  default 需要设定成底下几个 image 或者是 other 的 label 才成! 这个地方最常被忘记!因为常常会记得修改 label ,但是忘记跟著改变 default 的内容!此外,如果你想要修正开机预设的作业系统选项,在这里改啦!

  * password
  password 的用途在于安全防护方面,不过有个困扰,就是‘ 如果你的电脑因为不正常关机 (如断电后重开) 而在电源恢复的时候重新开机时,则会卡在这个阶段无法直接进入 Linux 系统’, 因为你必须提供 password 才能继续的工作呀!

  * boot
  boot 显示的是开机的磁区选择! 这里也蛮重要的,如果你想要安装在 MBR 里面的话,如同上面的书写模式,就是写入 /dev/hda ,后面不要加上每个 partition 的代码!但是,如果你是想写入 Super Block ,例如我想要写入的是 hda5 这个 Logical 的 partition 时,那么这里就必需要改写为 /dev/hda5 啰!所以,您应该只要一看到这个 boot 后面接的内容,就会知道那个安装的磁区是 MBR 还是 Super Block 啰!

  至于每个开机选单项目的内容,主要分为:

  * image=kernel_file
  image 后面就是接核心档案的档名就是了!这主要是针对 Linux 来作的设定啦! 在 image 底下还有很多的设定项目,每个项目都以 按键来缩排,主要的项目有:
  o label:项目名称!出现选单时可以选择的项目;
  o initrd:后面就是接 RAM Disk 的 initrd 档案档名啊!
  o root:这个重要!就是根目录 (/) 的装置代号啊!
  o append:核心额外的功能增加的地方!与 grub 的 kernel 后面接的参数意思很相近!

  * other=device
  其实这个就是 chain loader 啦!移交 boot loader 控制权的设定项目。 在 other 后面接的就是磁碟的装置代号,不论是 MBR 或 super block 都可以啊!里面只要有 label 即可啊!

  大致就是这样啊~如果还有什么疑问,详情请参考 man lilo.conf 即可呦!

阅读(2543) | 评论(0) | 转发(0) |
0

上一篇:关于大硬碟的问题

下一篇:什么是MBR

给主人留下些什么吧!~~