有兴趣的,可以读读以下一些文章:
mini-HOWTOs
LILO
Linux+DOS+Win95
Linux+NT-Loader
现在看看我们的问题:
一、先装了Windows,再装Linux时,不能安装LILO。这是大多数Linux新手的问题;
二、多重引导NT、9x和Linux,并且想要比LILO更有好的界面,Linux+NT-Loader-mini-HOWTO中有详
细的介绍;
三、安装多余一个的Linux系统;四、将Windows9x与WindowsNT/2000完全隔离,但又能在同
一界面中多重引导。我的解决方案只能处理最多两个完全隔离一个Windows9x和一个WindowsNT/2000系统,并且要求基于不同文件系统。
情况一:
有必要知道的是,有些BIOS不能识别大于8.4G的硬盘,LILO不能识别位置大于1024柱面的系统内核(kenerl)(目前)。因此可能的问题是:LILO被装入MBR,而为Linux准备的硬盘分区远在1024柱面之外,因此Linux不能引导;LILO被装入Linux的root分区(根分区),而它恰好在8.4G之外,又挂了!!!不过Linux的内核是个好东东:只要它在控制系统,就没什么不能找到的。我的解决方案就基于此。
解决方案:
也许你已经安装了Linux,不要delete它,改改还能用!好,现在开始:
1. 用PartitionMagic(5.0的,好用。没装?快去弄个吧!没它,可没有安全保证。)在第一个硬盘的开始分出个10M的ext2分区,格式化(???:老土!PQmagic自己会格的!TermiC:但是有的哥们不用PQmagic啊?啊呀!(丑鸡蛋扔来)SORRY,还有大姐们!!!)。最好把为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。
原始 修改后
boot = /dev/hda boot = /dev/hda1
install= /boot/boot.b install= /mnt/tmp/boot/boot.b
timeout = 500 timeout = 500
prompt prompt
message = /boot/bootmsg message = /mnt/tmp/boot/bootmsg
default = win default = win
vga = normal vga = normal *
read-only read-only *
ma p= /boot/map map = /mnt/tmp/boot/map
compact compact
image = /boot/vmlinuz-2.2.13 image = /mnt/tmp/boot/vmlinuz-2.2.13
label = linux label = linux
append = ".........." append = ".........." *
root = /dev/hda1 root = /dev/hda1 *
other = /dev/hda2 other = /dev/hda2 *
label = win label = win
table=/dev/hda table=/dev/hda *
(*标记表示不要修改,/mnt/tmp/boot/bootmsg为文本文件,是系统引导时的提示.自己写一个?)
调用lilo命令,重新安装LILO。重起系统,就完了。记住,要卸载Linux,可以用DOS下的fdisk /mbr清除MBR中的LILO。 Good Luck!
情况二:
主要的问题是如何将Linux的引导记录写入bootsect.???文件,其实让Windows9x与NT和平共处也不容易。本人至今未能按照通常的方法,即先装9x后装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前可引导的硬盘分区的根目录(这里是Weindows9x)。拷贝软盘上的bootsect.lix文件。去除boot.ini的只读、隐藏属性。在最后添加c:\bootsect.lix="Go to Linux, the World of Freedom"。存盘退出,添加boot.ini的只读、隐藏属性。重新引导系统,再试试看!从NT的引导菜单启动Linux是不是感觉不错?
注意在对Linux内核的作任何修改后,都必须重作以上步骤,才能正确引导Linux系统。
情况三:
Linux还要装两个?好吧!我们还是可以试试。主要的问题还是如果多个Linux的LILO或根分区不能被BIOS找到,系统就会挂起!(这里假设BluePointLinux安装于第一个逻辑分区,在Linux下为/dev/hda5,RedHatLinux安装于第二个逻辑分区,在Linux下为/dev/hda6。)
解决方案:
既然“Linux的内核是个好东东:只要它在控制系统,就没什么不能找到的”,我们就同样的建个10M的分区。将两个Linux的引导文件多拷贝到此分区,通常是/boot下的一切,有可能还有/vmlinuz--内核文件,依Linux的发行版本而不同。建议将其分装入两个目录。假设为/bootBlurPoint和/bootRedHat。由于本人未曾同时安装过两个Linux系统,仅在网上教过其他人。(哈哈,这小子这么菜,还教人?哈哈哈!!!)这样提及是因为我不能确定lilo.conf中,install参数指定的启动文件和map参数指定的LILO
使用的映象文件的具体用途,及不同版本见的区别,随便挑一个。(还请高手不吝赐教!)Go on! 编辑
lilo.conf文件:
原始 修改后
boot = /dev/hda boot = /dev/hda1
install= /boot/boot.b install= /mnt/tmp/bootBluePoint/boot.b
timeout = 500 timeout = 500
prompt prompt
message = /boot/bootmsg message = /mnt/tmp/bootmsg
default = win default = win
vga = normal vga = normal *
read-only read-only *
map = /boot/map map = /mnt/tmp/bootBluePoint/map
compact compact
image = /boot/vmlinuz-2.2.13 image = /mnt/tmp/bootBluePoint/vmlinuz-2.2.13
label = linux label = BluePoint
append = ".........." append = ".........." *
root = /dev/hda1 root = /dev/hda5
...... image = /mnt/tmp/bootRedHat/vmlinuz
...... label = RedHat
append = ".........." *
root = /dev/hda6
other = /dev/hda2
label = win
table = /dev/hda
各位菜鸟大虾要自己试试,最好mail我,告诉我结果!因为贴帖子的兄弟们从未给我答复!建议两次安装时安装LILO到根分区,当LILO安装失败时,跳过。这样会留给你一个lilo.conf文件,以作修改。(另,如果你用Xteam的是XteamLinux1.0~2.0及Lindows或WinLinux或其他一切基于umsdos文件系统的Linux发行版本,你就不能使用我以上和以下的多数解决方案,可惜!)
情况四:
我就是这么干的!自以为好处是:
1.有一天干了Windows9x不用为无法设置Windows2000的引导程序。先装9x后装NT/2000,的结果是NT/2000的引导程序在Windows9x的分区里,你不能简单的格式化Windows9x的分区,否则修补它可不容易。
2.这样你可以选择用LILO多重引导系统,可以给它们加上“密码”!!!!多安全!当然防君子,不防小偷/高手。注意在/etc/lilo.conf中密码是不加密的,手动修改其权限是必要的。
(这里假设Linux安装于第一个逻辑分区,必须是某个逻辑分区,在Linux下为/dev/hda5,Windows9x安装于第三个主分区,在Linux下为/dev/hda3,WindowsNT/2000安装于第二个主分区,在Linux下为
/dev/hda2。)
解决方案:
使用Windows多重引导:
1.用PartitionMagic创建10M的ext2主分区,一个fat16的主分区。先安装WindowsNT/2000,记住加载smartdrv.exe后再安装WindowsNT/2000,否则会慢的让你想自杀,并且记住格式化为NTFS格式。(此分区在Linux中会成为/dev/hda3)
2.用PartitionMagic创建fat32的主分区,将它标记为可引导,安装Windows9x。如果不设置可引导标记,就不能安装。
3.创建扩展分区,在其中建立ext2格式的逻辑分区--/dev/dha5。其它分区随意了,可参考我的分区表。如同情况三一样拷贝Linux的引导文件,配置lilo.conf,只留下有关Linux的启动项目。
4.将Windows9x和Linux的引导扇区写成bootsect.???文件,把WindowsNT/2000的分区重新设置为可引导,再拷贝引导扇区文件至其的根目录下,编辑boot.ini文件,完成!
现在想删什么就删了。注意同前:在对Linux内核的作任何修改后,都必须重作以上步骤,才能正确引导Linux系统。Windows9x就不必了。
使用LILO多重引导:
由于基本同前,就拷贝了一点,别说我骗稿费啊!
1.用PartitionMagic创建10M的ext2主分区,一个fat16的主分区。先安装WindowsNT/2000,记住加载smartdrv.exe后再安装WindowsNT/2000,否则会慢的让你想自杀,并且记住格式化为NTFS格式。(此分区在Linux中会成为/dev/hda3)
2.用PartitionMagic创建fat32的主分区,将它标记为可引导,安装Windows9x。如果不设置可引导标记,就不能安装。
3.注意区别就在这里。创建扩展分区,在其中建立ext2格式的逻辑分区--/dev/dha5。其它分区随意了,可参考我的分区表。如同情况三一样拷贝Linux的引导文件,配置lilo.conf,将Windows们的系统分区加入other参数。如果需要可加上password,给每个系统加上密码。当然只要小虾们,成功进入你的爱机一次,多半你的密码就得换了。这密码防君子,不防小偷/高手。只要没人进入你的系统,应该无法破解。
现在想删什么就删了。注意同前:在对Linux内核的作任何修改后,都必须重建LILO,才能正确引导Linux系统。
作者再次警告!!!!所有对硬盘分区及操作系统的改动都存在危险,没有备份数据,没有把握不要尝试。一切后果自己负责,等你的数据都玩完了,可别说我没有提醒你!!!!!!小弟可是深有体
会......
注:本文写于两个月前,投稿,但未发表;由于有了GRUB这种更好的系统引导程序,本文不会有将来
了。也许会写一篇GRUB的文章,可惜,现在水平不够。诸位请不吝赐教!
Email:TermiC@etang.com
中国Linux论坛 版权所有
原作者:TermiC
来源:中国linux论坛