说实在的,整个开机以 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 即可呦!
阅读(2593) | 评论(0) | 转发(0) |