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

[原创]我的Vista激活成功,修复MBR故障的笔录

[复制链接]
发表于 2007-3-31 01:56:21 | 显示全部楼层 |阅读模式
作者:wwashington AT boletips and newsmth
时间:2007/03/31

说明:欢迎转载,请保持本文件的完整性,包括本文原始出处和相关链接。
原文:http://bbs.boletips.com/blbbs/viewthread.php?tid=57

前天我贴了张图片出来,是关于顺利激活Vista系统而且引导盘的MBR不会被破坏的。
现在说一下其中的细节。经过阅读资料和对比分析,Vista Loader 应该是所有方案
中目前最优秀的。除非将来又出现 VOL 版和大客户 Key,或者出一个很快速并且很
准确的 Keygen,否则暂时没有更方便的激活手段。

基础知识:

即使是Vista Loader,也分为原版和傻瓜版。傻瓜版是在Vista Loader基础上加壳
做出来的,它的好处是一切工作都通过图形界面来完成,用户不需要了解太多细节。
但是致命的弱点是万一有些不兼容的情况发生,傻瓜版就会把您的机器弄死。正如
股评家挂在口上的:股市有风险,入市需谨慎,我们把它修改为:刷BIOS和改MBR有
风险,万一死机责任自负。

下面说一Vista Loader原版的问题。截止到作者发稿当天,目前最新的版本是V2.12。
它的原理是利用Grub(一个Linux下非常流行的启动管理器,提供Grub4DOS的版本),
在启动的时候向原本系统启动时读取BIOS数据的内存写入一些信息,使得操作系统在
检验BIOS的时候误认为它是某种品牌的机器,从而可以使用OEM版的序列号激活。

由于一些原因,导致MBR被刷新后系统无法启动,这跟主板兼容性有关,也跟硬盘的
分区方法有关。象我这种喜欢把C盘划分为110M只装启动文件(类似Linux的Boot区)
的人,就已经碰到无法启动的情况,至于其他人的无法启动原因无法列举,因为我
没有那么多精力搜集死机原因,请您去Google一下"Vista 激活 启动失败"。

如果您使用傻瓜安装包之后系统可以启动并激活Vista,那么恭喜您,可以忽略这篇
文章了。如果您希望找到更安全的、普遍适用于大多数机器的方法,请多花一些时
间阅读并练习,碰到不懂的问题可以到伯乐论坛的"Windows系统"讨论区提问。

案例分析:

我用Vista Loader的傻瓜安装包之后引起无法启动,之后改为使用Vista Loader原版
并且不修改MBR,可以正常启动并激活Vista。如果系统已经无法启动了,麻烦比较大。
首先您要修复WinXp的Ntldr引导器,这时修改版Grub不能正常运行,要用旧Grub进入
Vista并卸载Vista Loader恢复正常引导区(实际运行bootrest),再执行下面的内容。

之所以要修改注册表里的 MountedDevices,是因为MBR被改动后系统重新认盘,如果
在您的机器上没有发生盘符变化的情况,那么请忽略有关修改盘符的内容。这个案例
里面所提到盘符只针对我的电脑,在其他机器上进行修复,请根据实际情况作出改变。
考虑到国际通用性,在英文系统里也可以阅读,激活系统的内容用英文书写。

准备工作:

首先您必须了解Grub是怎样工作的,如果以前没用过Grub那么先找一些资料看看,并
动手熟悉一下,请参考:http://tech.boletips.com/html/win32/20070220/4.html
动手练习使用Grub的最好方法,就是装一个矮人DOS工具箱4.2并且用grub4dos 0.4.2
里的新版grldr替换旧版。启动菜单是 C:\grldr="矮人DOS工具箱 2005 Ver 4.2"

下载最新的Vista Loader(地址在本文附录),并用Notepad编辑install.cmd,查找
"data\bootinst /nt60 %%A",改为"echo REM data\bootinst /nt60 %%A && Pause",
这样做的目的是不要改写MBR从而使得Grub可以在WinXp的Ntldr下正常加载。理由非常
明显,首先机器必须可以正常启动,其次启动后必须在进入Vista之前加载Grub。安装
了Vista Loader后,在WinXp的Ntldr里会加载修改版grldr,而不是矮人DOS工具箱。

激活系统:

My harddisk volume: Disk C is S_Vis , Disk D is S_DOS , Disk J is S_Wxp.
Run Vista Loader(omit data\bootinst), read below to fix Ntldr boot menu.

Part A. Fix MBR Record Steps:

Notes: Boot Win98SE, fdisk /mbr and sys a: c: , then recover Ntldr boot.
Ntldr Fixing Guide, http://tech.boletips.com/html/win32/20070220/1.html

Update MBR, use Vista Boot CD to fix, reboot.
Enter Vista, system report DLL error, reboot.
Enter Vista, Ctrl-Alt-Del call task manager, run Explorer, build config.

Notes: You must backup C:\Boot for future use, if you format hard disk,
the bootmgr file in CDROM root folder, fonts & zh-cn are in boot folder.

Part B. Fix Mount Disk Steps:

1) First find Cmd in start menu, run as Admin, this will enable Reg cmd.

J:\Windows\system32>reg query HKLM\SYSTEM\MountedDevices
......
    \DosDevices\J:    REG_BINARY    57DC57DC0076CFB900000000
    \DosDevices\D:    REG_BINARY    57DC57DC0030143B03000000
    \DosDevices\C:    REG_BINARY    57DC57DC007E000000000000
......

J:\Windows\system32>cd /d E:\Mslib\Boot\Data

E:\Mslib\Boot\Data>reg export HKLM\SYSTEM\MountedDevices Vista_Temp.reg

------------------------------------------------------------------------

2) Using notepad to edit Vista_Temp.reg, remove everything except below.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices]
"\\DosDevices\\J:"=hex:57,dc,57,dc,00,76,cf,b9,00,00,00,00
"\\DosDevices\\D:"=hex:57,dc,57,dc,00,30,14,3b,03,00,00,00
"\\DosDevices\\C:"=hex:57,dc,57,dc,00,7e,00,00,00,00,00,00

------------------------------------------------------------------------

3) Switch to the Cmd line, copy reg file with a new name Vista_Disk.reg

E:\Mslib\Boot\Data>copy Vista_Temp.reg Vista_Disk.reg

------------------------------------------------------------------------

4) Using notepad to edit Vista_Disk.reg, let J:-->C: , C:-->D: , D:-->J:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices]
"\\DosDevices\\C:"=hex:57,dc,57,dc,00,76,cf,b9,00,00,00,00
"\\DosDevices\\J:"=hex:57,dc,57,dc,00,30,14,3b,03,00,00,00
"\\DosDevices\\D:"=hex:57,dc,57,dc,00,7e,00,00,00,00,00,00

------------------------------------------------------------------------

5) Double click to import Vista_Disk.reg, answer Yes when a prompt pops.
If you modify drives directly in registry, that will be dangerous if you
forget something during changing. Notepad gives you more time to verify.

6) Reboot the machine, then you will see all configuration are restored.

相关评论:

http://tech.boletips.com/html/win32/system/20070330/23.html
目前收集到的Vista破解工具

https://dream4ever.org/archive/t-153503.html
【已解决】如何建立XP/VISTA双启动菜单

相关工具:

http://www.bios.net.cn/Article/soft/biosxgrj/18205963376.htm
Vista Loader V2.1.2 激活OEM VISTA

http://bios.net.cn/Article/soft/dnrj/06111449656.htm
Vista傻瓜式破解补丁 V4.8 3.18日更新-BIOS之家

http://www.hot8.cn/down.html
http://www.hot8.cn/vista.rar
Vista kms自动激活工具,主页说是2.5版,实际上是vista自动激活工具(4.0综合版)

[ 本帖最后由 wwashington 于 2007-3-31 04:30 PM 编辑 ]
 楼主| 发表于 2007-3-31 09:00:22 | 显示全部楼层
重要预告:

经研究,不论在WinXp的基础上安装Vista,或者已经有Vista再装WinXp然后
恢复Bootmgr,都可以通过Grldr.mbr文件来直接启动Grldr。原先的方案是
用Bootmgr不能直接启动Grldr的解决方案,先恢复为Ntldr启动再调用。

除此以外,由于Vista Loader占用了Grldr的文件名称,我又确实需要使用
真正的Grub4DOS的Grldr,只好把原版的改名为Grldb了。详细的文档可能要
到晚上才能提供,现在贴出我的配置,对Grub懂行的高手一看就明白了。

我在Grub4DOS的官方论坛找到Grldr.mbr。如果您对Grub4DOS感兴趣,请看:
http://tech.boletips.com/html/win32/20070220/3.html
Grub for DOS 的下载和使用

配置文件:

这里贴出我刚改好的Boot.ini,它已经包含了不需要改任何MBR的激活方法。
请注意direct Grldr只有在Ntldr的菜单下可以使用,而*.mbr的方案则通用。

[boot loader]
timeout=10
default=multi(0)disk(0)rdisk(0)partition(5)\WINDOWS

[operating systems]
multi(0)disk(0)rdisk(0)partition(5)\WINDOWS="Microsoft Windows XP Pro:D" /noexecute=optin /fastdetect
C:\grldr.mbr="Vista OEM_SLP by Grldr.mbr"
C:\grldb.mbr="Load Grub4DOS by Grldb.mbr"
C:\grldr="Vista OEM_SLP direct Grldr"
C:\grldb="Load Grub4DOS direct Grldb"
C:\Boot\Data\Bootsect.dos="Microsoft Windows 98SE DOS"
C:\Boot\Data\Bootsect.osd="OpenBSD/i386 3.8.0 Release"
C:\Boot\Data\Bootsect.red="Redhat Linux For Ent AS4U2"
C:\Boot\Data\Bootsect.sun="Solaris 9U8 x86 DirectBoot"

以管理员身份运行Cmd,然后输入bcdedit,您将看到史上最强的 BCD 配置。

关于{ntldr}的partition=D:说明一下,我的DOS C盘是单纯的FAT16引导盘,
卷标为S_DOS,同时也是可引导的第一主分区。我在扩展分区的第一区安装
WinXp是D盘,卷标为S_Wxp。在第二主分区安装Vista之后,Vista是C盘,卷
标为S_Vis,S_DOS变成了D盘,S_Wxp变成了E盘,为了跟WinXp里的盘符匹配,
我把Vista里的其他盘符号全部提前,而S_Wxp就成了J盘。改天贴图出来。

C:\Windows\system32>bcdedit

Windows 启动管理器
--------------------
标识符              {bootmgr}
device                  unknown
description             Windows Boot Manager
locale                  zh-CN
inherit                 {globalsettings}
default                 {current}
displayorder            {ntldr}
                        {current}
                        {b3f58295-ddfb-11db-8f1e-ce7a8ab7e028}
                        {b3f58296-ddfb-11db-8f1e-ce7a8ab7e028}
toolsdisplayorder       {memdiag}
timeout                 30

Windows 旧 OS 加载器
------------------------
标识符              {ntldr}
device                  partition=D:
path                    \ntldr
description             早期版本的 Windows

Windows 启动加载器
-------------------
标识符              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows Vista (TM) Ultimate (已恢复)
osdevice                partition=C:
systemroot              \Windows
resumeobject            {e857bc7a-ddff-11db-a026-806e6f6e6963}

实模式启动扇区
---------------------
标识符              {b3f58295-ddfb-11db-8f1e-ce7a8ab7e028}
device                  boot
path                    \Grldr.mbr
description             Vista OEM_SLP by Grldr.mbr_BCD

实模式启动扇区
---------------------
标识符              {b3f58296-ddfb-11db-8f1e-ce7a8ab7e028}
device                  boot
path                    \Grldb.mbr
description             Load Grub4DOS by Grldb.mbr_BCD

[ 本帖最后由 wwashington 于 2007-4-2 11:10 AM 编辑 ]
回复

使用道具 举报

发表于 2007-3-31 09:22:12 | 显示全部楼层
太好了,支持一下
回复

使用道具 举报

 楼主| 发表于 2007-4-1 03:49:51 | 显示全部楼层
附录图一:与本文相关的 Vista_Disk.jpg

下面这幅图片是在Vista下的逻辑硬盘分布图。这里有个非常显著的特点,那就是S_Vis(C:)上面显示一个彩色的微软商标,以此表明它就是系统盘。我的S_DOS是引导盘,它是第一个主分区而且也是活动分区,在Vista下它被识别为S_DOS(D:)。至于S_Wxp(J:)原本是S_Wxp(E:),现在的(E:)到(I:)原本是(F:)到(J:)。我为了让其余应用盘、数据盘的盘符跟WinXp系统的完全一致,就用磁盘管理把它改到后面去了,其他盘符各自向前挪一个位置就刚好。

具体步骤如下:S_Wxp(E:)-->(X:),(F:)-->(E:),(G:)-->(F:),(H:)-->(G:),(I:)-->(H:),(J:)-->(I:),(X:)-->S_Wxp(J:),非常简单吧。既然这些盘可以用磁盘管理换盘符,那为什么修复MBR之后盘符乱了不能用这个方法呢?那是因为引导盘和系统盘的盘符在Vista里已被锁定,一旦盘符重新识别出错,只能用注册表来修改。我们没有Grldr.mbr文件的时候只能通过Ntldr引导Grldr,恢复正确的盘符确实非常耗费力气啊。
Vista_Disk.jpg
回复

使用道具 举报

 楼主| 发表于 2007-4-1 03:50:32 | 显示全部楼层
附录图二:与本文相关的 WinXp_Disk.jpg

下面这幅图片是在WinXp下的逻辑硬盘分布图。这里有个比较明显的标记,那就是S_Wxp(D:)上有蓝色的彩条,我用鼠标选中这个盘表明它就是系统盘。我的S_DOS是引导盘,它是第一个主分区而且也是活动分区,在WinXp下它被识别为S_DOS(C:),符合我们使用DOS71/Win98时的常识。至于S_Vis(J:)原本是不存在的,我装WinXp的时候这个分区用了Linux Swap的分区号,所以应用盘、数据盘的盘符排列是(E:)到(I:),后来我用Acronis调整空间并且格式化,它就成了NTFS格式的S_Vis(J:)了。看完这两幅图片,您就明白双系统共存其实是要注意一些细节的。
WinXp_Disk.jpg
回复

使用道具 举报

发表于 2007-4-1 22:05:54 | 显示全部楼层
支持,收藏学习
回复

使用道具 举报

发表于 2007-4-2 05:55:20 | 显示全部楼层
谢谢,再去弄弄
回复

使用道具 举报

 楼主| 发表于 2007-4-2 22:19:41 | 显示全部楼层
原帖由 jjwlkz 于 2007-4-2 05:55 AM 发表
谢谢,再去弄弄

按照Vista Loader的说明,应该是要换号的,在"计算机"-->属性-->更改产品密钥。
回复

使用道具 举报

发表于 2007-4-2 22:38:48 | 显示全部楼层
我在其它论坛上看过的,是不是原创的作者呀?
回复

使用道具 举报

 楼主| 发表于 2007-4-3 00:22:37 | 显示全部楼层
原帖由 xuxuezeng 于 2007-4-2 10:38 PM 发表
我在其它论坛上看过的,是不是原创的作者呀?

是我。我在 boletips/newsmth/wuyou 同步发表的,后来又在 pcshow 和 pconline
发表,如果你在其他站点看到就肯定是别人转贴的。我就发了这五个站,第一个是我
自己的论坛,后面的站点在各自的领域都算是一方的霸主了。

BTW:这个版本已经出了改良版,你可以在 wuyou 看到,也可以去最原始的出处看。
http://bbs.boletips.com/blbbs/forumdisplay.php?fid=17
[原创]真正Vista完美激活,杜绝MBR失败的危机

[ 本帖最后由 wwashington 于 2007-4-3 12:25 AM 编辑 ]
回复

使用道具 举报

发表于 2007-4-3 10:35:24 | 显示全部楼层
虽然不喜欢"猥死她"还是顶一顶..支持一下..
回复

使用道具 举报

发表于 2007-4-3 16:34:03 | 显示全部楼层
哦,原来如此呀,是我多心了!sorry!
回复

使用道具 举报

发表于 2007-4-3 18:46:02 | 显示全部楼层
谢谢,帮我解决了一个激活中的隐患,我自己曾经也碰到这样无法启动的窘迫!后来考虑到可能中激活工具有问题!:P
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-19 18:40

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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