无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 5118|回复: 8
打印 上一主题 下一主题

grub4dos的(24)设备是?

[复制链接]
跳转到指定楼层
1#
发表于 2010-10-4 13:06:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在chenall菜单中有个:
map --mem ()/cspe/kernel/grub.mod (24) && command --set-path=(24)/

这个(24)是什么设备?还是内存的某个位置?
2#
发表于 2010-10-4 14:24:25 | 只看该作者
(24)应该是(fd24)...
回复

使用道具 举报

3#
发表于 2010-10-4 14:53:49 | 只看该作者
24即(fd24),虚拟软盘镜像,只要这个设备不被占用就可以随便使用。
如(fd33)即0x21,代表PXE设备号;(fd35)即0x23,代表UD设备号。
虚拟软盘、硬盘、光盘等参见GRUB4SOS说明。
回复

使用道具 举报

4#
 楼主| 发表于 2010-10-4 17:15:49 | 只看该作者
哦,明白了,谢谢,主要是前面fd省略了没看明白。。。
回复

使用道具 举报

5#
 楼主| 发表于 2010-10-5 13:16:02 | 只看该作者
======软驱=======硬盘======虚拟光驱===========
          [0x0-0x7F]     [0x80-0x9F]      [0xA0-0xFF]
别名:  (0)-(127)      (128)-(159)       (160)-(255)
别名:(fd0)-(fd127)  (hd0)-(hd31)   (hd32)-(hd127)

物理光驱:(cd), 当cdrom --init 后(cd)=(cd0), 其它的(cd1),(cd2)...
PXE设备 :(0x21)=(fd33)
UD设备  :(0x23)=(fd35)
rd设备    : 默认(rd)=(0x7F)=(fd127)
md设备  :(0xFFFF)

[ 本帖最后由 yjfok961 于 2010-10-5 13:17 编辑 ]
回复

使用道具 举报

6#
发表于 2010-10-5 14:28:18 | 只看该作者
有些说法还是不那么准确的。

光驱 (cd) 是 BIOS 所提供的。它的号码究竟是多少,那可不一定。有的 BIOS 把它设置成 0x9F(也就是 159),有的把它设置成 0xE0,还有的把它设置成 0xFF。总之,它可能是 0x80 到 0xFF 之间的任何一个数值,就看 BIOS 乐意怎么设置了。当 grub 启动时,要探测 (cd) 的值。探测出来以后,你就可以用 (cd) 来访问 BIOS 的光盘设备了。只有当电脑是从一个 no-emulation 模式的光盘盘片(或者等价的 no-emulation 模式的 USB-CDROM 光盘)启动的时候,你才能保证 BIOS 会为光驱分配一个 (cd) 盘符。在其它情况下(例如硬盘、软盘启动方式下),你无法保证这一点的。

而 (cd0) (cd1) ... 都是 cdrom --init 创建的。但这不是虚拟光驱,而是真实光驱。(cd0) 有可能和 (cd) 代表同一个光驱,但也有可能代表不同的光驱。需要说明,cdrom --init 的成功率并不高。大约有一半成功,一半失败。

正如刚才所说,(cd) 这个设备总是可以保证存在的,只要你是用 no-emulation 的光盘来启动电脑的。只有当你不是用 no-emulation 模式的光盘来启动电脑时,你才需要用到 cdrom --init 。

由于 (cd) 的号码不固定,所以,(cd0) (cd1) ... 的号码也无法固定。但是,能够保证 (cd0) (cd1) ... 不与 (cd) 的号码一样。在确定了 (cd) 的号码之后,(cd0) (cd1) ... 的号码也就随之确定了。当你运行 cdrom --init 之后,就把 (cd0) 指派给了找到的第一个光驱,把 (cd1) 指派给第二个光驱,等等。

rd设备的号码也是不固定的。这是可以随意设置的,可以由 map --ram-drive=X 来设置。默认时是 0x7F,但如果你是在 Linux 下用 kexec 和 grub.exe 启动了一个硬盘映像(initrd),那么进入 grub4dos 之后,rd 就是 0xFE 了,因为硬盘要大于 0x80,不能是 0x7F 了。

还有一种比较少见的情况,那就是,一个具有 “精神分裂症” 的磁盘设备。在 grub4dos 中,称它为 BIF 设备(bifid,二分的,分叉的)。这样的设备,很奇特。当你用 CHS 模式的 BIOS 接口来访问它的时候,它可能是软盘,扇区大小是 512 字节。但是,当你用 LBA(EBIOS)来访问这个磁盘的时候,它却是一个光驱,扇区大小是 2048 字节。真实的机器和虚拟机都出现过这样奇特的情况。典型的虚拟机是微软的 VirtualPC。而真实的机器是我遇见的一台笔记本电脑。它们共同的特点是,在用 Win98 启动光盘进入 DOS 后,再进入 grub.exe,此时,就能够发现,对软盘的访问方式不同,会导致读到的扇区不同。当你用 EBIOS 读取软盘 00 的第一扇区的时候,你无法得到软盘的第一扇区,得到的却是 2048 个字节,而且是光盘的第一扇区(通常全都是 00 字节)。只有当你用 CHS 模式读取软盘 00 的时候,你才能得到正常的软盘扇区。

在这种变态的情形之下,grub4dos 用两个盘号来表示这个设备:00 表示软盘,0x100 表示光盘。一般来说,对于一个具有 “精神分裂症” 的设备,grub4dos 总是用位于 0~0xFF 之间的设备号码来表示用 CHS 方式所访问的那个设备,而用相应的比它大 0x100 的那个设备号码来表示用 LBA 方式所能访问到的那个设备。

因此,对于刚才所说的那个情况,(0) 就代表软盘,(0x100) 就代表光驱。

对于没有 “精神分裂症” 的设备,它就只有一个盘号。

geometry 命令能够告诉你,某个设备是否具有 “精神分裂症”。对于具有 “精神分裂症” 的设备,geometry 命令会显示出 BIF 字样。对于其他正常的设备,geometry 显示的是 CHS 或者 LBA。
回复

使用道具 举报

7#
发表于 2010-10-5 17:39:43 | 只看该作者
不点大师讲解详细。学习了
回复

使用道具 举报

8#
 楼主| 发表于 2010-10-5 21:06:49 | 只看该作者

回复 #6 不点 的帖子

谢谢不点大师的补充,讲的很详细

(cd),(cd0)(cd1)...都是物理光驱
    (cd)是bios检测到的启动的no-emulation光盘,grub可检测到;当光盘为emulation时,bios不会分配(cd)盘符,可通过cdrom --init来探测,但成功率无法保证
====想问下,如果存在2个光驱,这时bios应该会为启动的光驱分配(cd),那grub下也是用(cd)来访问启动的光驱,那第2个光驱是否只能通过cdrom --init后来访问?

还有就是了解到了“精神分裂症” 的磁盘设备及geometry的检测,谢谢
回复

使用道具 举报

9#
发表于 2010-10-5 22:16:47 | 只看该作者
光盘规范并没有规定,有两个光驱的时候,BIOS 应该怎么做。但是,BIOS 要为那个启动 no-emulation 盘片的那个光驱分配一个盘号,这是肯定的了,否则,后续的光盘引导过程会失败。因此,在 grub4dos 下,也只能用 cdrom --init 来访问第二个光驱了。

当然,具体到某个 BIOS 会怎么做,那是可变的。如果一个 BIOS 在启动的时候为所有的光盘都自动分配一个各自的盘号,那样的话,其实就完全不需要我们的 cdrom --init 了。如果这由 BIOS 来做,那么成功率就是由 BIOS 来保证的,应该说是百分之百成功。但问题是,BIOS 乐意不乐意这么做。究竟有没有这样的 BIOS,我也不知道。

如果要从技术上展开来讨论,对于 BIOS 以及主板厂商来说,这其实很容易。当电脑是从 no-emulation 模式的光盘启动的时候,BIOS 就能分配一个盘符给光盘,也就是说,提供一个 int13 接口。这说明,BIOS 中已经固化了这些程序,只不过当机器是从 no-emulation 模式的光盘启动的时候,才把接口挂上,让用户程序能够访问光驱。而当机器不是从这样的光盘启动的时候,又把接口隐藏掉,或者禁止掉,让用户无法访问光盘。因此,如果 BIOS 厂家想开放这个接口的话,那简直易如反掌,根本不费吹灰之力。无论是否从光盘启动,BIOS 都可以提供光盘的 BIOS 接口,这不会带来任何问题。但问题是,他们不想这么做。即使这么做了,也可能没人去用这个接口,除了 grub4dos 能够自动探测到这个接口以外,别的软件通常都不去探测的。这是因为,当初的光盘规范没有规定要这么做。既然没规定,用户也就无法确保能够使用这样的接口。所以,问题在于当初制定的规范不完善。当然,那个规范是故意制定成那样的,这是另外一个话题了。

到如今,光盘的地位已经大大降低了。光盘有可能主要用来备份数据,退居二线。有了 USB 设备,光盘在桌面上的地位更是迅速降低。大家知道,软驱已经被淘汰了。光盘被淘汰,为时尚早。作为备份存贮设备,光盘还有用处。但是,光盘的体积和重量,是一个很大的缺点,它不适合于轻薄型的电脑。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-25 12:52

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表