摘要:续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