无忧启动论坛

标题: [已解决]-----------grub4dos引导竟然会有时候成功??有时候失败????-----... [打印本页]

作者: guyue2011    时间: 2015-3-26 11:15
标题: [已解决]-----------grub4dos引导竟然会有时候成功??有时候失败????-----...
本帖最后由 guyue2011 于 2015-3-29 18:48 编辑

大家好 ,,,本人初学修改pe,,,这两天被一个很奇怪的问题困扰了
   
    我定制了一个pe, 引导文件是grldr(bootice检测版本是0.4.6a),  如果用软碟通高端写入,   用佛大的qemu模拟启动器  可以顺利引导,   看到pe菜单..

    但是如果是自己手动将pe.iso ,  7z解压到16GU盘,   或者,  直接将 pe.iso  挂载,, 然后将里面的文件, 复制到U盘的唯一 一个【fat32活动】分区,   再用bootice写入usb-hdd+的mbr  ,  和 grub4dos0.4.6a的引导扇区 , 再用qemu模拟启动器,   就发现, 有时候  这种复制镜像进U盘的方法,会成功引导,看到pe启动菜单,, 有时候就会失败,  直接进入grub的命令行,
  
    一开始的是时候 ,,我还以为我是不是bootice使用错误了,  就重复几次,试了几个U盘,  发现结果也是一样,,有时候成功,有时候失败,,但是用软碟通的高端写入就好像都会成功,
    后来, 我就怀疑是不是bootice写入的引导扇区和mbr问题,,然后就试着,当引导失败后, 用软碟通写入usb-hdd+和grldr引导扇区,结果还是会失败, ,但是一旦用这种复制文件的办法成功引导的话,无论用软碟通还是bootice写入mbr和pbr扇区,都会继续成功。
   
   我怀疑, 是不是这种复制文件到U盘的办法,会有文件碎片,而grub4dos对文件碎片的支持是有限度的,如果真的是这样的原因,那岂不是用这种复制的办法,本来就会有随机成功引导的问题啊? 当然我的猜测可能错误, 希望各位朋友可以指点一下

   下面是我的使用设置 和  失败后的情况

注意grub提示的是没有这个分区,  很奇怪啊..几个U盘都是这样的错误(一旦失败)
   











     




作者: pseudo    时间: 2015-3-26 13:36
grub4dos、bootice版本用最新的来试,否则无意义。
作者: guyue2011    时间: 2015-3-26 14:40
本帖最后由 guyue2011 于 2015-3-26 15:10 编辑
pseudo 发表于 2015-3-26 13:36
grub4dos、bootice版本用最新的来试,否则无意义。

大大您好啊...
           我这里用的是最新版的bootice(2015-2-16)
          而grub4dos版本还真不知道怎么看,  反正我是点击bootice里面打开grldr来看版本的,,,, 而所写入的mbr  和  pbr  都是bootice所写的   应该都是最新版吧 ?   而且出现这种随机性失败问题后  我试了下2013年版本的bootice    发现问题依旧    而且   刚刚在grub4dos 的bug反馈帖子中    @zhaohj   建议我先格式化U盘   然后  首先先复制grldr和menu.lst文件试试     测试结果也出来了..    还是一样    随机失败..

        下面是我的操作   安装图片顺序操作
        





















    对了,,系统是win10_64位 的9926  ,   昨天重装的,   以前也是9926,,,出现这个问题后,, 连系统也重装了...还是一样

作者: guyue2011    时间: 2015-3-26 17:06
pseudo 发表于 2015-3-26 13:36
grub4dos、bootice版本用最新的来试,否则无意义。

大大您好啊
    我想我大概找到问题了  虽然不知道其中的原理   但是从实验结果上说   应该就是这地方有问题了
  
    由于我在写一个pe的写入工具,   是高端隐藏的,   就涉及到U盘的分区操作,   而分区有包括了  mbr中分区表的填写     其中分区表中 有一个标志位----分区的结束柱头位置   也就是偏移量是0x 1C3 的位置 ,   这地方,  刚开始看资料说是  以前用于确定  分区结束位置的   现在不需要用到的   所以  我就把这个位置  强制写为FF FF FF,    但是刚刚无意中跟系统的对比,  发现  系统在这个标志位上,  填写的是FE FF FF,   我想出错的地方应该就是这里,   grub4dos引导程序 应该是需要这个参数来寻找分区的,   

    为了进一步验证猜想,   我就手动用winhex,  把这个FF FF FF改为FE FF FF,  结果 还真是可以进入pe菜单,  并且又试了多分区,   经过多轮测试发现,   只要这个标志位是FF FF FF,  就会引导失败,   其中第一个FF 只要设置为其他值 ,就可以顺利进入菜单..这也是为什么  随机失败引导的一部分原因,    因为我的工具,  在处理分区大小和位置时候,   假如分区大小是在0 - FF FF FF之间的,  就填写正确参数,   假如是大于FF FF FF 的  就直接填写为FF FF FF,  而FF FF FF 是会让grub4dos运行失败的,  所以 就出现了有时候 成功 , 有时候失败了,, 关键都是分区的大小和位置决定了成功与否

    而且又发现,   系统在格式化时候,   无论是右键格式化  还是 直接命令format,   都不会修改mbr的 ,   只会修改当前U盘显示分区的pbr  和  后面相关的扇区,,   我想  这就是哪怕是格式化后还是失败的原因   因为系统格式化根本改不了mbr中这个FF FF FF的错误标志位,   虽然系统能工作,   但是对于需要用到这个标志位工作的grub4dos来说(我猜),   就会导致它引导失败了   
    所以,   具体原因是不大清楚的,   虽然手头上有最新的g4d代码,   也搜索到了  出现这个错误提示的  函数位置,   不过  要看懂也是有难度的,   但是  不管了,   知道怎么解决就已经很开心了,,  毕竟这问题  实在是困扰我好几天了,   太感动了.........T_T T_T T_T T_T T_T T_T T_T T_T
作者: wln    时间: 2015-3-26 18:20
有探索精神就是好,佩服佩服
加油!
作者: hgh1974    时间: 2015-3-26 18:54
bootice用的不是最新版,请到GRUB4DOS官网下载,更新grldr,直接写入grldr.mbr。UD没试过,但BOOTICE自带的不能引导逻辑分区grldr,刷grldr.mbr就可以了,所以可以试下。
作者: guyue2011    时间: 2015-3-27 14:34
hgh1974 发表于 2015-3-26 18:54
bootice用的不是最新版,请到GRUB4DOS官网下载,更新grldr,直接写入grldr.mbr。UD没试过,但BOOTICE自带的 ...

您好啊   
    请问你所说的grub4dos官网是指这个吗?  http://grub4dos.chenall.net/
    上面好像只有源码下载哦    不知是不是要下载  然后要在linux下编译后才可以用到最新版呢??

    并且还有一个问题   里面的grldr文件好像在bootice是可以看到版本号 和日期的哦..    那这个文件  是不是只能从官网源码编译出来呢?   还是可以直接用bootice新建一个呢??   不过我试着用bootice新建一个grldr文件   而这个grldr文件是没有版本号和日期的哦..

    望解答
作者: hgh1974    时间: 2015-3-27 16:19
guyue2011 发表于 2015-3-27 14:34
您好啊   
    请问你所说的grub4dos官网是指这个吗?  http://grub4dos.chenall.net/
    上面好像只有 ...

点那个大标题,就会发现下载源码下面又有个.7z的链接,那个是编译好的。我用官网的,bootice的没用过
作者: guyue2011    时间: 2015-3-27 17:33
hgh1974 发表于 2015-3-27 16:19
点那个大标题,就会发现下载源码下面又有个.7z的链接,那个是编译好的。我用官网的,bootice的没用过

您好啊   
    原来还真是我不仔细啊   现在下载好了   但是我在自己的win10_x64_9926上 运行不了里面的*.com 或者*.exe  都提示与系统版本不兼容啊..
    而看了下grub4dos的帮助文件(论坛上的)   里面说gui方式安装就是用bootice   而命令行模式安装就要在dos系统啊??  
    那一般的系统  又不是dos系统   而且有不使用bootice   要怎样才能安装到最新版的grub4dos  的mbr和pbr啊?
   而且我用winhex打开了里面的grldr.mbr  和grldr.pbr   ,  发现里面应该就是要安装的代码了   不过难道要自己手动去复制粘贴吗?   毕竟里面有些项是要以自己的系统为参数的啊
作者: hgh1974    时间: 2015-3-27 18:47
guyue2011 发表于 2015-3-27 17:33
您好啊   
    原来还真是我不仔细啊   现在下载好了   但是我在自己的win10_x64_9926上 运行不了里面的 ...

bootice中有恢复MBR,PBR,恢复下就好了,不用安装
作者: guyue2011    时间: 2015-3-27 21:29
hgh1974 发表于 2015-3-27 18:47
bootice中有恢复MBR,PBR,恢复下就好了,不用安装

哈哈...谢谢大哥  ..
   经过测试  发现ok了..   一下子就高大上了...谢谢哈
作者: 不点    时间: 2015-3-29 17:32
你自己已经说清楚了,分区表上原来的 chs 参数是 fe ff ff,而你把它改成 ff ff ff,那当然不行了。

分区表很敏感,哪能是随便乱改的?尤其是手动乱改,有可能毁掉硬盘所有数据的。

建议在搜索引擎里面搜分区表的知识,了解每个字节的意义,这样自己就能发现问题,因而也就不需要到处询问了。


作者: guyue2011    时间: 2015-3-29 18:52
不点 发表于 2015-3-29 17:32
你自己已经说清楚了,分区表上原来的 chs 参数是 fe ff ff,而你把它改成 ff ff ff,那当然不行了。

分 ...

对啊 ..因为这个参数  资料上好像说  现在已经不怎么需要了..   而且我也没有注意到系统把它设置成fe ff ff  然后设置成ff  ff  ff   以为这个"没什么用"的参数不会有什么影响   结果  害我折腾了好几天咧..
     谢谢大哥的教诲啊
     以后也会注意点的   而这次由于修改的都是U盘   不是硬盘  并且数据都备份好了  所以还没什么大损害   就是害我瞎折腾了好几天了    吸取教训啊.T_T




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