无忧启动论坛

标题: 关于UD启动出现fd0,0测试报告 [打印本页]

作者: hhh333    时间: 2012-1-15 14:19
标题: 关于UD启动出现fd0,0测试报告
尽管新机没有这个恼人的问题,但维护中经常碰到这个问题,刚好本人有一台这样机器,于是进行了一些测试
1、UD启动时,出现fd0,0,是否映射fd0到hd0表现如下:
映射fd0-->hd0grldr启动PEgrldr启动DOSsyslinux启动PE syslinux启动DOSeasyboot启动PE  easyboot启动DOS
映射
×
进菜时出现找不到内核的提示,但回车可出菜单
×
可进菜单但不能启动
×
不映射
×
  √
但必须先装入fd1再交换到fd0
boot error,回车重启boot error,回车重启
×










2、对于UD启动时出现fd0,0机器,用ultraiso的usbhdd+方式写入U盘,转多种启动方式均正常,在g4d方式中U盘被识别为hd0,3,与其他的机器无异,但用hdd+v2不行。

3、UD启动后转bootmgr方式无论怎么处理都失败。

结论:
1、对于UD启动出现fd0,0机器,建议用usbhdd+方式来制作启动U盘,不要用u+v2,更不建议用UD方式;
2、对于UD启动出现fd0,0机器,如果要使用UD方式,进PE前必须映射fd0到hd0,进DOS仿真盘前则不能映射,且要先将DOS镜像映射到fd1再交换到fd0才能用;
3、对于UD启动出现fd0,0机器,如果要使用UD方式,转syslinux没什么意义DOS和PE均不能用或根本不能转;转easyboot启动DOS和PE只能有一个成功启动;

总之,我不再迷信UD方式,以前用它来处理老机器,但这种情况恰恰就出在老机身上,新机各种启动方式均不会有问题,对付老机器看来需要2个U盘,一个为UD方式一个为U+方式,最好再加个CD基本就全了。没有万能的启动方式!

[ 本帖最后由 hhh333 于 2012-1-15 15:27 编辑 ]
作者: 不点    时间: 2012-1-15 14:43
也许是属于使用方法问题?PE 都启动成功了,DOS 却不成功,我感觉这不可能。说不定是碰上某个 buggy 的 DOS 版本了。换用不同的版本(例如 FreeDOS,MS-DOS)试试。
作者: hhh333    时间: 2012-1-15 14:50
标题: 回复 #2 不点 的帖子
确实如此,如果进行了fd0与hd0的交换,DOS镜像的映射就会出问题,但如果执行map --unmap,取消前面的映射,再将IMG map到fd1,交换fd0 fd1就成功了。
作者: pseudo    时间: 2012-1-15 16:41
手头没这种机器,不了解情况。
印象中0PE没有映射fd0到hd0,但未见网友反馈这种机器上fbinst不能启动PE。
目前印象是通吃所有情形的。有条件的网友可验证一下。
作者: hhh333    时间: 2012-1-15 16:54
标题: 回复 #4 pseudo 的帖子
不太特别了解0PE(主要是0PE完全依赖grub4dos,一旦g4d熄火就一切玩完了,而我是要弄多启的),如果采用的是先在grldr中将内核及启动文件搬到内存盘中再启动的话,当然不会出现这种情况。

一般情况是UD启动,可见区出现fd0,0时,这个时候由PE装载器来装载PE就会出现错误,同时转其他方式启动也会有错。以前似乎软盘镜像没有问题,现在好象不先转到fd1再映射回fd0也有问题了。

[ 本帖最后由 hhh333 于 2012-1-15 16:55 编辑 ]
作者: 星语风    时间: 2012-1-15 17:05
我有三台电脑,两台是台式机,一台是本本,出现也楼主同样的情况,提供我的解决办法与楼主商榷
先说说我的情况,PE使用的是水大的V2012.1,我自己进行了DIY
FBinstools 1.605 制作 U盘启动,GRUB用C大最新的 0.46A 20120101
先说本本,神舟优雅HP550,启动时显示是(hd0,0),一切正常,没任何问题
第一台台式机,用的是盘正的8HEAI_S主板,启动时出现(fd0,0),加载启动PE及DOS都正常,但不能加载PLOP的USB 2.0驱动
第二台台式机,用的是技嘉GA-K8VT890-9主板,启动时出现(fd0,0),加载DOS镜像正常,启动PE出现 ntdetect.com failed,但如果先加载PLOP 5.0.10之后(此时显示是(hd0,0))再启动PE就正常了

综合以上的情况,为了让我的三台电脑都能用同一个U盘启动,我将fd0与hd0映射转换一下,全部启动正常,菜单文件如下

title 启动 我心如水 Server 2003 PE V2012.1 (SATA/SCSI/RAID) \n 集成大量的SRS驱动,内置常用维护工具
        # 为避免有某些电脑上启动U盘识别为fd0模式的时候,启动PE可能会提示ntdetect.com错误而设置fd0与hd0交换保证启动PE成功
        if %@root%==(fd0,0) map (fd0) (hd0) && map (hd0) (fd0) && map --hook && find --set-root --ignore-cd /boot/menu.lst
        chainloader /03PE/SETUPLDR.BIN  


附注:为了这个问题,我试用了N多版本的fbinsttools 与 GRUB,最后查网上的一些文档将映射交换,终于正常
在这里也发一下感慨,GRUB的帮助文件真的太分散了,不每天关注的话,真的会跟不上形势,希望C大能做一个帮助文件,详细点的,中英文不限,当然中文更好
作者: hhh333    时间: 2012-1-15 20:45
标题: 回复 #6 星语风 的帖子
交换到hd0的方法来启动不知是不是我的原创,这个方法用得比较早了。
从你的情况看来,机器或U盘不同fd0,0的机器表现有所差异,我这台比你的更变态,交换到hd0后PE可以用,DOS不能用!
你上面的写法有几个问题:
1、用%@root%==(fd0,0) 来判断,如果menu.lst藏于ud内启动会有问题
2、map (fd0) (hd0) && map (hd0) (fd0) && map --hook 在只有U盘无硬盘的机器上会出错

我的判断语句如下:
if %?_BOOT%==(ud) if exist (fd0)/fb.cfg set fd0=1
再编一个批处理来交换如:

title 启动Win03 PE                Boot WinPE 2003\n含最多最新的磁盘控制器驱动,内核中包含常用工具,启动后可以移去启动盘
if "%fd0%"=="1" FD2HD
chainloader /BOOT/H3_LDRIN.BIN

FD2HD代码如下:
!BAT::by H3 用于fd0映射到hd0
#无参数
errorcheck off
map (fd0) (hd0) && map (hd0) (hd)
map --hook && rootnoverify (hd0,0)
errorcheck on

我现在是检测出现fd0,0,对于PE,进PE前fd0映射到hd0,对于DOS镜像,先映射到fd1再将fd1映射到fd0,算比较满意地解决了问题。但UD启动后转其他启动方式还是有问题,同时出现了fd0,0你别想启动PE3。我已经不太相信UD这种方式了。因为fd0,0经常有出现。

[ 本帖最后由 hhh333 于 2012-1-15 21:29 编辑 ]
作者: hhh333    时间: 2012-1-15 21:30
标题: 回复 #6 星语风 的帖子
确实我这台机器加载PLOP 5.0.10之后(此时显示是(hd0,0))再启动PE就正常了
作者: 星语风    时间: 2012-1-16 06:26
忘记说了,我是将menu.lst放在U盘可见分区的,所以我找这个文件能找到
作者: hhh333    时间: 2012-1-16 09:07
标题: 回复 #9 星语风 的帖子
我是希望弄一个通用的,无论menu.lst放UD内还是可见区,还要支持整体启动
作者: zhaohj    时间: 2012-1-16 09:33
map (fd0) (hd)
map --hook
>>>上面改成map --rehook比较好

FD2HD代码如下:
!BAT::by H3 用于fd0映射到hd
#无参数
errorcheck off
map (fd0) (hd) && map --rehook && rootnoverify (hd-1,0)
errorcheck on

[ 本帖最后由 zhaohj 于 2012-1-16 10:12 编辑 ]
作者: hhh333    时间: 2012-1-16 09:55
标题: 回复 #11 zhaohj 的帖子
这个比较精练,映射到所有硬盘后的第一个硬盘,如果系统中有hd0,则fd0-->hd1,从hd1,0启动不会有问题吧?象软盘镜像,从fd1启动就不行。有空我再测试一下。
作者: zhaohj    时间: 2012-1-17 11:15
有空测试一下grub4dos新版:
http://bbs.wuyou.net/viewthread. ... page=233#pid2373549

FD2HD代码如下:
!BAT::by H3 用于fd0映射到hd
#无参数
errorcheck off
map (fd0) (hd) && map --rehook && rootnoverify (hd-1)
errorcheck on

----------
新版取消了rehook自动添加mbr,所以访问方式要改变一下。
作者: hotdll    时间: 2012-1-17 22:46
原帖由 hhh333 于 2012-1-15 14:19 发表
尽管新机没有这个恼人的问题,但维护中经常碰到这个问题,刚好本人有一台这样机器,于是进行了一些测试
1、UD启动时,出现fd0,0,是否映射fd0到hd0表现如下:
映射fd0-->hd0grldr启动PEgrldr启动DOSsyslinux启 ...

这个问题其实早已解决了:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=201189&highlight=
作者: hhh333    时间: 2012-1-19 08:54
标题: 回复 #14 hotdll 的帖子
你认为解决了,我觉得还有问题,如简单地来一个fd2hd有时并不行得通。
作者: chiannet    时间: 2012-1-19 17:03
标题: 回复 #15 hhh333 的帖子
这个问题真让人纠结!一时找不到好的方案解决,

在我的那太老机器上,无论fd2hd之后或不运行fd2hd,由grldr启动UD可见区的 chainloader /AXPE/SETUPLDR.BIN或chainloader /AXPE/bootmgr.BIN均失败,但DOS工具貌似加载正常。

在运行了fd2hd(zxw 版的fd2hd也试了)之后,ls ()/ 或 ls (hd0,0)的确显示的是U盘可见区的内容。可就是启动失败,折腾老久了。


所以这种机器如果要UD,看样子还是以MAP UD内的ISO PE来得靠谱。
作者: blithewind    时间: 2012-1-19 17:31
原帖由 chiannet 于 2012-1-19 17:03 发表
这个问题真让人纠结!一时找不到好的方案解决,

在我的那太老机器上,无论fd2hd之后或不运行fd2hd,由grldr启动UD可见区的 chainloader /AXPE/SETUPLDR.BIN或chainloader /AXPE/bootmgr.BIN均失败,但DOS工具 ...



有这么一台老机器,是一幸事呀。
没有细看fd2hd,不知道转换后装载SETUPLDR.BIN时找到文件了没有?先运行fd2hd,然后进行命令行,手动加上设备号再试情况如何,如:
chainloader ()/AXPE/SETUPLDR.BIN
chainloader (hd0)/AXPE/SETUPLDR.BIN
chainloader (hd0,0)/AXPE/SETUPLDR.BIN

作者: zhaohj    时间: 2012-1-20 09:57
说明一下,新版本的g4d,
map (fd0) (hd0)或map (fd0,0) (hd0)
map --rehook
不会自动建立(hd0)的mbr,访问(hd0)只能如下:
ls (hd0)/
等形式。

FD2HD.rar

535 Bytes, 下载次数: 46, 下载积分: 无忧币 -2


作者: hhh333    时间: 2012-1-20 11:55
标题: 回复 #18 zhaohj 的帖子
这两天事多,没有空测试,回头我仔细用那台机器测试后再报告。
作者: hhh333    时间: 2012-1-21 22:19
标题: 回复 #18 zhaohj 的帖子
测试结果如下:
1、兄弟附件中的文件fd2hd可以;
2、map --hook改rehook可以;
3、必须映射到hd0,映射到hd不行(当然没有硬盘时可以);
4、必须要rootnoverify (hd0,0)才行,用rootnoverify (hd0)不可以;

用的是最新版的grldr。我的那个FD2HD还是维持如下的代码:
!BAT::by H3 用于fd0映射到hd0
#无参数
errorcheck off
map (fd0) (hd0) && map (hd0) (hd)
map --rehook && rootnoverify (hd0,0)
errorcheck on
作者: mygamexxx    时间: 2012-1-29 20:12
UD启动盘出现(fd0,0)后,map (fd0) (hd0) && map --hook或--rehook后,实际上,ls (hd0)/ 显示的是UD区的内容,ls (hd0,0)/ 显示的是原(fd0,0)亦即U盘可见区内容。
最近比较烦的出现(fd0,0)后(同一个U盘用最新版的fbinstool重新制作的UD启动盘),map --mem 一个软盘映像到(fd0)后,ls (fd0)/ 显示的还是UD区的内容,而chainloader (fd0)+1却又是启动了IMG中的系统。这样就无法通过write等命令修改(fd0)中文件的内容了,以前没出现过此情况。CHENALL大大回复说是UD区的缓存的原因,但以前不是这样的。

如楼主所说,通过map --mem 一个软盘映像到(fd1)后,再map 交换 (fd0) (fd1),可以查看到并修改仿真软驱中的文件。

UD启动盘出现(fd0,0)后,启动(fd0,0)上的PE(包括PE1.X、PE3)不成功,map (fd0) (hd0) && map --hook或--rehook后,原(fd0,0)上的PE(包括PE1.X、PE3)均启动成功

[ 本帖最后由 mygamexxx 于 2012-1-29 20:25 编辑 ]
作者: hhh333    时间: 2012-2-1 08:57
标题: 回复 #21 mygamexxx 的帖子
这个就说明兄弟的情况与我是一样的,检测到有fd0,0,现在我是这样处理的:
1、对于DOS映像,先取消所有的映射关系,再用一个批处理完成map到fd1,再交换到fd0,从fd0启动过程;其他没有fd0,0的直接用run命令;
2、对于可见区的PE用自编的fd2hd进行映射到hd0,0再启动;
3、对于UD区内的PE,有或没有fd0,0都不必进行交换,建立一个映射软盘,将PE内核搬运到软盘中进行启动;
作者: zhaohj    时间: 2012-2-1 14:27
原帖由 mygamexxx 于 2012-1-29 20:12 发表
map --mem 一个软盘映像到(fd0)后,ls (fd0)/ 显示的还是UD区的内容,而chainloader (fd0)+1却又是启动了IMG中的系统。


fb的map --mem 一个软盘映像到(fd0)后,用下面命令
map --mem /dos.img (fd0)
map --rehook
cat --hex (fd0)+1 贴出内容看看

我想既然已经map (fd0) (hd0)了,原u的内容就是(hd0),原(fd0,0)的内容就是(hd0,0),修改一下0x410某位的值,使软盘数为0
map --floppies=0
map --mem /dos.img (fd0)
map --rehook

[ 本帖最后由 zhaohj 于 2012-2-1 14:42 编辑 ]
作者: mygamexxx    时间: 2012-2-7 13:29


这是虚拟机下的操作,程序正常,实机下操作 ls (fd0)/ 显示的是UD区内容,实机下操作,图中红框部分不出现。
哦,忘记了,虚拟机下操作是USB-HDD,U盘为HD,实机下操作是USB-ZIP,U盘为FD。
实机下,map --mem 并map --hook操作后,ls (fd0)/ 显示UD区内容,cat (fd0)+1显示FRDOS等字符

[ 本帖最后由 mygamexxx 于 2012-2-7 14:58 编辑 ]
作者: zhaohj    时间: 2012-2-7 15:55
map --floppies=0
map --mem /dos.img (fd0)
map --rehook   #注意,这里用rehook参数
ls (fd0)/
map --status
作者: mygamexxx    时间: 2012-2-7 16:09
格式化为USB-HDD,台式电脑还是识别U盘为(fd0,0),并且总是从U盘的分区引导记录启动,而不是从U盘的主引导记录启动。
用FBINST,加复制第一分区的BPB到MBR后,台式电脑还是识别U盘为(fd0,0),但症状消失,看来还是软件不会使用。

有机会再测试一下笔记本电脑的启动情况。




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3