标题: (转贴)真正Vista完美激活,杜绝MBR失败的危机
[打印本页]
作者: 0451lym
时间: 2007-4-20 03:41
标题: (转贴)真正Vista完美激活,杜绝MBR失败的危机
作者:wwashington AT boletips and newsmth
时间:2007/04/01
说明:欢迎转载,请保持本文件的完整性,包括本文原始出处和相关链接。
原文:
http://bbs.boletips.com/blbbs/viewthread.php?tid=61
昨天我发了一篇文章,是关于如何使用Vista Loader模拟品牌机BIOS的OEM_SLP达到
激活Vista系统的目的。当时我并不知道Grldr.mbr可以直接在Bootmgr里启动Grldr,
再加上Vista Loader的原版和傻瓜包都修改MBR导致长时间黑屏,只能先恢复Ntldr
的引导,然后让Ntldr启动修改过的Grldr,从Grldr里加载Bootmgr,激活成功。
这篇文章是针对原文的改进版,所以读者必须具备相应的基础知识,但是不需要完全
按照原文修改启动分区。如果您对Vista Loader不了解,可以参考下面的文章。
参考:
http://bbs.boletips.com/blbbs/forumdisplay.php?fid=17
[原创]我的Vista激活成功,修复MBR故障的笔录
基础知识:
我碰巧在Grub4DOS的官方论坛找到一个最新的Grldr.mbr文件,它可以在Bootmgr和
Ntldr里引导Grldr,这样问题就向着完美解决前进了一大步。因为我们可以通过加载
MBR文件来启动Grldr,就没有必要把Grub的MBR纪录写到硬盘(死机风险很高),也
没有必要把启动区设定为Ntldr的引导纪录。当然,如果已经被Vista Loader搞到不
能启动了,修复系统 fdisk /mbr ; sys a: c: ; winnt 这三个步骤还是要的。
如果要维持 Ntldr 启动请按参考文章做,如果要用 Bootmgr 做引导管理器,可以进
WinXp 之后把 Vista DVD 安装盘的 \Boot\boosect.exe 拷出来,放到一个你可以找
到的目录下,然后进 Cmd 命令行找到所在路径,运行 bootsect/nt60 sys ,重启后
出现 Bootmgr 菜单但不能引导 Vista,重启机器并用 Vista DVD 安装盘修复。
准备工作:
下载最新的Vista Loader(地址在参考文章),并用Notepad编辑install.cmd,查找
"data\bootinst /nt60 %%A",改为"echo REM data\bootinst /nt60 %%A && Pause",
这样做的目的是不要改写MBR从而避免死机的危险。这部分工作跟"修复MBR故障"非常
类似,如果忘了修改脚本而直接使用导致死机,只能按参考文章里的办法解决。
按照Vista Loader的说明安装完毕,您的引导盘根目录会出现一个修改版的Grldr,它
整合了相应的OEM_SLP信息,在Grldr运行时向内存写入欺骗Vista的BIOS资料。同时考
虑到Vista Loader占用了Grldr这个文件名,原版Grub4DOS的Grldr就暂时改名为Grldb
好了,它需要做进一步的修改才能使用,我们把启动菜单的选项做好再改文件。
系统激活:
以管理员的身份运行 Cmd,输入 bcdedit 可以查看当前配置,输入下列指令添加菜单。
注意: 下文所出现的 {id} 其实就是在您每次刚运行完 /create 之后系统返回的数值。
bcdedit /create /d "Vista OEM_SLP by Grldr.mbr_BCD" /application bootsector
bcdedit /set {id} device boot
bcdedit /set {id} path \Grldr.mbr
bcdedit /displayorder {id} /addlast
bcdedit /create /d "Load Grub4DOS by Grldb.mbr_BCD" /application bootsector
bcdedit /set {id} device boot
bcdedit /set {id} path \Grldb.mbr
bcdedit /displayorder {id} /addlast
重启机器,如果直接选 Vista 启动,那么你会发现系统尚未激活,跟什么也没改一样;
如果你先选"Vista OEM_SLP by Grldr.mbr_BCD",屏幕闪耀一下之后回到Bootmgr菜单,
再选择 Vista 启动,那么你会发现系统已经激活,可以用 slmgr -dlv 查看细节。
验收成果。以管理员身份运行Cmd,然后输入bcdedit,您将看到史上最强的 BCD 配置。
关于{ntldr}的partition=D:的原因,是因为Vista把我的引导盘标记为D:盘,而系统盘
标记为C:盘,所以必须这么写。如果引导盘和系统盘是同一个盘,那么通常应该是C:盘。
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
在 Bootmgr 里选择"早期版本的 Windows"会加载 Ntldr,它的启动菜单就是 Boot.ini。
当然您需要注意到,Boot.ini 的内容也会出现在 Bootmgr 里,所以我们可以通过修改
Boot.ini 来达到启动 Grldr.mbr 的目标。说明:direct Grldr 只对 Ntldr 有效。
[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"
持续改进:
刚才说到为了顾及原版的Grub4DOS的使用,已经把原版 Grldr 和 Grldr.mbr 重新命名
为 Grldb 和 Grldb.mbr,但它们并不是随便改个名字就能用的。测试新名字是否能用,
可以把 Grldr 和 Grldr.mbr 移动到其他目录,再重启机器,这样结果才真实可靠。
http://bbs.boletips.com/blbbs/viewthread.php?tid=60
[推荐]WinHex v13.2 SR-11 汉化版,强大的16进制编辑器 (附件是可用的注册机)
想必您已经被无穷多的错误信息吓坏了吧,不要怕,有我在。您先按照上面的地址下载
一个WinHex,然后分别打开 Grldb 和 Grldb.mbr,用 Hex 替换字符串"47524C4452"为
"47524C4442",其实就是替换"GRLDR"为"GRLDB"。修改很简单吧,小心笑掉了下巴。
再次验收。重启系统并且在Grldr/Ntldr/Bootmgr之间来回切换,就是不肯死机,真牛!
请再次注意*.mbr是通用的,Grldr和Grldb只在Ntldr里可用。如果在菜单里碰到 Vista
OEM_SLP 的项目,那么相应的BIOS数据就会被写入内存,只要运行过一次就行,当系统
启动完毕就已经是激活了。如果不论怎么选都不涉及OEM_SLP,那么系统会保持原状。
小结一下:
任何技术成果都是暂时的,不久后就会被更新更强的技术代替。我相信Vista Loader的
作者看到我的文章,一定会研究如何改进脚本,发行通用性更强的新版。至于傻瓜安装
包的作者,也会提供Grldr.mbr的模式和直接写入硬盘MBR这两种做选择。所以,我这边
的研究任务就告一段落了。不好意思,昨晚只顾看电视,弄到熬夜写文章了,抱歉。
我对未来Vista激活的期望,最好是又泄露一个VOL版和一堆正版Key,或者是把OEM版本
和破解(目前最好的是Vista Loader,不排除有新技术产生)直接集成进安装盘,安装时
选择一下,装好后BCD和Boot.ini、两个版本Grldr以及Grldr.mbr都直接能用,爽啊。