|
溪流
初级用户
积分 111
发帖 2
注册 2004-1-1
状态 离线
|
『楼 主』:
能否实现非C:启动
比如说,把DOS系统放到D:去,实现双引导?
|
|
2004-1-1 00:00 |
|
|
mys
元老会员
积分 5170
发帖 1637
注册 2002-10-16 来自 广东佛山
状态 离线
|
『第
2 楼』:
可以用SPFDISK实现,不过实际上是利用隐藏分区的方法处理,最后仍是从C盘启动。如果你想双引导,将DOS或WIN98装在C盘,WIN2000/XP装在D盘好了。
|
我的网志
http://hzmys.blog.163.com/
我的网盘
firststep.qjwm.com
fsmys.ys168.com
ssmys.ys168.com
www.brsbox.com/fsmys
www.brsbox.com/ssmys
www.brsbox.com/ccdos
|
|
2004-1-1 00:00 |
|
|
溪流
初级用户
积分 111
发帖 2
注册 2004-1-1
状态 离线
|
『第
3 楼』:
倒过来——XP在C:,DOS/9x在D:就不行了?
|
|
2004-1-1 00:00 |
|
|
iceboy
银牌会员
积分 1681
发帖 512
注册 2003-8-2
状态 离线
|
『第
4 楼』:
理论上可以,实际上……我没有成功过
|
Somehow somewhere I've got to choose.
No matter if it is win or lose. |
|
2004-1-1 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
5 楼』:
用 grub 可以交换 BIOS 的硬盘号, 从而达到从第二块硬盘启动的目的.
详细内容请看 grub 的说明文档. 这里是指 GNU GRUB 的.
如果你不想下载 GNU GRUB, 也可以下载 grub for dos, 下载解压之后看看其中的 menu.lst 文件, 这个文件中有一些命令行是用来从第二块或者第三块硬盘启动 win98 的.
如果你只有一块硬盘, (D: 盘是逻辑分区), 那么不能使用刚才说的办法. 这时候, 如果你只是想启动 D: 盘上的 DOS, 还有办法, 就是用 grub for dos 0.2.0 的硬盘仿真功能, 将 D: 盘仿真为 C: 盘. 如果用这种办法启动 D: 盘上的 windows, 恐怕会有危险(因此尽量不要启动 windows).
grub for dos 0.2.0 目前有测试版可以下载. 正式版大约在两个月之内推出.
grub for dos 0.2.0 的信息在这里可以找到:
http://www.linuxeden.com/edu/doctext.php?docid=3006
|
因为我们亲手创建,这个世界更加美丽。 |
|
2004-1-2 00:00 |
|
|
xiaojun
银牌会员
积分 2202
发帖 499
注册 2003-6-12
状态 离线
|
『第
6 楼』:
我用Grubt11启动hda6失败,在win98下,此逻辑分区是E(dos软件,sys过),我用map (hd0,6)+1 (hd0) 再--hook,没有任何错误提示,chainloader (hd0,0)+1 就提示了:Error 18 Selected cylincler exceeds maximum supported by bios ;是哪错呢?我只1个主分区,Hd0,6即E没错啊,是不是应该Chainloader (hd0,5)+1才对呢?不过,肯定也不对,因为我试过,不点大哥帮忙看看哪儿错了。。。谢谢!
还有,我map --unhook后再重新chainloader原来的Hd0,到boot就死得干干脆了。。。
[此贴子已经被作者于2004-1-2 23:49:17编辑过]
|
一年四季,枫叶红了又红;人生四季,失去的,还能再来吗?—— ! |
|
2004-1-2 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
7 楼』:
xiaojun 兄, 实在抱歉,grub for dos 0.2.0 的说明文档写得不够细致、全面。
1。 grub for dos 0.2.0 的硬盘仿真功能可以用来仿真扩展分区的“容器”,不能仿真这个“容器”中具体的某个“扩展分区”。我现在试着把这个概念解释清楚,但确实不太容易解释清楚。为什么呢?因为在 DOS、Windows 中,“扩展分区”是一个很含糊的概念,至少我自己觉得很含糊。当我们用 DOS 的 FDISK 建立扩展分区的时候,我们首先建立的是一个扩展分区的框架(或者姑且把它叫做扩展分区的“容器”),并非直接建立扩展分区本身。这个“容器”含有一个分区表,因此我们才有可能把它仿真为一个虚拟的硬盘,否则,如果像普通的分区那样没有分区表,那么只能把它仿真为一个虚拟软盘(因为软盘的映象和分区的映象是一样的,都是以 DOS 引导记录开始的,含有 BPB 表)。
例如,我们通常在硬盘上要建立一个主分区 (hd0,0)【也就是逻辑驱动器 C: 盘】,然后再建立一个叫做 (hd0,1) 的“容器”。在这个“容器”中,再建立具体的某个扩展分区【例如 (hd0,4),也就是逻辑驱动器 D: 盘】。只有 (hd0,1) 可以用来仿真一个虚拟硬盘。(hd0,0) 以及 (hd0,4) 都只能用来仿真一个软盘。
注意这里 (hd0,1) 和 硬盘主分区表 (hd0) 是类似的,相当于一个完整的硬盘结构,它可以仿真为硬盘。而具体的分区 (hd0,0) 和 (hd0,4) 等都不具有分区表结构,它们只有 DOS 的 BPB 结构,因而不能仿真为硬盘。
上面说的是用现成的分区来仿真软盘,以及用现成的“容器”来仿真硬盘。当采用 img 文件的时候都不再有如上所说的这些限制了。就是说,当采用硬盘上的 img 文件来仿真一个硬盘或者仿真一个软盘的时候,没有上面所说的这些限制。因为您建立这个 img 文件的时候,就已经在其中放置了分区表【因为您仿真的是硬盘;对于软盘映象,当然是没有分区表的了】。
用现成的分区以及“容器”,有两个好处:其一,不需要您另外建立一个 img 文件;其二,您在不仿真的时候照样可以访问这些分区(以及“容器”)中的文件。
相应地,用 img 文件来仿真,就有两个缺点:其一,需要在硬盘上建立一个连续的 img 文件;其二,当您不再使用仿真的时候,该 img 映象中的文件不能被 DOS/Win98 直接访问,必须借助于 WinImage 之类的工具软件才行。
以上试图解释这里遇到的一些技术上的问题,但我不知道是否说得够清楚。
2。下面再解释一下您所碰到的第二个问题:
Linux 的 hda,在 grub 中是 (hd0)
Linux 的 hdb,在 grub 中是 (hd1)
Linux 的 hdc,在 grub 中是 (hd2)
Linux 的 hdd,在 grub 中是 (hd3)
Linux 的 hda1,在 grub 中是 (hd0,0)
Linux 的 hda2,在 grub 中是 (hd0,1)
Linux 的 hda3,在 grub 中是 (hd0,2)
Linux 的 hda4,在 grub 中是 (hd0,3)
Linux 的 hda5,在 grub 中是 (hd0,4)
Linux 的 hda6,在 grub 中是 (hd0,5)
Linux 的 hdb1,在 grub 中是 (hd1,0)
依此类推。
注意,(hd0,0),(hd0,1),(hd0,2),(hd0,3) 这四个是硬盘 hda 【也即 grub 的 (hd0) 】上的主分区。其中 (hd0,1) 通常是一个“容器”,从 (hd0,4) , (hd0,5) 等等以后的分区,都被包括在这个“容器”中了。
hda【也即 grub 的 (hd0) 】本身也是一个“容器”,它容纳了(hd0,0),(hd0,1),(hd0,2),(hd0,3) 这四个分区表项。
不能够把硬盘 hda 仿真为软盘,因为硬盘 hda 含有分区表,而软盘没有分区表。同样的道理,不能把 (hd0,1) 这个容器仿真为软盘,只能把它仿真为一个硬盘。
不能够把 (hd0,0), (hd0,4), (hd0,5) 等等这些分区仿真为硬盘,因为它们没有分区表;只能把它们仿真为软盘。
因此,您的 hda5 或者 hda6 是注定只能仿真为软盘的。要想仿真硬盘,必须使用 (hd0,1) 或者说就是 Linux 下的 hda2。
DOS/Win98 一般把 (hd0,1) 作为“容器”了。但一些别的公司的软件或许会把“容器”设置成别的,例如 (hd0,0), (hd0,2), (hd0,3)。
只有主分区才能作为“容器”,因此,在硬盘 (hd0) 上可以充当“容器”的分区表项只有以下四种可能:
(hd0,0)
(hd0,1)
(hd0,2)
(hd0,3)
类似地,在硬盘 (hd1) 上可以充当“容器”的分区表项也只有以下四种可能:
(hd1,0)
(hd1,1)
(hd1,2)
(hd1,3)
以上这些看起来很复杂,但也不是太复杂。希望能协助您解决所碰到的问题。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2004-1-3 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
8 楼』:
Quote: | 以下是引用xiaojun在2004-1-2 23:39:44的发言:
还有,我map --unhook后再重新chainloader原来的 hd0,到 boot 就死得干干脆了。。。 |
|
对不起,漏掉了您的另一个问题。
map --unhook 命令,它所起的作用仅仅是在 grub 命令行不再使用仿真了,当你 boot 之后,grub 又要自动 hook 上,所以,使用 map --unhook 是不能达到您的目的的【grub for dos 的说明文档写得不好,再次表示遗憾】。
要想使得 grub 不再把 int13 进行 hook,只有一个办法,就是解除所有的仿真命令。
您用 map --status 可以看到所有的仿真项目。当它列不出项目的时候,就表示已经解除了所有的仿真命令。
如果您仿真了软盘 (fd0),就用
map (fd0) (fd0)
来解除 (fd0) 的仿真。当把自己仿真为自己的时候,系统就自动撤销这一个磁盘的仿真。类似地,用
map (hd0) (hd0)
map (hd1) (hd1)
分别解除 (hd0) 和 (hd1) 的仿真。
仿真磁盘全部解除之后,再用 boot 命令就不会有仿真了。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2004-1-3 00:00 |
|
|
xiaojun
银牌会员
积分 2202
发帖 499
注册 2003-6-12
状态 离线
|
『第
9 楼』:
不点大哥您太客气,就是说当我MAP了(hd0,x)后,要解除用(hd0,x)仿真的hd0,不能单纯--unhook,必须map (hd0,x) (hd0),而且因为我是只有一个主分区hd0,0,能仿真硬盘的hd0,1和hd0,2与hd0,3没有,因此我的hd0,6是扩展逻辑分区,只能仿真软盘而不能仿真硬盘,这样理解对吗?谢谢!
也就是说:能仿真硬盘的是那4个主分区中的3个,1,2,3对吧?
[此贴子已经被作者于2004-1-3 21:20:06编辑过]
|
一年四季,枫叶红了又红;人生四季,失去的,还能再来吗?—— ! |
|
2004-1-3 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
10 楼』:
Quote: | 以下是引用xiaojun在2004-1-3 21:14:48的发言:
不点大哥您太客气,就是说当我MAP了(hd0,x)后,要解除用(hd0,x)仿真的hd0,不能单纯--unhook,必须map (hd0,x) (hd0),而且因为我是只有一个主分区hd0,0,能仿真硬盘的hd0,1和hd0,2与hd0,3没有,因此我的hd0,6是扩展逻辑分区,只能仿真软盘而不能仿真硬盘,这样理解对吗?谢谢!
也就是说:能仿真硬盘的是那4个主分区中的3个,1,2,3对吧?
[此贴子已经被作者于2004-1-3 21:20:06编辑过] |
|
这两天出远门了, 没能来这里.
您的原话:
------------------
当我MAP了(hd0,x)后,要解除用(hd0,x)仿真的hd0,不能单纯--unhook,必须map (hd0,x) (hd0)
------------------
稍微有点差错, 后半句应当是 map (hd0) (hd0) 或者也可能应当是 map (hd1) (hd1), 视具体仿真了那个硬盘而定.
其实前半句也有差错. "当我MAP了(hd0,x)后" 是不完整的, 应当是"MAP了(hd0,x)为(hd0)后" 或者 "MAP了(hd0,x)为(hd1)后", 这样才算完整. 对于前者, 解除 map 的命令是 map (hd0) (hd0), 而对于后者, 解除 map 的命令是 map (hd1) (hd1)
您的原话:
------------------
因为我是只有一个主分区hd0,0,能仿真硬盘的hd0,1和hd0,2与hd0,3没有,因此我的hd0,6是扩展逻辑分区,只能仿真软盘而不能仿真硬盘,这样理解对吗?谢谢!
也就是说:能仿真硬盘的是那4个主分区中的3个,1,2,3对吧?
------------------
以下假定您的分区工具只有微软的 Fdisk, 没有别的第三方工具.
因为您已经有了 (hd0,6) 扩展逻辑分区, 所以您肯定还有一个(hd0,1)作为"容器",如果不是(hd0,1),那么就应当是 (hd0,2) 或者(hd0,3)了.
也就是说, 只要您有一个 (hd0,n) 的分区, 此处 n > 3, 那么就一定存在一个 (hd0,m) 的"容器", 此处 m = 0, 1, 2, 3 , 一般来说, m=1, 也就是说, hda2 就是那个"容器".
对于 grub for dos 0.2.0 来说, 您确实可以用 (hd0,1)+1 来仿真一个硬盘, 不过, 只有 (hd0,4) 可以成为仿真之后的 C: 盘.
进一步解释, 在 (hd0,1) 这个"容器"中, 只有 (hd0,4) 可以访问, 而其他的 (hd0,x) 都不能访问, 此处 x > 4
注意 (hd0,4) 就是 hda5, 也即您的逻辑 D: 盘. 如果把 DOS 放在 E: F:等盘上, 这样是不能成功的. DOS 应当放在 D: 盘也即 (hd0,4) 上, 然后用
map (hd0,1)+1 (hd0)
map --hook
chainloader (hd0,0)+1
boot
就可以启动您的 D: 盘上的 dos 了, 当然, 经过这个仿真之后, 此时您的 D: 盘已经变成 C: 盘了.
您的 E: F: 等盘在这个仿真之下是不可访问的, 现在不能详细解释, 以后有机会的话, 再对此进行解释.
==============
另外, 楼主的老兄所提出的问题是很有意义的. 他的问题不是要我们用仿真的办法, 而是直接从 D: E: 等盘启动 DOS.
我想, 这个应当也可以实现的, 用 FreeDOS 这类开源软件, 再加上必要的修改, 应当是可以的.
即便是微软的 dos, 经过 Hack 修改之后, 应当也可以(当然了, 这得有人去做才行).
|
因为我们亲手创建,这个世界更加美丽。 |
|
2004-1-5 00:00 |
|
|
xiaojun
银牌会员
积分 2202
发帖 499
注册 2003-6-12
状态 离线
|
『第
11 楼』:
呵呵,不点大哥原谅兄弟太懒了,能省则省,能少打就少打字,改正。。。!兄弟实在愚笨,再此谅解。。。:) 就是说只有主分区之后的第1个逻辑可以仿硬盘,其它只能软盘,对吗? 而解除就是自己仿自己,并且仿真硬盘之后的后面分区就不能访问了。
正确与否,都要感谢版主耐心帮助,谢谢。。。鞠躬。。。! :)
|
一年四季,枫叶红了又红;人生四季,失去的,还能再来吗?—— ! |
|
2004-1-5 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
12 楼』:
我也得感谢您呀! 您前几次的提问, 使我又发现了一些问题. 我想, 也许那些逻辑分区是可以有办法仿真为硬盘的(当然了, 现在的 grub_t11 不支持把它们仿真成硬盘). 下一个版本有可能增加这个功能.
是的, 目前只有主分区之后的第一个逻辑分区可以仿真为硬盘, 其他逻辑分区只能仿真为软盘.
解除仿真就是自己仿真自己.
仿真硬盘之后, 其余的逻辑分区被禁止了.
|
因为我们亲手创建,这个世界更加美丽。 |
|
2004-1-6 00:00 |
|
|
dos时代菜鸟
初级用户
积分 672
发帖 216
注册 2003-6-12
状态 离线
|
『第
13 楼』:
现在大部分引导系统的过程都是 bios---mbr--硬盘第一分区的引导记录
大部分多系统引导程序都是通过修改mbr的方式完成其功能的,我想你的问题也应该是如此解决。因为第一bios不易修改,第二,硬盘第一分区的引导记录与操作系统密切相关。
唯一可以做的就是修改mbr让其在计算机启动到操作系统前将操作系统的引导指向其他分区。
|
我是女孩,我怕谁? |
|
2004-1-7 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
14 楼』:
dos时代菜鸟兄说的很好. 我来补充一点.
有了 GRUB 之后, MBR 的问题不算很严重了. GRUB 就可以在计算机启动到操作系统前将操作系统的引导指向其他分区。因此, GRUB 就是 dos时代菜鸟 兄所说的东东之一.
现在问题的焦点集中在"分区引导记录"以及以后的引导过程中, 或者说, 就是 DOS 引导记录以及之后的引导过程.
DOS 引导记录很短, 只有一个扇区(win98 好像有三个引导扇区), 应当很容易检查修改的. 但 MS-DOS 的 IO.sys 文件很长, 不容易修改, 这是一个难点.
如果用 FreeDOS, 恐怕要容易一些.
|
因为我们亲手创建,这个世界更加美丽。 |
|
2004-1-8 00:00 |
|
|
Wengier
系统支持
“新DOS时代”站长
积分 27734
发帖 10521
注册 2002-10-9
状态 离线
|
『第
15 楼』:
Win98有三个引导扇区?没有吧。Win98只能从DOS引导,而这个DOS也是只有一个引导记录(占用一个扇区的)。
|
Wengier - 新DOS时代
欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/
E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)
|
|
2004-1-8 00:00 |
|
|