无忧启动论坛

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

[求助] GRLDR无法启动硬盘上的bootmgr(已解决)

[复制链接]
跳转到指定楼层
1#
发表于 2013-10-4 17:17:21 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 pppfj 于 2013-10-4 20:45 编辑

这几天给电脑上装多系统,折腾毁了,花了3天就是搞不定,不知是不是bug。情况如下:
1、硬件环境:
   thinkpad X201i,60G的kingmax固态硬盘,等分为3个主分区,各20G空间。BIOS为Phoenix 1.15。
2、软件环境:
   grub4dos 0.4.5c,C盘为win$7。
3、故障现象:
   安装win系统后,安装程序自动修改了MBR,C盘系统可以顺利启动。
   使用winhex小心把grub4dos 0.4.5c版本中的grldr.mbr写入mbr前18扇区,第1扇区只写入446字节,保留分区表。并把第1扇区的512字节一个不拉拷贝到了第2扇区。把grldr悄悄放入C盘根目录,并在每个分区根目录下都放了一个。
   重启系统后,顺利进入grub>提示符,执行chainloader /bootmgr,顺利载入,boot后出错,出错信息见下图:


4、排错过程:
   重新启动到grub>提示符下,执行命令:
  1. grub>root
  2. root is (hd0,0)
  3. grub>find
  4. (hd0,0)
  5. (hd0,1)
  6. (hd0,2)
  7. grub>blocklist /bootmgr
  8. (hd0,0)16160248+750
复制代码
无论如何处理,都无法启动第一分区的bootmgr,但可以用grldr启动第三分区上的PE。插上U盘,从U盘启动grldr,仍无法启动硬盘第一分区的bootmgr。
5、改回原MBR:
   无奈,U启后进入PE,重新用winhex把备份在mbr区第2扇区的512字节写回第1扇区,重启后,又可以顺利启动第一分区的w7系统。
   更奇怪的是,此时如果用U盘启动机器,进入grub>提示符,执行:
  1. grub>chainloader (hd1,0)/bootmgr
  2. grub>boot
复制代码
可以顺利引导系统进入C盘系统,实在是奇怪。
    请教大师,这种情况是bug吗?我是不是无法在硬盘上通过grldr引导多系统了?
2#
发表于 2013-10-4 17:19:10 | 只看该作者
这个问题与G4D 没有关系.
你肯定是修改了 磁盘签名,导致BCD出错,所以才会这样的.

点评

我用chainloader (hd0,1)+1的命令得到的结果和上图完全一样。 难道nt6的MBR的功能不是载入活动分区的第一扇区并移交控制权吗?我一直在怀疑bootmgr启动时是不是检查mbr的某些字节或标志。 如您所述,难道nt6的mbr  详情 回复 发表于 2013-10-4 17:45
回复

使用道具 举报

3#
发表于 2013-10-4 17:21:00 | 只看该作者
你最好用BOOTICE安装到主引导. 不建议用这种手动的方式去安装,在你不熟悉的情况下.
回复

使用道具 举报

4#
 楼主| 发表于 2013-10-4 17:45:22 | 只看该作者
本帖最后由 pppfj 于 2013-10-4 17:51 编辑
sgw888 发表于 2013-10-4 17:19
这个问题与G4D 没有关系.
你肯定是修改了 磁盘签名,导致BCD出错,所以才会这样的.


我用chainloader (hd0,1)+1的命令得到的结果和上图完全一样。
难道nt6的MBR的功能不是载入活动分区的第一扇区并移交控制权吗?我一直在怀疑bootmgr启动时是不是检查mbr的某些字节或标志。
如您所述,难道nt6短短的的446字节的mbr中还存有磁盘签名吗?——我印象里磁盘的uuid是存在于分区中的pbr中的。
回复

使用道具 举报

5#
发表于 2013-10-4 18:23:14 | 只看该作者
这是一个巨大的误区。

MBR 中,除了古老的末尾 64 字节分区表 + 2 字节的 55 AA 引导记录合法标志之外,微软在 NT 系统中还定义了新的磁盘签名域,位于偏移 0x1B8 处,占用 4 字节。

你应该保持 MBR 扇区末尾的 72 字节不动才可以安全启动 Windows。你修改的 446 字节,修改多了,你破坏了微软保存的磁盘签名。你应该只修改 440 字节才正确。

点评

谢谢大师点拨。 看到sgw888的回复后,我一直在google bcd方面的知识,费了半天劲,刚刚搞明白,可巧大师就出手点拨了,双双收获了。这就着手去处理这几个字节。 还是大师的点拨更切中要害,再次谢谢!  详情 回复 发表于 2013-10-4 18:46
回复

使用道具 举报

6#
 楼主| 发表于 2013-10-4 18:46:52 | 只看该作者
不点 发表于 2013-10-4 18:23
这是一个巨大的误区。

MBR 中,除了古老的末尾 64 字节分区表 + 2 字节的 55 AA 引导记录合法标志之外, ...

谢谢大师点拨。
    看到sgw888的回复后,我一直在google bcd方面的知识,费了半天劲,刚刚搞明白,可巧大师就出手点拨了,双双收获了。这就着手去处理这几个字节。
    还是大师的点拨更切中要害,再次谢谢!

点评

本来只是想让你用 工具去解决这个问题的. 因为我觉得你用WINHEX这样直接安装实在不是太方便. 所以也就没细说 磁盘签名的事.  详情 回复 发表于 2013-10-4 20:09
回复

使用道具 举报

7#
 楼主| 发表于 2013-10-4 18:54:26 | 只看该作者
    多系统启动可以很简单,如grldr。我想,ms搞了这么一个不直观的、巨复杂的、很晦涩的BCD,目的就是极为严格限制win系统运行的硬件环境,为各种ghost版本满天飞制造更多障碍。
回复

使用道具 举报

8#
发表于 2013-10-4 20:09:17 | 只看该作者
pppfj 发表于 2013-10-4 18:46
谢谢大师点拨。
    看到sgw888的回复后,我一直在google bcd方面的知识,费了半天劲,刚刚搞明白,可巧 ...

本来只是想让你用 工具去解决这个问题的.  因为我觉得你用WINHEX这样直接安装实在不是太方便.
所以也就没细说 磁盘签名的事.

点评

谢谢你的回复,给我指引了线索,经过学习增加了知识。  详情 回复 发表于 2013-10-4 20:26
回复

使用道具 举报

9#
 楼主| 发表于 2013-10-4 20:26:31 | 只看该作者
sgw888 发表于 2013-10-4 20:09
本来只是想让你用 工具去解决这个问题的.  因为我觉得你用WINHEX这样直接安装实在不是太方便.
所以也就没 ...

谢谢你的回复,给我指引了线索,经过学习增加了知识。
回复

使用道具 举报

10#
 楼主| 发表于 2013-10-4 20:44:04 | 只看该作者
  感谢两位大师的指点,问题已经成功消除。标题修改为已解决,为其它遇到类似问题的人留个线索。
  原来,我写入grldr.mbr后的磁盘签名位置全是0x00,当更正问题再次打开的时候,发现签名位置已经不是00了,不知何时、不知被哪个程序写入了另外的、不同的4个字节。
  不能启动后,我只用U盘启动过PE,只有两个程序有嫌疑:一是被grldr引导但没有成功启动系统的硬盘上的bootmgr启动引导程序;二是PE内核。二者之一在发现磁盘没有签名,偷偷增加了一个?
  MS这么干,很耐琢磨。
回复

使用道具 举报

11#
发表于 2013-10-4 21:37:15 | 只看该作者
多系统启动可以很简单,如grldr。我想,ms搞了这么一个不直观的、巨复杂的、很晦涩的BCD,目的就是极为严格限制win系统运行的硬件环境,为各种ghost版本满天飞制造更多障碍。


关于磁盘签名,微软并未给开源启动软件制造太多障碍,它是明文,没有加密。至于说微软是否在 Windows 系统中把这个磁盘签名用于加密的目的,比如用于正版验证或用户身份验证,这我就不清楚了。这或许就是你所说的 “限制运行的条件”,达到控制用户的目的。

微软从 VISTA 开始,用 bootmgr (和 BCD) 取代了 NTLDR (和 boot.ini),对当时的 GRLDR 造成了冲击。grub4dos 的开发者被迫做出调整,以适应这种变化。但此后的变化均不影响 grub4dos 本身的启动逻辑。直到 Win8 之后主板制造商取缔 BIOS,才又一次影响了 grub4dos。

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-30 20:47

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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