无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: Pauly

[原创] 【XORBOOT Uefi: 多系统引导程序】-(2019-04-04 v0.25)

    [复制链接]
发表于 2010-1-18 11:02:49 | 显示全部楼层
昨天试了下,可以引导,然而遇到一个可怕的情况:在 win7 中向第二块硬盘安装了 xorldr ,还导出了一个文件,用 win7 的 bootmgr 来加载。 重启,引导,开始时正常的。后来用 g4d 把 两块硬盘 map 来 map 去,以及使用bootmgr ,来回引导了几次,不知什么时候出现了异常,第二块硬盘的分区表被克隆到第一块硬盘了!是真实的写入!

不知道这一切是如何发生的。

幸亏有分区表信息,用 diskgen 修复了。
回复

使用道具 举报

发表于 2010-1-18 11:04:26 | 显示全部楼层
看到导出的文件大小约为9K。冒昧猜测一下:是不是基于 grldr.mbr 开发的呢??
回复

使用道具 举报

发表于 2010-1-18 11:05:57 | 显示全部楼层
大大出新作了 要进来支持一下
回复

使用道具 举报

发表于 2010-1-18 11:34:04 | 显示全部楼层

回复 #305 PTPTPTPTPTPT 的帖子

我估计将里面的一个CD13清零(有2个),应该可以去除回写功能!
我测试看看
回复

使用道具 举报

发表于 2010-1-18 11:57:54 | 显示全部楼层
一直单一使用绝对扇区引导GRLDR方式,成功率100%

前天遇到一个问题: 引导菜单无显示(下面的“从下一设备启动启动计算机”显示正常)

请问:自定义菜单首字节可不可以是空格(半角),是否支持特征特殊字符(比如:★等)
回复

使用道具 举报

发表于 2010-1-18 12:06:27 | 显示全部楼层

回复 #309 LOVPE 的帖子

肯定能的!
我早先就这么用了!
回复

使用道具 举报

发表于 2010-1-18 12:32:43 | 显示全部楼层
好东西,谢谢分享。。。。
回复

使用道具 举报

 楼主| 发表于 2010-1-18 14:26:32 | 显示全部楼层

回复 #304 天涯海角1216 的帖子

谢谢反馈,也许你的根目录太大或太乱,呵呵,看来 NTFS 分区地读取还不够完善,而有些特殊情况又不是那么容易碰到,或者说我对 NTFS 还没有完全掌握吧,还需要学习,呵呵

[ 本帖最后由 Pauly 于 2010-1-18 16:29 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2010-1-18 14:41:09 | 显示全部楼层

回复 #309 LOVPE 的帖子

在现在的设计中,如果默认启动项不是固定的(即保存上次启动的条目),则在执行启动动作时会回写硬盘以保存上一次的设置,用 BOOTMGR 加载后,它就把第二硬盘的 MBR 分区表写到第一硬盘去了,这的确是一个严重的缺陷,需要改进
回复

使用道具 举报

发表于 2010-1-18 15:59:17 | 显示全部楼层
个人认为,引导类的程序,在引导过程中最好不要有任何形式的写入。如果要写入,一定得慎之又慎
回复

使用道具 举报

发表于 2010-1-18 17:47:43 | 显示全部楼层
這篇也拜讀好久...一定要說聲感謝!!
回复

使用道具 举报

发表于 2010-1-18 19:05:34 | 显示全部楼层
微软的 bootmgr 竟然敢把 mbr 扇区写入到具有不同分区表的扇区上,也太盲目了吧。破坏掉分区表,那可是个大事。应该保护分区表,而只写入引导代码。
回复

使用道具 举报

 楼主| 发表于 2010-1-18 19:11:06 | 显示全部楼层
原帖由 天涯海角1216 于 2010-1-18 06:38 发表
启动NTFS分区根目录测试反馈:
D盘,BOOTMGR---DPANLDR引导(GRLDR),提示:Booting from file DPANLDR /DPANLDR:>005377BA;>00916C71;No such file


麻烦你用 nfi.exe 看一下你 D 盘的根目录扇区号,然后发上来看看(调试信息中显示的是簇号),nfi d: |more,附件中提供了 nfi.exe

nfi.rar

8.75 KB, 下载次数: 65, 下载积分: 无忧币 -2

回复

使用道具 举报

 楼主| 发表于 2010-1-18 19:12:37 | 显示全部楼层
原帖由 不点 于 2010-1-18 19:05 发表
微软的 bootmgr 竟然敢把 mbr 扇区写入到具有不同分区表的扇区上,也太盲目了吧。破坏掉分区表,那可是个大事。应该保护分区表,而只写入引导代码。

这个应该不是 bootmgr 的问题,是 XORLDR 的问题,PT 用 G4D 的 map 功能将  hd1 映射为 hd0,XORLDR 导出文件中保存有原来 hd1 的 MBR,XORLDR 在执行启动动作时会保存上一次的选择, 于是就把原 hd1 的 MBR 写到 hd0 去了,XORLDR 本来有判断是否是被第三方引导器加载的代码,如果是被第三方引导器加载则不会保存设置,但这个版本中这个功能出了点逻辑上的 bug,所以导致了这个问题

[ 本帖最后由 Pauly 于 2010-1-18 19:40 编辑 ]
回复

使用道具 举报

发表于 2010-1-18 19:33:29 | 显示全部楼层
这个该是件很实用的东西啊!
回复

使用道具 举报

发表于 2010-1-18 19:40:14 | 显示全部楼层

回复 #318 Pauly 的帖子

我认为就是类似于原来的 MBLDR也会将用U盘启动后会将U盘的MBR写入到硬盘一样的情况,后来我清零了一个CD13就没事了!

我看了XORLDR里也有这种情况,我没详细测试,呵呵
回复

使用道具 举报

 楼主| 发表于 2010-1-18 19:42:03 | 显示全部楼层

回复 #320 天涯海角1216 的帖子

XORLDR 本来有判断是否是被第三方引导器加载的代码,如果是被第三方引导器加载则不会保存设置,但这个版本中这个功能出了点逻辑上的 bug,所以导致了这个问题。XORLDR 第一个扇区中的 CD 13 是读取硬盘,写入的在后边

我现在想知道在你的 NTFS 盘上为什么没搜索到文件,猜想可能是没有把根目录簇列完

[ 本帖最后由 Pauly 于 2010-1-18 19:44 编辑 ]
回复

使用道具 举报

发表于 2010-1-18 19:44:48 | 显示全部楼层
原帖由 Pauly 于 2010-1-18 19:11 发表


麻烦你用 nfi.exe 看一下你 D 盘的根目录扇区号,然后发上来看看(调试信息中显示的是簇号),nfi d: |more,附件中提供了 nfi.exe

我试试,给你看看!
D_NFI.jpg
回复

使用道具 举报

 楼主| 发表于 2010-1-18 19:47:23 | 显示全部楼层
按空格看一下第 2、3 页,File 5 的情况

[ 本帖最后由 Pauly 于 2010-1-18 19:48 编辑 ]
回复

使用道具 举报

发表于 2010-1-18 19:48:42 | 显示全部楼层
这个软件比较牛
收了
谢谢
回复

使用道具 举报

发表于 2010-1-18 19:51:54 | 显示全部楼层
原帖由 Pauly 于 2010-1-18 19:47 发表
按空格看一下第 2、3 页,File 5 的情况


22.jpg
55.jpg

9.jpg

[ 本帖最后由 天涯海角1216 于 2010-1-18 19:55 编辑 ]
回复

使用道具 举报

发表于 2010-1-18 19:59:38 | 显示全部楼层
用GRLDR.MBR或GRLDR里的代码要完全些,或许会多占用一些扇区,也没事的!
回复

使用道具 举报

 楼主| 发表于 2010-1-18 20:00:37 | 显示全部楼层

回复 #324 天涯海角1216 的帖子

43761104/8=5470138=0x5377BA;76243848/8=9530481=0x916C71;
看起来没问题啊,跟你提供的调试信息相符,根目录列举是正确的,照理说不应该啊,用 G4D chainloader /dpanldr 正常的吧,呵呵,搞不懂了
回复

使用道具 举报

发表于 2010-1-18 20:04:00 | 显示全部楼层

回复 #326 Pauly 的帖子

是呀!
用G4D启动里面的PE或引导该分区都没问题的!
回复

使用道具 举报

 楼主| 发表于 2010-1-18 20:07:05 | 显示全部楼层

回复 #327 天涯海角1216 的帖子

这几天没在家,等回去再看看了,谢谢你的反馈
如果用 G4D 的 fsys_ntfs.c,代码体积是一个问题,主要还得移植,还有就是别人的代码我看不懂,呵呵

[ 本帖最后由 Pauly 于 2010-1-18 20:15 编辑 ]
回复

使用道具 举报

发表于 2010-1-18 22:20:55 | 显示全部楼层
原帖由 Pauly 于 2010-1-18 20:07 发表
这几天没在家,等回去再看看了,谢谢你的反馈
如果用 G4D 的 fsys_ntfs.c,代码体积是一个问题,主要还得移植,还有就是别人的代码我看不懂,呵呵


grldr.mbr 中有 bean 写的 ntfs 驱动(好像是用汇编),在时空论坛有过很长时间的开发、测试、讨论,应该比较成熟,或许可以借鉴,也可以跟 bean 讨论一下。

[ 本帖最后由 PTPTPTPTPTPT 于 2010-1-18 22:26 编辑 ]
回复

使用道具 举报

发表于 2010-1-19 08:25:50 | 显示全部楼层
这个小软件很好用!强大而方便。
提点小建议:
1.把“从下一设备启动计算机”那个默认的光标下键改为可自定义设置吧,经常启动后不小心按到那个光标键就重启了,不习惯。还是自定义成自己熟悉的键为好。
2.读出配置.希望能从文件中读出配置,我家里机器与单位的几台机器用了相同的配置,每次改动一些总要重新编写菜单,麻烦。能从文件读出配置就方便了。
3.现在的设置有一点非常好:可以选择启动某主分区后自动激活该分区,并可选择隐藏其它主分区。bootice中实际可实现隐藏显现非主分区,希望可以加上一个选择项,即启动时可选择隐藏某分区(不仅仅是主分区)对于很多用户来讲非常有用,有些分区实际上是用于存放一些重要数据的,不希望被误操作,能够在启动前隐藏就好了,毕竟每次用bootice隐藏还是挺麻烦的。
回复

使用道具 举报

发表于 2010-1-19 13:51:24 | 显示全部楼层
我是原USB硬盘启动PE的,以前为grub4dos 主引导,再改用这个后
遇到的问题
1,老版本引导grldr 没问题,加载速度快,
2,改用新版,发现,新版不能加载老版本的菜单,必须重新设置,
3,新版加载速度比老版慢,好象有搜索的过程,。。。。。。。。。。。好多点后。加载grldr 成功。
3,老版直接加载PE的引导,可进PE,新版加载后不启动,
4,测试我硬盘上,加载,ntldr,bootmgr,均不能启动,选择后屏幕黑,没有反应。
5,最有问题的是,用这个东东后,我的移动硬盘,在think机器上,启动类型里,不是USB—HDD了,变成了,REF.disk,好多机器,插着我的硬盘,都启动不起来,

改回GRUB后,正常了。。。。呵呵。
回复

使用道具 举报

 楼主| 发表于 2010-1-19 14:43:47 | 显示全部楼层

回复 #331 矮人 的帖子

回复:
1、加载速度应该没有什么变化,出现的...是在读取块大小的设置不同,应该没有可以察觉的时间差别吧;
2、新旧版本之间菜单位置可能不一致,故程序不会读取不同版本的菜单,这是一个兼容性问题,以后可以实现读取其它版本的菜单配置;
3、加载 NTLDR 和 BOOTMGR 需要设置对应的分区号(PE文件所在的分区)和启动类型,请确认没有问题;
4、XORLDR 的安装不会修改分区表的形式,最多会修改分区ID(如果选择了【隐藏其它主分区】),为什么变成了 REF.DISK 这个比较费解,我也不知道这个 REF.DISK 是个什么意思,呵呵
回复

使用道具 举报

 楼主| 发表于 2010-1-19 15:52:51 | 显示全部楼层
主题帖子中有一个带调试信息的版本,如果不能启动,可用这个查看一下调试信息,谢谢!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-16 23:49

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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