无忧启动论坛

标题: [分享]重建MBR导致磁盘签名更改后的BOOTMGR菜单修复 [打印本页]

作者: jneny    时间: 2010-8-5 16:41
标题: [分享]重建MBR导致磁盘签名更改后的BOOTMGR菜单修复
bootmgr的引导成功和磁盘签名和offset值有关。
磁盘签名位于 MBR中的0x1B8位置 4个字节。

我用bootmgr去引导XP。然后fdisk /mbr 修复后。磁盘签名发生更改。不能正常启动。用WINDOWS7安装光盘上的修复功能居然找不到启动项。 当然也无法完成修复。

我只能手动修复。
因为BCD中配置grub4dos的device值是 boot ,所以磁盘签名损坏也能照样启动。那么BOOTMGR上有个grub4dos入口很方便

引导进入后引导硬盘上的winpe
打开winhex - 工具 - 打开磁盘 - 跳转到 0x1B8 这里是磁盘签名。 比如我的是 01 c0 01 c0 (4个字节)

运行bcdedit /import c:\boot\bcd
bcdedit  /v 获得了硬盘上BCD原有的引导项的GUID 记录下来
在注册表中找到刚才刚才记录的GUID,比如 HKEY_LOCAL_MACHINE\BCD00000000\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Elements\110000011 项下的Element值

在0038的位置记录着磁盘签名


把这个改成新的磁盘签名。或者把 MBR中的改成原来的签名。
还有别忘记了ramdisk这些隐藏的项
用bcdedit /enum all /v
作者: yangyangzhifeng    时间: 2010-8-5 17:12
能不能直接修改磁盘签名,使其与bcd中记录的一致?纯猜测
作者: yueyezhan    时间: 2010-8-5 18:30
原帖由 yangyangzhifeng 于 2010-8-5 17:12 发表
能不能直接修改磁盘签名,使其与bcd中记录的一致?纯猜测


可以的,比如你搜索到注册表对应的bcd中的{id}的mbr签名显示的为29 f8 82 bd,你在cmd下运行diskpart
然后
sel disk x  定位到要修改mbr签名的磁盘
uniqueid disk id=bd82f829


就可以了
作者: jneny    时间: 2010-8-6 09:18
原来diskpart就可以了。显示出来的结果是反的
作者: a20120227    时间: 2021-5-9 14:42
请大神写一个备份还原签名的工具
作者: wang6688    时间: 2024-2-22 13:06
学习了谢谢。




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