无忧启动论坛

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

[求助] 一个奇怪的引导出错现象

[复制链接]
跳转到指定楼层
1#
发表于 2011-12-23 22:25:53 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
用虚拟VHD在虚拟机上挂了个PE

这个PE是用NTLDR引导的,我之前用bootice处理了grub引导NTLDR

虚拟机里面启动正常。
可是我要把控制权直接交给NTLDR。
于是把MBR设置NT5.x,PBR设置NTLDR。
可是启动就出错了
如图所示:

47#
发表于 2011-12-29 09:37:50 | 只看该作者
使用 bootice 设置分区引导记录,选择“NTLDR引导程序(FAT/FAT32/NTFS)”,其引导代码有待商榷。

它首先使用 int13/08 中断返回的 chs 参数计算磁盘总扇区数。当读取的扇区号小于磁盘总扇区数,则使用 int13/02 中断读扇区(这时的 chs 采用 BPB 表参数)。在实模式下问题还不大,但在虚拟机里,虚拟机认定的 chs 参数(即使用 int13/08 中断返回的 chs 参数),往往与 BPB 表参数不一致,这导致问题产生。

楼主说一开始不行,后来又正常了,那是“经过ABS的备份还原的实验后,今天早上来实验又发现可以引导了”,不知是否修改了代码或参数。

先采用 int13/42 中断,不行后采用 int13/02 中断的修改方法:
把偏移 0x0e0 开始的 663B46F80F824A00 修改为 9090909090909090,
把偏移 0x12a 开始的 6658665866586658 修改为 6190720690909090。

只能采用 int13/02 中断读扇区的情况很少。我遇到的是 bios 识别 u 盘为软盘,隐藏 pbr 前的扇区,修改 BPB 表的“隐藏扇区数” 3f 为 00,修改“驱动器号”80 为 00,禁止扩展读。此时读 0-0-1,即原先的 0-1-1.
回复

使用道具 举报

46#
 楼主| 发表于 2011-12-24 23:02:04 | 只看该作者

回复 #45 不点 的帖子

有料有内幕呀,看来俺们局外人还以为风平浪静
回复

使用道具 举报

45#
发表于 2011-12-24 22:30:08 | 只看该作者

回复 #44 my9823 的帖子

谢谢。既然这样,那就把那一段的字号加大加粗,便于阅读。

呵呵,看官们如果觉得可行,就给那些电脑制造商写信,或者在他们的论坛上贴出来。每天贴它几十个帖子。贴的人多了,他们就不敢太放肆了。

[ 本帖最后由 不点 于 2011-12-24 22:44 编辑 ]
回复

使用道具 举报

44#
发表于 2011-12-24 21:46:59 | 只看该作者
**,不点老大你的广而告之太牛x了,鼓掌!!
回复

使用道具 举报

43#
发表于 2011-12-24 20:31:03 | 只看该作者
既然已经有很多 题外话 了,就顺便再说点 题外话 吧。任何事情,都有 “ 两面性 ”。当初随意开发一个软件,不曾想,它却早早都被 “ 盯上 ”,并不断遭受 “ 封杀 ”。——说到此处,打断一下,也许有人反驳,说 “ 不曾有人封杀 grub4dos ”。好了,那是你的见解,不关我什么事。你说没人封杀 grub4dos,那或许有人信。但你假如想说的是任何软件都不曾遭到封杀,那就太 “ 过火 ” 了,没人信了。

言归正传。当我发现 grub4dos 遭到封杀的时候,我首先感到十分震惊,其次感到十分恼火,再次感到我必须担负起责任,站好这个岗,竭尽全力击退所有封杀的企图,不让他们轻易得逞。让封杀者即使干掉了 grub4dos,它自己也得受伤挂彩。其实这也是可以理解的心情,任何人都不希望 “ 自己的工作白做了,自己的日子白过了 ”。不管我的工作有多大还是多小,不管我是出于兴趣还是为了发财,我的所作所为,我自己负责,岂能容忍别人来摆布自己的命运?人都是一样的,都要争一口气。为了争一口气,生命都在所不惜。为了争一口气,可以打官司。为了争一口气,可以行凶。大家都是一样的心情。假如当初没有人封杀的话,可以坦白地说,我根本不可能坚持这么多年一直开发 grub4dos,最多也就一两年就没有兴趣了。而那时,距离我第一次得病还早着呢。正是封杀者造就了我这么多年的坚持。不解决封杀问题,决不罢休,死也要对抗到底!

这就是 “ 哲学 ”:封杀的效果,不一定比本来就不封杀强。敌人都是自己树立的。自己不树立敌人,那很可能就没有敌人。正如本帖,可能一开始就是我自己树立了敌人。万事万物,其道理是相通的。

要封杀,就一定要制造不兼容。而制造不兼容,却是 “ 双刃剑 ”,既可以杀别人,也可以杀自己。这是封杀者应该得到的、符合逻辑的结果。这里没有幼儿园的小孩,因此这结果也就不用明说了。

哦,还要补充一点。当初只是写一个 grub.exe 运行于 DOS 下,假如没人封杀的话,我怎么可能后来又学了很多关于 A20 的知识?怎么可能把每个中断反反复复研究?到后来往操作系统上发展,更是当初不可能想象的事情。

广而告之:硬件制造商们!你们是干什么的,你们自己心里是明白的。假如你们没有封杀开源软件的主观意图,你们一定要小心。你们所采用的芯片组可能是别人早已设计好的。那是用来封杀开源软件的芯片组。你们要小心,排除掉那些恶意的 bug,或者采取 workaround,即后续的硬件补救措施。否则你们就有意无意的成为了封杀者的帮凶。假如你们本来就是帮凶,那也无所谓了。但假如你不是的,那很冤枉。不是说我要冤枉你,我怎么想,都没用,我一个人,没有什么力量。你要是能保证众人不冤枉你,而且将来的大众都不会冤枉你,那你就是成功的。假如你不是帮凶,你最好测试开源软件的运行,尤其是 Linux 等著名大型软件,当发现没什么问题以后再发布你们的硬件。否则你怎么可能洗清你自己?难道你们的硬件一定要给大众一个铁定的印象:经过严格权威认证的、绝对不支持开源软件的电脑!非要如此,那么你们一定会遭到报应!等报应来到的时候,没人救你,上帝也不救你的。

比如说,我本人由于开发 grub4dos 的关系,了解到 intel 有主板、显卡等外设不能顺利运行 grub4dos。其实是说故意 “ 设卡 ”。甭说已经有好几个证据了,哪怕只有一个证据,那在我的心目中,你 intel 就是一个帮凶无疑了。你想改变我的想法,那简直 “ 蜀道难,难于上青天 ”。既然如此,那么在与 ARM 的芯片竞争中,我就没有理由倾向于你 intel 了,而是有可能更倾向于 ARM。就是说,虽然你只是在主板等外设上有问题,但你丢掉的却是整个品牌形象,这是无形的损失,其损失之大,无法用现金的多少来估量。

[ 本帖最后由 不点 于 2011-12-24 22:27 编辑 ]
回复

使用道具 举报

42#
发表于 2011-12-24 19:04:42 | 只看该作者

回复 #40 wannaknow 的帖子

“ 下划线 ”,或者 “ 斜体 ”,是 “ 西式 ” 表示强调的方式,不喜欢。那玩艺像一道 “ 完型填空 ” 的题,有些 “ 难受 ”。而且在打字时,与敲入 “ 粗体 ” 的格式一样很麻烦。而且,从未见到有人用这些方式表示强调。倒是屡屡见到有人用很大的彩色字来表示强调的。
回复

使用道具 举报

41#
 楼主| 发表于 2011-12-24 18:22:22 | 只看该作者
好吧,其实导火线在于我……
不管怎么样,你们彼此都没有恶意。只是在观点上的争论升华到语言的火星罢了。

如果可以的话,强烈欢迎再弄个基情版块。然后直播╮(╯_╰)╭ 好像想的有点歪了。
回复

使用道具 举报

40#
发表于 2011-12-24 18:00:58 | 只看该作者

回复 #39 不点 的帖子

你可以这样:

你们俩在技术上的观点事实上是一样的。
或者下划线。

http://bbs.wuyou.net/faq.php?action=message&id=18

[ 本帖最后由 wannaknow 于 2011-12-24 18:06 编辑 ]
回复

使用道具 举报

39#
发表于 2011-12-24 17:29:40 | 只看该作者
知道了,是我多疑。我有这毛病,一时也难以改掉啊。还请原谅了。

别为 双引号 多心。我一直使用双引号,表示 “ 强调 ”,不表示 “ 反义 ”。这是我的习惯。你看我别的帖子,都是这样的。看来我得改用别的方式来表示强调了,淘汰有歧义的双引号。这是我的错,但我也觉得 “ 冤枉 ”,因为汉语缺乏一个表示强调的符号。“ 着重号 ” 不适合用于电脑(甚至 GB18030 里面究竟有没有 “ 着重号 ” 的一席位置,我都感到怀疑,即使有它,但 “ 怎么使用它 ” 也是一个疑问)。看来这个问题应该提交 “ 文字改革委员会 ” 了。今后,在 “ 文字改革委员会 ” 出台 “ 新方案 ” 以前,我可能 “ 不会说话 ” 了,正如 “ 邯郸学步 ” 的故事那样。

[ 本帖最后由 不点 于 2011-12-24 17:56 编辑 ]
回复

使用道具 举报

38#
发表于 2011-12-24 17:21:44 | 只看该作者
说到底,还是多疑引起,你也不想想,不是你先说我错了,我会回复你帖?由头至尾说过grub4dos的哪句不中听的话?攻击你的逻辑是从哪分析出来?手机看帖有些慢,不过就你楼上的两个双引号,我觉得你道歉太没必要,或许反过来是我多心了

[ 本帖最后由 2010_zheng 于 2011-12-24 17:27 编辑 ]
回复

使用道具 举报

37#
发表于 2011-12-24 17:19:38 | 只看该作者

回复 #36 2010_zheng 的帖子

那我真该向你道歉了。一个真正的攻击者,还真不会像你这样呢,至少以前没有这样。

实在对不起,请你原谅。就当我没有说过那些过于 “ 张扬 ” 的话吧,我为曾经说了那些过分的话来对付自己的 “ 队友 ” 而感到羞愧。对不起!
回复

使用道具 举报

36#
发表于 2011-12-24 17:14:09 | 只看该作者

标题

原帖由 不点 于 2011-12-24 16:16 发表
是的,连同你上一个帖子一起回复吧:

>>> 我终于明白,一个人如果始终认为别人在攻击他的话会很累,怪不得一小段回帖会遇到如此回复。也不难理解为什么说我错了。

我看了霍金的《大设计》一书,觉得整个地 ...

该说的终于在你最后编辑的几句中说出来了,呵呵,太不好意思了,我在用grub4dos,又得罪了你,早知道你会拿这个说事,我就不敢得罪你老人家了,算了好吗?给我继续用吧,我这里没说过grub4dos坏话啊,我只是问问你错在哪而已嘛,现在可更不敢再纠缠问下去了
回复

使用道具 举报

35#
发表于 2011-12-24 16:16:06 | 只看该作者

回复 #33 2010_zheng 的帖子

是的,连同你上一个帖子一起回复吧:

>>> 我终于明白,一个人如果始终认为别人在攻击他的话会很累,怪不得一小段回帖会遇到如此回复。也不难理解为什么说我错了。

我看了霍金的《大设计》一书,觉得整个地球都很渺小。一个人、一件事,那都是微不足道的。很快就会被遗忘。争论、口角,全都是浪费。为什么呢?因为别人主要是来看技术的,谁有闲工夫去注意打架斗殴的帖子?谁去花费精力来分辨谁对谁错?一切皆是 “ 过眼烟云 ”。

你对我个人有任何 “成见”,我完全不在乎。你用不用 grub4dos,我也完全不在乎。假如你一直在用 grub4dos,今天就因为我的某句话惹你不高兴,让你远离了 grub4dos,我认为,那是不可能的。就算是那样的,也一样是浩渺太空中一个被厚厚的大气层掩盖之下的一群能生产粮食和制造核武器的生物的某些奇怪的行为罢了,很渺小,非常之渺小.......非常...非常之渺小......(很抱歉,我是中国人,又在运用汉语的丰富表达能力了......)

别 “ 气馁 ”。假如你不是攻击者(我说 “ 万一 ”),你看到我这么难以对付,你应该至少感到一丝高兴,连你都对付不了,又怎能对付真正的攻击者呢?一个优秀的乒乓球运动员,不就是需要战胜自己的队友才能夺取世界冠军吗?因为确确实实在以往的几年,我们遭到了大量的攻击。注意,这不仅仅是我个人,而是整个开发团队。我们有证据的,如果你一直关心着我们,你也一定知道这事。论坛、网站、管理员、开发者,统统遭到了攻击。你 “ 可以 ” 不是攻击者,但你不可以否定别的攻击者的存在,如果你敢试图否定,那我可以断定,你就是攻击者无疑了,因此给你最终判个死刑,让你心服口服。

[ 本帖最后由 不点 于 2011-12-24 17:16 编辑 ]
回复

使用道具 举报

34#
发表于 2011-12-24 16:13:36 | 只看该作者
楼主的问题,我之前就已经找到问题的原因了,当使用GRUB4DOS做为主引导时,因为它有自己的CHS探测机制所以不容易失败.  使用ABR还原软件,分区BPB参数表,主要是磁头数一般会被认为是16,如果这儿的磁头数是错的,那么使用微软的MBR引导就会失败(除G4D外的其它大多数引导程序也会失败)

分区表部分的CHS参数跟分区DBR 扇区BPB参数表要一致才行.
回复

使用道具 举报

33#
发表于 2011-12-24 16:07:15 | 只看该作者
呵呵,同意,无论我有没得说我错在哪的解释,也已经不重要了
回复

使用道具 举报

32#
发表于 2011-12-24 16:04:40 | 只看该作者

回复 #30 2010_zheng 的帖子

无论你是不是攻击,都无用。帖子到这里,已经没有价值了。主要是,技术已经弄清了。

是攻击咋了?不是攻击又咋了?都没人再看了。

if 是攻击,

别人不会认为不点在 xxx 方面有毛病,或者 grub4dos 有某个不存在的缺陷,攻击的目的达不到,完结。

else

什么事都没发生,也完结。

都完结了。

我只不过是按照我的逻辑、用我的分析,怀疑你是攻击者,并且把它 “ 明说 ” 出来而已(所谓  “ 明人不做暗事 ”)。至于说别人信不信,我哪有那能力来决定啊?一切得看自己的 “ 造化 ” 了,谁都无法控制别人的思想。特别是,假如你是攻击者,而你想控制别人的思想,那也一样的,没那么容易。这里没有幼儿园的孩子。

[ 本帖最后由 不点 于 2011-12-24 16:38 编辑 ]
回复

使用道具 举报

31#
 楼主| 发表于 2011-12-24 15:58:00 | 只看该作者
可别升华 - - !讨论而已讨论而已。角度不同,角度不同……

和气生财和气生财~
回复

使用道具 举报

30#
发表于 2011-12-24 15:53:32 | 只看该作者
呵呵,看了不点编辑后的回帖,我终于明白,一个人如果始终认为别人在攻击他的话会很累,怪不得一小段回帖会遇到如此回复。也不难理解为什么说我错了。
回复

使用道具 举报

29#
发表于 2011-12-24 15:44:25 | 只看该作者

标题

原帖由 不点 于 2011-12-24 15:02 发表
我首先指出你的一个错误:你说你从来没有说我错了,但是,你指出我说你错了,你不满意(或者否认),这本身就是说我错了。论坛、论坛,本来就是辩论的地方,本来就有 “ 正确 ” 与 “ 错误 ” 的争辩,回避它, ...


呵呵,不承认错误居然可以理解成一样认为你错,不得不感叹中文的博大精深和对文字灵活应用的重要性,呵

你看不懂我#3从微软的角度说,那如果从grub4dos的角度上说我能那样描述吗?呵呵,也许我汉字的确运用不灵所以大家看不清楚了

也许一开始就应该说清楚微软的落后,这样就不会引起第一感觉好象我在否定某些事那样了
回复

使用道具 举报

28#
 楼主| 发表于 2011-12-24 15:24:10 | 只看该作者

回复 #26 wannaknow 的帖子

为什么软件不做这个功能去干涉这仨蛋疼的玩意儿呢
回复

使用道具 举报

27#
发表于 2011-12-24 15:21:22 | 只看该作者
原帖由 wannaknow 于 2011-12-24 14:13 发表
我认为,ms的fat引导的整个思路就是“脑残”的思路。如果ms从一开始就不在bpb里保存dl值和chs参数,而是坚持使用bios传递的dl和int 13h返回的chs参数,那么就不会有现在的混乱了。


好像没这么简单。

我觉得那可能是历史遗留的问题。是逐步的发展所造成的。当初只有软盘的存在,而最初的软盘没有 int13/ah=8 的功能调用。甚至今天的软盘(包括 USB 被识别为软盘时)也可能没有 int13 的功能 8。于是才有 BPB 表决定软盘的几何参数。这不是 MS 的错误,而是历史遗留的问题。
回复

使用道具 举报

26#
发表于 2011-12-24 15:18:00 | 只看该作者

回复 #24 不点 的帖子

这仨会严重影响默认xp版fat引导扇区的启动成功率。

比如一个一般的u盘,在我的电脑上u启是0x80   255   63。

如果我手动把bpb里的盘号改成0x80,默认xp版fat引导扇区就能直接u启成功。

但是xp很喜欢纠正这个“错误”的盘号,因此经常会坏掉,失败。

我后来改了引导程序一条指令,使其相信dl而不是bpb里的盘号,就不怕xp手欠了。
回复

使用道具 举报

25#
发表于 2011-12-24 15:08:02 | 只看该作者

回复 #21 小豪diao 的帖子

这仨是保存在你那分区的第一扇区上的。格式化的时候这仨会被改写(一般是255/63,盘号对于“类软盘"u盘是0x00,移动硬盘是0x80)
平常,这仨一般不变,你可以把它们改成别的,我只知道xp手欠,喜欢改盘号。
你的所谓“折腾”,就会改写这仨了,所以有时候“折腾”会影响u盘的启动兼容性。
回复

使用道具 举报

24#
发表于 2011-12-24 15:05:53 | 只看该作者
原帖由 wannaknow 于 2011-12-24 14:42 发表
我觉得bpb里不止H和S可以错,DL号也可以错。

或者说,这仨就不该存在。


这都是细节了。总扇区数错了也没关系。
回复

使用道具 举报

23#
发表于 2011-12-24 15:02:21 | 只看该作者
我首先指出你的一个错误:你说你从来没有说我错了,但是,你指出我说你错了,你不满意(或者否认),这本身就是说我错了。论坛、论坛,本来就是辩论的地方,本来就有 “ 正确 ” 与 “ 错误 ” 的争辩,回避它,是没有用的。

我要是错了,根本不怕人指出。谁指出错误,我感谢谁。

如果我对你有 “说教”,我道歉。但是我自认为主观上从未有这种念头。

>>> 倒是我从MS的引导角度上对楼主而说的#3的说法哪一点错了,请明示!

可惜的是,你在 3 楼并未特别指明是以 “微软” 的思路来说的。你不指明,别人就可以随意理解。所以说,别人理解“ 错 ” 了,并且又反过来说你 “ 错 ” 了,这都很正常,没啥奇怪的。这里不是 MS 论坛,而是 grub4dos 论坛,大家的讨论,肯定不愿意停留在若干年前的 MS 的水平上,而是希望用最新的技术,给出最有力的答复。我们不能 “ 以老眼光看新问题 ”,因为那是 “ 裹足不前 ”。以一种眼光看问题,那结果可能判定是 “ 对 ” 的。但换个角度,以另外一种眼光看同一个问题,则可能判定是 “ 错 ” 的。这不稀奇,很正常。我觉得是你理解力有问题,所以,看到一个 “ 错 ” 字,就以为是挨 “ 批评 ” 了。事实上,“ 对 ” 和 “ 错 ” 都是正常的。

>>> 还是不允许我从ms的引导角度上说

当然不会是这样的。

>>> 可是楼主的出错提示明明就是ms的错误提示

失败是 MS 的失败,但原因的探讨,可以超出这个范围吧?总不能一直停留在 MS 的范畴而不能前进一步吧?你来到这里,你也经常使用 grub4dos,这本身不就说明,你是超出 MS 的范畴了吗?

>>> 呵呵,好象没人说不点说错了

我不是神。说错了是有可能的。高深技术讨论,难免出现错误。出错不丢人。不出错恐怕才不对劲。

>>> 可是楼主的出错提示明明就是ms的错误提示,呵呵,你永远是对的,可是我错在哪的确不清楚。

我认为,你这句话,暴露了你的 “攻击性”。就是 “ 你永远是对的 ” 这句。不过,我声明,我完全不在乎,任何攻击,对于我来说,都等于 0,完全与不存在是一样的,我也不可能计较。

>>> 所以,引导功能强大当然是 grub4dos,但兼容性还是不好判断

既然你的身份是 grub4dos 的用户,所以,我有理由 “ 不失时机地 ” 向你推销 grub4dos,顺便也为 grub4dos 做一个广告。grub4dos 除了功能强大以外,兼容性还 “ 真的 ”不错。楼主的问题就是一个证明。假如你是一个攻击者的话,你能够承认 grub4dos 的强大功能,这也算是 grub4dos 多年被打压而仍然有生命力的极好的证明:连攻击者都不得不承认了。如果你不是攻击者,你不要在乎我说的话,而且我相信,你甚至能够理解我。——对不起,我又把我的哲学运用到这里了,用来对付潜在的攻击者。向攻击者们说声 “ 对不起 ” 了!

[ 本帖最后由 不点 于 2011-12-24 15:58 编辑 ]
回复

使用道具 举报

22#
发表于 2011-12-24 14:48:13 | 只看该作者
苦命的楼主,不过没关系,有争论才有动力撒!
回复

使用道具 举报

21#
 楼主| 发表于 2011-12-24 14:47:03 | 只看该作者

回复 #20 wannaknow 的帖子

有个问题,那,什么h,s,dl ,出错,那经过各种折腾后,早上又都全部正常了
之前是说那些是在格式化后就固定了。这点有点乱
回复

使用道具 举报

20#
发表于 2011-12-24 14:42:38 | 只看该作者

回复 #17 不点 的帖子

我觉得bpb里不止H和S可以错,DL号也可以错。

或者说,这仨就不该存在。
回复

使用道具 举报

19#
 楼主| 发表于 2011-12-24 14:36:26 | 只看该作者
我就是墙头草,刚开始就是看谁说的有理就觉得谁是对的,后来就发现了两个人从两个角度分析。没有对错之分。
总之受益者无非是楼主我啦~好多新词汇,我得去搜索下,扩展下这方面的知识。嘎嘎

[ 本帖最后由 小豪diao 于 2011-12-24 14:38 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-3 06:48

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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