LILO使用指南(中)

/ns/wz/sys/data/20020824053808.htm


LILO使用指南(中)

  

三、关于lilo的问题

1、先装了Windows,再装Linux时,不能安装LILO。这是大多数Linux新手的问题;

  有些BIOS不能识别大于8.4G的硬盘,旧的LILO不能识别位置大于1024柱面的系统内核(kenerl)。因此可能的问题是:LILO被装入MBR,而为Linux准备的硬盘分区远在1024柱面之外,因此Linux不能引导;LILO被装入Linux的root分区(根分区),而它恰好在8.4G之外,又挂了!

  解决方案:

  也许你已经安装了Linux,不要delete它,改改还能用!好,现在开始:

  1) 用PartitionMagic5.0在第一个硬盘的开始分出个10M的ext2分区,格式化。最好把为Linux准备的分区也一同准备好,省得以后麻烦。

  2) 用Loadlin或Linux的boot和rescue盘引导系统。mount那个10M的分区--/dev/hda1,假设我使用boot和rescue盘,mount到/mnt/tmp。把/boot/*和内核映象文件拷贝到/dev/hda1相同的目录下,编辑/etc/lilo.conf,在所有的目录前加上/dev/hda1的mount路径,并且将LILO安装到/dev/hda1。

  把lilo.conf中的


boot = /dev/hda
install= /boot/boot.b
message = /boot/bootmsg
map= /boot/map
image = /boot/vmlinuz-2.2.13



  修改为


boot = /dev/hda1
install= /mnt/tmp/boot/boot.b
message = /mnt/tmp/boot/bootmsg
map = /mnt/tmp/boot/map
image = /mnt/tmp/boot/vmlinuz-2.2.13



  调用lilo命令,重新安装LILO。重起系统,就完了。

  记住,要卸载Linux,可以用DOS下的fdisk /mbr清除MBR中的LILO。

2、多重引导NT、9x和Linux,并且想要比LILO更有好的界面,Linux+NT-Loader-mini-HOWTO中有详细的介绍;

  主要的问题是如何将Linux的引导记录写入bootsect.???文件,这里假设你已经成功地安装好Windows9x与NT了。

  这里假设Linux安装于第一个逻辑分区,在Linux下为/dev/hda5,Windows9x安装于第一个主分区,在Linux下为/dev/hda1,WindowsNT安装于第二个主分区,在Linux下为/dev/hda2。)

  解决方案:

  用Loadlin或Linux的boot和rescue盘(指BluePoint光盘的启动选项,RedHat里好像没有)引导Linux系统。(loadlin比较好,rescue盘上可能没有mtools,只能mount cp umount)用一下几句命令创建该文件:

dd if=/dev/hda5 of=/root/bootsect.lix bs=512 count=1


  插入软盘,

mcopy /root/bootsect.lix a:


  重新引导系统,进入DOS会快一些看到你的成果,进入ntldr所在硬盘分区的根目录,或者说安装WindowsNT前可引导的硬盘分区的根目录(这里是Windows9x)。拷贝软盘上的bootsect.lix文件。去除boot.ini的只读、隐藏属性。在最后添加c:ootsect.lix="Go to Linux"。存盘退出,添加boot.ini的只读、隐藏属性。重新引导系统,再试试看!注意在对Linux内核的作任何修改后,都必须重作以上步骤,才能正确引导Linux系统。

3、安装多余一个的Linux系统;

  主要的问题还是如果多个Linux的LILO或根分区不能被BIOS找到,系统就会挂起!这里假设BluePoint Linux安装于第一个逻辑分区,在Linux下为/dev/hda5,RedHat Linux安装于第二个逻辑分区,在Linux下为/dev/hda6。)

  解决方案:

  我们就同样的建个10M的分区。将两个Linux的引导文件多拷贝到此分区,通常是/boot下的一切,有可能还有/vmlinuz--内核文件,依Linux的发行版本而不同。建议将其分装入两个目录。假设为/bootBlurPoint和/bootRedHat。

  编辑lilo.conf文件:

  原始


boot = /dev/hda
install= /boot/boot.b
message = /boot/bootmsg
map = /boot/map

image = /boot/vmlinuz-2.2.13
label = linux
root = /dev/hda1



  修改为


boot = /dev/hda1
install= /mnt/tmp/bootBluePoint/boot.b
message = /mnt/tmp/bootmsg
map = /mnt/tmp/bootBluePoint/map

image = /mnt/tmp/bootBluePoint/vmlinuz-2.2.13
label = BluePoint
root = /dev/hda5

image = /mnt/tmp/bootRedHat/vmlinuz
label = RedHat
root = /dev/hda6



4、从主引导记录中移走LILO并重存原先的windows MBR

  1) c:> fdisk /mbr

  2) #/sbin/lilo -u /dev/hda

  3) #dd if=/boot/boot.0300 of=/dev/hda bs=446 count=1

  4) #cat /boot/boot.0300 > /dev/hda

  注意:只有你原先安装windows 95后再安装Linux时,/boot/boot.0300才是你原先的windows 95 MBR。

5、重存LILO到MBR

  1) 用安装软盘或光盘启动到boot:

boot: vmlinuz root=/dev/hdXY (如: hda1 )


   启动完成后运行 #/sbin/lilo

  2) 用两张软盘启动后:


#mount -t ext2 /dev/hda1 /mnt
#ln -s /mnt/boot boot
#ln -s /mnt/etc/lilo.conf /etc/lilo.conf
#/mnt/sbin/lilo



6、拷贝LILO到软盘

  1) /sbin/lilo -b /dev/fd0

  2) 用Redhat 安装盘引导到 boot:


boot: vmlinuz root=/dev/hdXY (hdXY 为你的根分区)
update /etc/lilo.conf
root=/dev/fd0
boot=/dev/fd0



  再运行:

#/sbin/lilo -v


7、制作一张Redhat Linux 引导盘

#mkbootdisk --device /dev/fd0 2.2.19


8、拷贝内核至软盘,让软盘单独引导Linux并挂上硬盘上的根文件系统。

#fdformat /dev/fd0H1440