Linux教程Linux
首页
基础知识
Linux业界
Linux系统
Linux人物
Linux文化
Linux资讯
Linux综合
当前位置:
Linux教程
-
Linux
- 如何实现多系统引导
如何实现多系统引导
OSLoader 实现多系统方案Ver1.0
现今有许多系统引导程序,例如bootstart,bootselect,OS bootmanager...当然少不了著名的System com-mander 。但是这些程序有的要占用一个主引导区,有的每次开机的时 候都要写一次MBR,总之使用虽然挺方便但是很容易被一些杀毒软件认为MBR有病毒(我曾 经使用SC4.0后用KV300杀毒,结果KV300“发现”MBR有病毒,杀掉后SC4就有问题)。
而且每次开机都写一遍mbr,自己心里总觉得有点不舒服。于是希望使用一种安全又没有 上述软件缺点的多系统引导程序,以满足我既希望使用MS的系统,又想尝试Unix的稳定和 强大的愿望。
微软的Win NT 本身就附带了一个很好的多系统引导程序--OS Loader。
1.使用OS Loader的好处
它不单独占用一个主区,而且每次启动时不需要重写MBr,增加启动的item也很方便。
因此我选择了它。但是它有个比较大的毛病--当新安装了其他类型的系统,它是不能够
检测得到,而且也不会自动增加相应的item .飧鑫侍馕彝ü慰妓厩寤狟BS上面的方法结合个人的实践已经得到了比较满意
的解决。可以实现MS
OS+Linux+BSD+Unix多启动。如果要增加其他类型的系统的话,也相当容易。
2.如何安装OS Loader实现多启动
首先你不需要真正地安装Winnt 4.0/5.0,你现在需要的是只是OSLoader这能进行多引
导的部分。方法如下:
在windows下的命令行提示符下,假设你的光驱是I:(我的光驱就是I:)。可以按照下面的
做法去做(#号是注释)
\" md c:\\ntboot #建立一个专门的目录
md c:\\ntboot\\system32 #建立放置ntoskrnl.exe的目录
md c:\\ntboot\\winnt #放置winnt.exe和dosnet.inf的目录
copy I:\\i386\\winnt.exe c:\\ntboot\\winnt
copy I:\\i386\\dosnet.inf c:\\ntboot\\winnt
copy I:\\i386\\ntldr c:\\
expand I:\\i386\\ntoskrnl.ex_ c:\\ntboot\\system32\\ntoskrnl.exe #解压缩NT的核心
copy I:\\i386\\bootfont.* c:\\ #拷贝文字文件以便在开机是可以显示中文
\"
你或者将上面的命令行写成批处理文件来自动完成。复制好后,退到纯dos7下,运行lock
命令,要不然安装OS Loader的时候一定会报错而当机。接着运行 \" c:\\ntboot\\winnt\\winnt.exe /b\" 。随后它会报错,不理会它。按F3退出。这时候OS Loader已经将MBR重些了一次。下一次启动的时候就会出现OS Loader的启动画面。不过你还得自己手动改C:\\boot.ini的内容以适合你的要求。
3.哪些文件是必须的
要使用OS Loader,必须的文件只有4个: ntldr、dosnet.inf、winnt.exe、ntoskrnl.exe。在上面安装的过程中可以看得很清楚,总共才不到1MB。如果你嫌麻烦,可以到我的主页上下载安装文件(是我制作好的标准安装程序)。另外,你如果使用的是NT 4.0中文版,那么你可以将bootfont.bin文件也拷贝到c:\\,这样启动菜单就可以显示中文。
4.如何使用
一般在第一次使用时,先退到dos下,进入ntboot\\winnt目录,不过注意在执行winnt.exe之前必须对分区进行解锁,也就是键入“lock”命令,否则一运行winnt.exe就会导致当机。Lock完成以后,键入\"winnt/b\",安装程序会报错,无须理会它,按f3推出即可。OS Loader已经重写了MBR,并且可以引导你的操作系统了。不过它只能够识别到Dos6.22或者Windows(我估计是通过检查c盘的io.sys,command.com,msdos.sys 等文件来识别的)。要想引导其他类型的系统还要费些工夫。
5.多引导的原理
根据水木清华BBS上面的相关文章,结合我自己的实际经验和理解,我认为0OS Loader的原理是:把来自其它操作系统的启动扇区信息变成一个文件,大小一般是512字节,在启动OS Loader 的时候, 它读入这文件并启动选择的操作系统,也就是说,这个系统或是不同模式的Windows NT,或是任何其它类型的操作系统,例如Linux、FreeBSD。
根据以上原理,我们可以知道要引导多系统的话,关键是如何获取相应的启动扇区前512字节的启动信息。一般对于Linux等类Unix系统,可以用dd 命令来获取。而对于Windows/Dos/Nt,一般没有类似dd这类命令。如果是想获取不是c盘的启动信息,可能要进入Linux等系统下面,用dd命令来获取。
6.如何引导其它类型的系统的实例
a.Linux 系列
我的方法是用PQmagic4.0建立一个Linux ext2主分区并激活为活动分区,然后建立一个Swap分区。重新启动后用RedHat 的安装光盘来启动,正常安装Linux。注意:在选取安装LILO在MBR还是它所在的主分区的时候,一定要选安装在Linux分区上!否则LILO将会代替OS Loader。
安装结束后,进入Linux的命令行,然后先将C盘挂上。方法如下:
#mkdir /mnt/c #建立一个c文件夹,C盘准备挂在c上
#mount -t vfat /dev/hda1 /mnt/c #将C盘挂在c上 ,不过是否hda1则要看你的c盘
是不是第一个主分区
#如果是第二个主分区就是hda2,如此类推
然后,确定你的Linux分区(指Ext2分区)是那个设备,例如hda2。如果你不知道,可
以键入\" mount\"看看就可以了。弄清楚后,假设你的Linux 分区是hda2 ,在命令行下输入:
#dd if= /dev/hda2 of=/mnt/ntboot.lnx bs=512 count=1
对以上命令我想解释一下,它的大致意思是: dd if= Linux分区的盘号(或者对应的设备) of=启动扇区文件存放的路径 bs=对应扇区前?字节 count=1 。在本例中Linux分区的盘号是/dev目录下的hda2 ,将启动扇区前512字节存成名称为ntboot.lnx,在/mnt目录下的文件。
然后输入:
#cp /mnt/ntboot.* /mnt/c
把扇区文件拷贝到C盘下面。这样获取启动扇区前512字节信息的任务就完成了。Reboot
后在进入C盘,再用回Pqmagic将C盘激活成活动分区,并且在c:\\boot.ini里面添加一下信息:
\" c:\\ntboot.lnx = \"RedHat Linux 6.0 \" \" 注意它的格式,它是增加在[Operating System]下面的。
B.FreeBSD 系列
在水木清华的BBS上面,关于引导FreeBSD的方法大致是做一张Linux的引导盘,含有LILO的。然后用软盘上的LILO启动FreeBSD,获取软盘上的扇区文件才能正常引导等等(由于一时间找不到相关资料,所以这些只是凭印象的记忆,可能有误)。而根据上面的原理,我认为完全可以仿照获取Linux启动扇区的方法来获取BSD启动扇区信息。只是要小心分辨到底在BSD下面那个是它的引导分区。
具体做法是:
正常安装FreeBSD,在选取将引导程序安装的位置和方式的时候,注意一定不要选安装在MBR,选第三项。目的也是和上面的一样,让MBR由OS Loader来占有。
重新启动的时候进入BSD(如果在安装FreeBSD的时候你没有将它激活为活动分区的话,你只能通过软盘启动FreeBSD了),也是使用dd命令。不过相对于Linux对于硬盘命名而言,FreeBSD不是用had或者hdb等命名方法。
它用wds0,wds1等命名。在本例中FreeBSD的分区是wds03。先将c盘挂上,然后所以输入:
#dd if =/dev/wds03 of=/mnt/ntboot.bsd bs=512 count=1
#cp /mnt/ntboot.* /mnt/c
最后Reboot,进入c盘,用Pqmagic将C盘重新激活成活动的,并且在boot.ini中增加相
应的item即可。可以说安装FreeBSD并且实现多引导并不象水木清华BBS上讲的那么复杂,不过也许是因为我使用的FreeBSD版本较高,以及我是在FreeBSD下获取启动扇区的原因吧。
7.关于使用OS Loader的一些FAQ
a.如果想引导Dos6.22如何做?
可以这样做,做一张Dos6.22启动盘备用,另外先备份c:\\bootsect.dos为ntboot.w98。然后在进入windows之前按F8,进入第七项。启动硬盘上的Dos6.22这是c盘上的windows的dos7的io.sys等文件都会变成了后缀是.w40的文件了。这是重新启动,用刚才的软盘启动。然后在A:下sys c:。进入C盘的ntboot\\winnt目录,运行\"winnt/b\",这时候生成的c:\\bootsect.dos就是Dos6.22的启动扇区文件(刚才的ntboot.w98就是Win98的启动扇区文件)。同样将c:\\bootsect.dos 备份成ntboot.dos。然后在boot.ini中添加相应的item。
B.怎样修改默认的启动选项
编辑c:\\boot.ini,注意在[Boot Loader]下面有一个Default=?的行,修改?成为你希望作为默认系统所对应的启动扇区文件即可。例如我改成:Default= c:\\ntboot.lnx ,对应就是启动时默认进入Linux。
C.对于大硬盘如何解决多系统的安装
这是个挺麻烦的问题,一般对于>1024柱面,采用LBA模式的硬盘是不能够将Linux 或者FreeBSD等系统安装在超过8.4GB之后的。因为由于这个限制使LILO或者Boot Easy失效或安装失败。一般尽可能将要启动的系统安装在<1024柱面的空间。详细的解决方法可以参考我另外一篇文章《10.1G硬盘安装多系统手记》。
8.后记
通过以上方法,我已经成功地安装了Windows9x/NT /dos6.22 ,Linux,FreeBSD等系,Unix也尝试过,不过由于Linux等也和Unix差不多,所以没有长期使用Unix。在Win95/98, Win NT4.0/5.0 中英文版,Dos6.22, Red-Hat Linux 5.0/5.1/5.2/6.0,FreeBSD 2.2.6/3.0/3.2上通过。现在给出我一直使用的boot.ini内容给各位参考#这个文件很简单,但是包含了三类系统。尽管BSD和Linux都是类Unix,但是还是不同。
[Boot Loader]
Timeout=30
Default=C:\\
[Operating Systems]
c:\\ntboot.lnx = \"RedHat Linux release-6.0 \"
c:\\ntboot.bsd = \"FreeBSD stable ver 2.2.6 \"
C:\\ = \"MS Windows 98 4.10--1998\"
对于最庞大的多系统引导文件可以如下:
[Boot Loader]
Timeout=30
Default=C:\\
[Operating Systems]
multi(0)disk(0)rdisk(0)partition(1)\\WINNT=\"Windows NT 中文工作站4.00\"
multi(0)disk(0)rdisk(0)partition(1)\\WINNT=\"Windows NT 中文工作站4.00 [安全模式
]\" /basevideo /sos
multi(0)disk(0)rdisk(0)partition(2)\\WINNT=\"Windows 2000 专业版\"
multi(0)disk(0)rdisk(0)partition(2)\\WINNT=\"Windows 2000 专业版 [安全模式]\"
/basevideo /sos
C:\\ =\"主引导区记录\"
C:\\ntboot.w98=\"Microsoft Windows 98\"
C:\\ntboot.dos=\"MS-DOS 6.22\" /Win95DOS
C:\\ntboot.bsd=\"Free BSD 2.2.6\"
C:\\ntboot.rh6=\"RedHat Linux 6.0\"
C:\\ntboot.s35=\"Slackware Linux 3.4\"
总共10个item,屏幕几乎都被占满了,也真够吓人的。我想即使是要求很高的用户也会
对OS Loader满意吧。因为System Commander能做的它也基本上能做,关键是不会去抢MBR,不用次次都擦写MBR。如果配合NT 中文版的OS Loader V4.00,那么就可以在启动菜单显示中文,这可是其它的引导软件没有的优点啊!
关于使用NT OS Loader来实现多系统引导的原理、方法和实战到这里就结束了。至于安装多少个系统,有没有必要使用它,这就看个人需要了。
这篇文章是参考水木清华BBS上面的文章并且结合自己的想法和实践经验写的,存在错误也是难免的,希望各位能够对我的文章指点指点。欢迎各位朋友和我交流,我的E_mail是
[email protected]
。
发布人:netbull 来自:Linux一千零一夜
Linux环境下无盘工作站的架设和实现
PGP 简介
UNIX系统操作入门篇(1)
UNIX 萤幕导向程式的发展利器 - curses (二)
Linux环境下架设proxy(2)
用LILO轻松实现多系统引导
中小企业服务器配置方案 前言
Linux安全从内核做起
一个SYN攻击的代码分析
Linux 使用技巧33条
Linux高手是怎样“练”成的
socks5的安装与使用
防火墙技术及其在LINUX下的实现
socks5介绍
Linux做一个功能完备的路由器
站点导航
Linux教程
Php
Linux
非技术类
指令大全
Shell
安装启动
Xwindow
Kde
Gnome
输入法类
美化汉化
网络配置
存储备份
杂项工具
编程技术
网络安全
内核技术
速度优化
Apache
Email
Ftp服务
Cvs服务
代理服务
Samba
域名服务
网络过滤
其他服务
Nfs
Oracle
Dhcp
Mysql
Ldap
RedHat
赞助商链接