Chinaunix

标题: 双硬盘多系统引导深入探究(原创) [打印本页]

作者: mercuryknight    时间: 2003-06-26 17:25
标题: 双硬盘多系统引导深入探究(原创)
Linux和Windows多系统共存时,引导过程相对来说比较复杂。而且容易引起一些错误概念。比如经常看到有的网友这样问:“我要引导XXX Linux,应该用Lilo,Grub,还是NT OS Loader?”
其实常见的Linux引导途径,只有引导软盘,Lilo,Grub,和在MS-DOS环境下用Loadin.exe引导。而NT OS Loader是不能够引导Linux的。大家“所谓的”用NT OS Loader引导Linux时,中间都要通过Lilo或者Grub这一步。In another word,如果你的Linux安装时候就没有安装引导程序,而是打算一直用软盘引导的话,你也就无法用NT OS Loader去引导这个Linux。
用NT OS Loader引导Linux的过程应该是这样:NT OS Loader->;grub (or lilo) ->;Linux。
这个过程是通过如下几个步骤实现的:
1,        在MBR或某个分区的引导扇区上安装Grub或者Lilo,使其成功引导Linux。
2,        在Linux下用dd命令把被安装的Grub或者Lilo读出来并写在一个文件上,这个步骤相当于给Grub或者Lilo做了个备份,随后即使原来装Grub或者Lilo的地方被清除掉,也可以用留下来的这个文件借助NT OS Loader实现跟以前一模一样的引导过程。
3,        修改Boot.ini让NT OS Loader引导刚才读出来的Grub或者Lilo。

至于这个被NT OS Loader 引导起来的Grub能干些什么,完全看你自己的配置,可以通过修改Menu.lst文件让他引导任何受支持的系统或者另外的引导程序。你可以让他引导仅仅一个Linux,并把默认时间设置为0,从而造成NT OS Loader直接引导Linux的假象。也可以让他引导从Linux到Unix,BSD的N个系统,排出长长的一个系统列表。我甚至曾经让NT OS Loader 和 Grub两者之间互相循环引导。
如此看来,NT OS Loader和Grub是平起平坐的,他们之间互相可以引导,但对于系统的支持却是各有自家的本事。NT OS Loader离开了Grub就别想引导Linux/Unix/BSD;而Grub虽说很强,也不可能绕过NT OS Loader对MS的NT4/2000/XP/Server2003直接进行引导。
但是像MS-DOS,Windows9X/Me这样的系统概念就模糊了。说得通俗一点,这类微软的早期系统既可以被NT OS Loader直接引导,也可以被Grub直接引导。如果你机器上只有一个MS-DOS/9X/Me,而没有NT OS Loader时就装了Grub的话,Grub就会直接引导这个系统。而如果你装Grub时已经有NT OS Loader,那么Grub就会通过NT OS Loader来引导这个系统。甚至可以这样:硬盘1上的NT OS Loader ->; 硬盘1上的Grub ->; 硬盘2上的 Windows9X/Me/MS-DOS。(符号->;表示直接引导)

另外还有几点需要注意。
1,        Grub理论上可以引导任何相同或不同硬盘上的NT OS Loader,但反之,想用NT OS Loader引导不同硬盘上的Grub却不行。这里不同硬盘上的Grub是指这个Grub在被dd成文件之前安装在跟NT OS Loader不同的硬盘上。
2,        Grub和Grub之间可以直接互相引导(不过互相循环引导次数过多会内存溢出而死机,即使中间通过NT OS Loader来间接引导也不能避免,Grub对内存的要求似乎比NT OS Loader高),但NT OS Loader和NT OS Loader之间却不可以。只能通过Grub把两个NT OS Loader连起来。使之可以间接互相引导。而这样连起来的两个NT OS Loader即使互相循环引导次数再多也不会出现错误。
3,        同一台机器上的一个Linux可以被不同的N个Grub引导。但一个NT系统却不能被两个NT OS Loader引导。M$可能在后面做了什么,让NT核心的系统安装时候就被绑在了默认的NT OS Loader上(可以是跨硬盘的绑定)。安装一结束,你就只能用这个NT OS Loader来引导他。任何想从别的NT OS Loader引导这个NT系统的尝试,都会被一个找不到文件的错误拒之门外。
4,        硬盘1上的NT OS Loader ->; 硬盘1上的Grub ->; 硬盘2上的 MS-DOS。在用这种引导方式时,假如最后被引导的MS-DOS上装有Windows3.x,那么MS-DOS虽然会正常启动,但Windows3.x却会因提示无法找到文件而无法正常进入。解决办法是在硬盘2中装一个NT OS Loader。就会按如下过程顺利启动:
硬盘1上的NT OS Loader ->; 硬盘1上的Grub ->; 硬盘2上的 NT OS Loader ->; 硬盘2上的 MS-DOS ->; 进入Windows3.x。
    不过目前还在用Windows3.x的可能全国也没几个了。各位就当故事听吧。

最后,对于想让Windows和Linux在两块硬盘上并存的网友,给出下列引导建议:
首先,建议把所有的Windows放在一个硬盘,所有Linux放在另一个硬盘。如果不然,下列的某些建议可能无法实现。
1,        用Linux多余用Windows的类型
这类可用Grub作主引导程序,这样就不必在意每个引导程序安装的位置了。因为Grub是通吃所有硬盘的。
(1)        先把所有Windows装好。
(2)        再一个个的装Linux,把带有你想用的Grub版本的Linux放在最后安装。
(3)        安装最后一个Linux时就把Grub安装在Linux盘的MBR上。
这样开机后Grub菜单出来,你可以选择:
1、        选择Grub菜单中的任何一个Linux系统。
2、        进入NT OS Loader 菜单选择任何一个Windows系统。


2,        用Windows多余用Linux的类型
这类可用NT OS Loader作主引导程序。然而由于NT OS Loader不支持跨硬盘引导其他引导程序,Grub就必须装在Windows盘里。
(1)        分区时要在Windows盘里的最后多划出一个分区,分区大小在理论上有512字节就够了,实际上一般习惯分出几M(太小了也不支持)。格式化成FAT和ext均可。
(2)        之后就按照“1,”里的顺序安装所有系统。
(3)        在完成“1,”之后,进入Linux,进入Grub提示符,用setup (hdx,x) 把Grub安装在Windows盘后面新划出来的那个小分区里。
(4)        用dd命令把那个小分区的前512字节读出来存成文件。
(5)        把文件添加到NT OS Loader的启动选项中。
(6)        把Windows盘设置成主启动硬盘。
这样开机后NT OS Loader菜单出来,你可以选择:
1、选择NT OS Loader菜单中的任何一个Windows系统。
2、进入Grub 菜单选择任何一个Linux系统。


Grub是很灵活的软件,NT OS Loader也不笨。两者虽然互有不足,但如果配合起来使用,不管你有几个硬盘,几个系统,都可以设计出一个快洁完善的引导方案。

文中涉及到的一些具体操作,比如Linux下安装Grub,Linux下dd命令的详细用法,还有Grub、NT OS Loader的配置文件修改方法等等,论坛里到处都有详细操作的文章。我就不在各位大虾面前班门弄斧了。
作者: robotyan    时间: 2003-06-27 11:03
标题: 双硬盘多系统引导深入探究(原创)
,不错,好,值得一看!!
作者: dasen    时间: 2003-06-27 12:35
标题: 双硬盘多系统引导深入探究(原创)
收了!回去在我的机器上设置.
作者: bjchenxu    时间: 2003-06-27 12:43
标题: 双硬盘多系统引导深入探究(原创)
支持原创
作者: mapsunning    时间: 2003-06-28 11:30
标题: 双硬盘多系统引导深入探究(原创)
up
作者: RedmJ    时间: 2003-06-28 11:38
标题: 双硬盘多系统引导深入探究(原创)
up
作者: 轩辕砍刀    时间: 2003-06-28 11:45
标题: 双硬盘多系统引导深入探究(原创)
up
作者: love558    时间: 2003-06-30 00:18
标题: 双硬盘多系统引导深入探究(原创)
我什么办法收藏这一页吗?
作者: ailms    时间: 2003-06-30 08:54
标题: 双硬盘多系统引导深入探究(原创)
想问楼主一个问题,我装的是WINXP和LINUX,用OS LOADER引导
.在出现引导菜单时选择进入linux,出现grub选择菜单,再选进入winxp,又返回一开始的OS LOADER的画面,而不是直接进入XP,有什么办法可以直接进入吗(在OS LOADER 画面出现时不选择XP,而是选择GRUB的windowxp选项)
作者: lnx3000    时间: 2003-06-30 09:04
标题: 双硬盘多系统引导深入探究(原创)
原帖由 "ailms" 发表:
想问楼主一个问题,我装的是WINXP和LINUX,用OS LOADER引导
.在出现引导菜单时选择进入linux,出现grub选择菜单,再选进入winxp,又返回一开始的OS LOADER的画面,而不是直接进入XP,有什么办法可以直接进入吗(在OS LOADER..........
   

这是正常的啊?

在OS LOADER 画面出现时不选择XP,而是选择GRUB的windowxp选项

??看不懂
作者: SickWorm    时间: 2003-06-30 10:04
标题: 双硬盘多系统引导深入探究(原创)
“(1) 分区时要在Windows盘里的最后多划出一个分区,分区大小在理论上有512字节就够了,实际上一般习惯分出几M(太小了也不支持)。格式化成FAT和ext均可。
(2) 之后就按照“1,”里的顺序安装所有系统。
(3) 在完成“1,”之后,进入Linux,进入Grub提示符,用setup (hdx,x) 把Grub安装在Windows盘后面新划出来的那个小分区里。 ”


这里为什么要分出一个小分区,直接把grub装在linux的区里面,然后用dd把那512字节弄出来不行吗??
作者: ffaatt    时间: 2003-06-30 12:33
标题: 双硬盘多系统引导深入探究(原创)
强!
引导问题看似容易,研究这么透却不容易。
作者: mercuryknight    时间: 2003-06-30 14:02
标题: 双硬盘多系统引导深入探究(原创)
原帖由 "SickWorm" 发表:
“(1) 分区时要在Windows盘里的最后多划出一个分区,分区大小在理论上有512字节就够了,实际上一般习惯分出几M(太小了也不支持)。格式化成FAT和ext均可。
(2) 之后就按照“1,”里的顺序安装所有系统。
(3?.........



理论上应该可以,但我试过很多次用NT OS Loader引导不同硬盘上dd出来的Grub,没成功过。只好认为NT OS Loader只能引导相同硬盘上dd出来的Grub
作者: SickWorm    时间: 2003-07-01 11:21
标题: 双硬盘多系统引导深入探究(原创)
原帖由 "mercuryknight" 发表:



理论上应该可以,但我试过很多次用NT OS Loader引导不同硬盘上dd出来的Grub,没成功过。只好认为NT OS Loader只能引导相同硬盘上dd出来的Grub
   


pf,pf。
作者: jianjun    时间: 2003-09-04 08:59
标题: 双硬盘多系统引导深入探究(原创)
楼主的帖子确实不错,有理论,有实践,有可读性,有指导意义。
   支持原创!
作者: ohsnoopy    时间: 2004-03-09 10:40
标题: 双硬盘多系统引导深入探究(原创)
我的RH LINUX9.0是从软盘引导,请问如何从OS LOADER引导,我的MBR显示是已装好的三系统WIN2000,WINXP,WIN2003,请问具体如何操作?
作者: ohsnoopy    时间: 2004-03-09 12:50
标题: 双硬盘多系统引导深入探究(原创)
未成功!!!!!
BOOT.INI中添加了LINUX的启动项了,OS LOADER中显示的也有,但选择LINUX后就黑屏或者重启!!!!!!!
有的说BOOTLINUX.DAT,有的说BOOTSECT.LNX
简直晕死!!!我都尝试过不行,不知道他们怎么成功的?!!!!1
QQ 78482997

希望高手指教!
作者: jimke    时间: 2004-08-10 20:58
标题: 双硬盘多系统引导深入探究(原创)
我现在是两块硬盘,主盘上已经装好了windows 200,现在再从盘上安装REDHAT9,
装好后重启,把引导的GRUB装在从盘中,可正常选择进入两种系统.

但现在,我的从盘另有他用,拆下后,想恢复到原来的由主盘的WIN2000引导(现想只用WIN2000,装LINUX的硬盘格式化了),结果不能引导系统,提示GRUB HARD DISK ERROR
哪位高手能告诉怎么解决啊!谢谢
作者: sinboy2002    时间: 2004-10-11 18:11
标题: 双硬盘多系统引导深入探究(原创)
真是豁然开开朗.
作者: nickdony    时间: 2004-10-11 18:53
标题: 双硬盘多系统引导深入探究(原创)
好象有个问题一直不能让大家满意,也一直没有得到解决,windows不能作为从盘的系统被引导,好象是这样吧?
作者: jeffreyli    时间: 2004-10-11 20:11
标题: 双硬盘多系统引导深入探究(原创)
不错,,支持原创,,
作者: 流氓无产者    时间: 2004-10-11 20:31
标题: 双硬盘多系统引导深入探究(原创)
方法正确,但是根本原理有误,有误人子弟之嫌
作者: langtao    时间: 2004-10-11 20:55
标题: 双硬盘多系统引导深入探究(原创)
支持!
作者: blueeagle10    时间: 2004-10-11 21:19
标题: 双硬盘多系统引导深入探究(原创)
请问大虾,我现在安装redhat9时把grub装在redhat分区的引导区了,想用xp的引导程序来引导redhat,具体应怎样做呢?现在进不了redhat了,请帮助一下菜鸟,多谢了!!(我的是笔记本电脑,只有一个硬盘)
作者: 神之手    时间: 2004-10-11 21:32
标题: 双硬盘多系统引导深入探究(原创)
不错,还有吗?
作者: 飞天二狭    时间: 2004-10-11 23:55
标题: 双硬盘多系统引导深入探究(原创)
我也是这样做的,而且外置盘还是SCSI的,上面的功能完全可以实现,只是试着把x86 SOLARIS 9 也一同安装进来,并安装到外置盘上,结果糟糕透了,不但没有成功,结果把原来安装好的系统也给破坏了。请问能否将X86 的SOLARIS也加入到grub引导下呢?哪位做成功过呢?
作者: ocpmi    时间: 2005-05-05 04:20
标题: 双硬盘多系统引导深入探究(原创)
mark
作者: happy2005huan    时间: 2005-09-20 03:34
标题: 双硬盘多系统引导深入探究(原创)
看不懂
作者: phpman    时间: 2005-09-20 09:31
标题: 双硬盘多系统引导深入探究(原创)
我从来不用Windows引导Linux。
grub修复要简单的多。
作者: mercuryknight    时间: 2007-07-27 14:29
原帖由 流氓无产者 于 2004-10-11 20:31 发表
方法正确,但是根本原理有误,有误人子弟之嫌



呵呵,很多年的事了,还是要说一下。
当年写这个帖子的时候我还是个高二学生。
当时是因为看了很多老帖,都不能很好解决多硬盘多系统的引导问题。(当然以现在的软件易用性和相比那时更丰富的文档资源来说已经很好解决了)所以才动了念头把自己实验的一些情况总结起来给别人看。避免走一些弯路。
现在回头来看,确实有很多东西原理上阐述的不对。但以当年一个高中生,我也只能写成这样了。希望看帖的朋友只看看方法就行了。

[ 本帖最后由 mercuryknight 于 2007-7-27 14:31 编辑 ]
作者: ericrchen    时间: 2007-07-27 17:14
这样的帖子还是很值得仔细品读的




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2