中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 » [已解決] 使用pxe keep後再次加載 grub,首次map..
作者:
标题: [已解決] 使用pxe keep後再次加載 grub,首次map.. 上一主题 | 下一主题
adatsui
初级用户





积分 46
发帖 18
注册 2007-11-4
状态 离线
『楼 主』:  [已解決] 使用pxe keep後再次加載 grub,首次map..

tftp\menu.lst\default 內容大致如下 :
map --mem /dos.img (fd0)
map --mem --unsafe-boot /winpe.img (hd0)
map --hook
pxe keep
chainloader (fd0)/io.sys

進入 dos 處理一些事後, 再度進入 grub 此時 ma --status 已看不到之前的 (fd0), (hd0) , 如刪上一次加載 grub 的 pxe keep 命令, 則 fd0, hd0 仍存在 .

[ Last edited by adatsui on 2008-5-8 at 09:02 PM ]

2008-5-1 21:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chenall
银牌会员




积分 1276
发帖 469
注册 2002-12-23
来自 福建泉州
状态 离线
『第 2 楼』:  

我刚试了下,确实如此.应该是BUG吧,

不知保留PXE KEEP有没有其它作用,如果没有用就暂时先去掉PXE KEEP吧.



QQ:366840202
http://chenall.net
2008-5-2 15:40
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (366840202)  编辑帖子  回复  引用回复
adatsui
初级用户





积分 46
发帖 18
注册 2007-11-4
状态 离线
『第 3 楼』:  

已去掉了.
這樣做不就是因為套用你的 S&R&S 做法, 試著可不可以進入dos 後才找所需的 SCSI給WINPE用.
只是好奇問問, 因對於10MB的驅動包, 單傳所需一個的額外處理時間, 並不會較整個驅動包傳送的時間節省多小.

哪大俠再問多一個.
map  --mem --unsafe-boot /winpe.imb (hd1)
map --hook
map --status

81 FF...... M=U

map  (hd1) (hd0)
81 FF ..... M=U
80 FF ..... M=S  <..... 不跟源(hd1)的 unsafeboot .  

好像是要
map --unsafe-boot (hd1) (hd0) 才會是   M=U .  我是胡亂試, 找不到說明. 這做法正確嗎 ?

2008-5-2 20:44
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chenall
银牌会员




积分 1276
发帖 469
注册 2002-12-23
来自 福建泉州
状态 离线
『第 4 楼』:  

关于前面问题的解释.如下,想信以后会有解决办法的。

应该是grub.exe检测中断向量的方法引起的。如果加了pxe keep的话,pxe运行环境会保留,它会截取int 13和int 15,中断向量就不会指向rom了。

上楼:
确实是在加--unsafe-boot才会是M=U,这个不点有说过。

[ Last edited by chenall on 2008-5-2 at 09:28 PM ]



QQ:366840202
http://chenall.net
2008-5-2 21:23
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (366840202)  编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 5 楼』:  

看看最新编译是否解决了顶楼的问题。下载: http://grub4dos.jot.com/



因为我们亲手创建,这个世界更加美丽。
2008-5-6 02:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
adatsui
初级用户





积分 46
发帖 18
注册 2007-11-4
状态 离线
『第 6 楼』:  

兩位大俠的率效實在是沒話說, 初步測試如下:

Dos 的 bootimage 內 config, autoxec.bat 文件全部內容清空.

TFTP 使用 grldr 506   Boot  DOS
           Dos 下分別執行不同版本 grub.exe
        1. 506 X, Failure restore ROM INT -0x13 vector. Unsupported DOS, device driver, or TSR.
        2. 505  OK
        3. 506 x, Failure restore ROM INT -0x13 vector. Unsupported DOS, device driver, or TSR.
        4. 422  --status , The int13 hook is off. The Drive map table is currently empty.
        5. 505 OK
        6. 506 x, Failure restore ROM INT -0x13 vector. Unsupported DOS, device driver, or TSR.

TFTP 使用 grldr 505 Boot DOS
        1. 505 OK  (曾試過一次進入dos 後 505版本, 顯示 Failure restore ROM INT -0x73... , 但沒法重現 !!)
        2. 506 x , Failure restore ROM INT -0x13 vector. Unsupported DOS, device driver, or TSR.
        3. 422 --status , The int13 hook is off. The Drive map table is currently empty.
        4. 505 OK
        5. 506  x , Failure restore ROM INT -0x13 vector. Unsupported DOS, device driver, or TSR.

TFTP 使用 grldr   422  Boot  DOS
        1. 422 x , Failure restore ROM INT -0x73 vector. Unsupported DOS, device driver, or TSR.
        2. 506 x , Failure restore ROM INT -0x13 vector. Unsupported DOS, device driver, or TSR.
        3. 505 OK.
        4. 422 --status , The int13 hook is off. The Drive map table is currently empty.


似乎是 Server 方面 TFTP 的 grldr 用 422 Boot image 就配搭 505 版本. Server 用 505 版本 grldr , boot image 就配搭相同 505 版本.
506 似乎沒法配對得成功, 422亦然.

客機啟動了 dos 進入 gurb 後, 卻沒法啟動 winpe (黑屏, 沒重靜, 這PE正常啟動是檢測軟驅, 顯示 win logo ....) .
如去除 pxe keep 則可以.  也許有甚麼要動手腳. 待腦袋清醒點再試.

另外, 好像是 map --mem --unsafe-boot /winpe.gz (hd0) , 會由 server (TFTP) 向 客戶機發送 2 次 winpe.gz ??
第二次傳送是在顯示 probed c/h/s = 122/128/32, probed total sectors = 499711
而 map --mem /dos.img (fd0) 則不會.

[ Last edited by adatsui on 2008-5-7 at 02:15 AM ]

2008-5-7 01:51
查看资料  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 7 楼』:  

谢谢。先猜测一下发送两次 winpe.gz 的原因。因为 gz 文件解压后的长度记录在 gz 文件的末尾(占用四个字节),这是 gz 文件格式设计时的缺陷,因此 grub 需要首先读取 gz 文件确定解压长度,然后再读一次来解压 gz 的数据。

解压 gz 的操作是 GNU GRUB 固有的功能,并非我们在 GRUB4DOS 中编程实现的。要改变就要有很多改动,不太容易。目前建议你不要压缩映象。

---------------------

5月7日刚刚又上载了一个,请试试看 int13 探测失败的问题是否已经解决。

http://grub4dos.jot.com/

[ Last edited by 不点 on 2008-5-7 at 05:19 PM ]



因为我们亲手创建,这个世界更加美丽。
2008-5-7 08:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
adatsui
初级用户





积分 46
发帖 18
注册 2007-11-4
状态 离线
『第 8 楼』:  

謝謝不點, 5月7 日版本一切正常了. 測試如下.


TFTP grldr版本                DOS grub版本   map --mem --status                boot to PE
507                               422                          OK                                     OK
                                  507                          OK                                  OK
                                  505                          OK                                  OK
                                  506                Failure restore ROM INT 0x13 vector.
                                       

上述配搭伺服務器 TFTP 用 507 版本, 客端 DOS 用 507, 422, 505 版本均正常. 問題解決了.



gzip 的問題明白了, 即使它有讀兩次, 但資料傳輸量仍比不壓縮小, 仍是值得用的.
243mb 的 img , gzip 後約 66mb.

[ Last edited by adatsui on 2008-5-7 at 09:42 PM ]

2008-5-7 21:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 9 楼』:  

读取两次 gz 的问题,原则上应该也是可以解决的。不过目前暂时无暇顾及,只能等到以后某个机会再做,请原谅。

如果 5月7日能够正常使用的话,那么以前的版本都该淘汰了。此次更动了探测中断向量的算法,应该是最合理的、同时兼容性也是最好的了。其他朋友最好也试试看,此次更动是非同寻常的,其结果可能使得在以前不支持的某些硬盘保护卡之下也能使用新的 grub.exe(前提是这个硬盘保护卡不故意阻止 grub.exe 的运行)。

谢谢 adatsui 的辛苦测试和详细报告。



因为我们亲手创建,这个世界更加美丽。
2008-5-7 22:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
adatsui
初级用户





积分 46
发帖 18
注册 2007-11-4
状态 离线
『第 10 楼』:  

對不起, 因昨天試能否啟動 PE 而去掉了伺服器 TFTP menu.lst 的 pxe keep . 加回該項參數重試結果修正如下.

TFTP grldr                        DOS grub.exe
507                                507    map --mem --status OK                        boot winpe failed
                                422          map --mem --status "int13 hook is off "
                                505        failure restore ROM INT 0x73 vector.
                                                               

伺服務器 TFTP 用 507 版本, 客端 DOS 用 507 版本, map --mem 問題解決了.
而 winpe 啟動問題, 我試找其他人做的試試看啟動如何.

[ Last edited by adatsui on 2008-5-8 at 01:34 AM ]

2008-5-8 01:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 11 楼』:  

我感觉,PE的启动失败,不能表明 GRUB4DOS 的仿真以及中断探测恢复存在问题。有可能是 PE 自身的适应性问题,也许 PE 本身和 PXE 有冲突。

从我们的讨论中已经得知,PXE 的 ROM 竟然占用了大量的常规内存,占用了几十个 KB 甚至超过 100 KB 之多,并接管了中断 15h 和 73h 。先不论 PE 在中断号码的使用上是否与此类 PXE ROM 有冲突,单单说 PXE ROM 所占用的如此巨大的常规内存,这就很容易与其他软件相冲突了。因为在常规内存的顶端,一般认为只是用来存放“扩展的 BIOS 数据区”也即 EBDA 的,它的空间占用应该很少,一般是 1KB,最多也是 8KB。我们的磁盘仿真代码也放在这里了,目前大约占据 10KB,其实已经有点大了。然而在 30KB 以下应该还算是比较安全的。而 PXE ROM 的加入,突然提升了常规内存的占用,即便不计算 GRUB4DOS 的仿真所占据的空间,仅仅 PXE 的 ROM 就可能占用 64KB 甚至 128KB,对于如此巨大的常规内存占用,如果与其他软件完全不出现任何冲突,那才叫不可信。

我对于网络编程完全是外行,但是,我想借此机会顺便说说我对 ROM 扩展卡的一些看法。首先我认为,ROM 扩展卡不应该占据常规内存的代码空间,最多只能够占据 EBDA 中的一些数据空间(如果 EBDA 太小,ROM 扩展卡的设计者可以动态增加 EBDA 的大小)。就一个网络功能,64KB应该足足够了,用Assembly实现应该不是一件特别困难的事情;ROM扩展卡不应该用C语言来实现,因为C语言会浪费很多空间。这样,如果空间占用太大,那么开发者就要考虑压缩 ROM 的代码,而解压后就只能放在常规内存中了,这是非常糟糕的事情。

[ Last edited by 不点 on 2008-5-8 at 11:34 AM ]



因为我们亲手创建,这个世界更加美丽。
2008-5-8 10:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
adatsui
初级用户





积分 46
发帖 18
注册 2007-11-4
状态 离线
『第 12 楼』:  

是的,pe以這樣方式啟動失敗,並不意味任一方存在問題,畢竟這偏離微軟擬定的啟動方式太遠了,我也不見有多小人會意圖以這方式啟動,強求也許只是鑽牛角尖了。grub現在的彷真功能,已是很大的成功了。

pxe keep 在此引至的兼容問題,在實際應用上影響也不大,只需用帶網絡驅動包的 dos boot disk,便完全可取代,網絡功能也強很多。

2008-5-8 21:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: