|
4#
发表于 2018-6-17 21:30:36
来自手机
|
只看该作者
本帖最后由 liuzhaoyzz 于 2018-6-17 21:36 编辑
查阅相关资料可知,MBR被分为三个部分:
第一部分为Bootloader(主引导信息),占446字节,它包括两项内容:
a) 主引导程序(偏移地址0000H--0088H),负责寻找可引导分区并将可引导分区的引导扇区(DBR)装入内存;
b) 出错信息数据区,偏移地址0089H--00E1H处为出错信息,00E2H--01BDH处全为0字节。
第二部分是DPT(Partition Table,分区表),占64个字节,DPT含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节。第一个部分为Bootloader(主引导信息),每个DPT中16个字节的偏移地址及具体含义参见相关资料。
第三部分是Magic Number(结束标志字),占2个字节,结束标志字偏移地址在01FE--01FF,其值为55AA,如果该标志错误系统就不能启动。
其中第一部分偏移地址01B008开始的四个字节保存着主硬盘的磁盘签名,这是我们重点要关注的东西:磁盘签名是Windows系统在对硬盘做初始化时写入的一个标签,它是MBR扇区不可或缺的一个组成部分,Windows系统依靠这个签名来识别硬盘,如果硬盘的签名丢失,Windows系统就回认为该硬盘没有初始化。ghost会改变磁盘签名,导致RAMOS中的windows会认为主硬盘没有初始化而导致蓝屏。
解决的办法也很简单,一键primo在制作RAMOS之前,手工先把磁盘签名备份下来即可,因为单独备份磁盘签名的工具很少,上面说了磁盘签名位于MBR的0扇区,那么我们可以用bootice的扇区备份功能把0扇区备份到MBR0.bin中,当然这个备份可以提前交给一键批处理来做,前提是一定要找准主硬盘是哪个,特别是对于多硬盘的情况,批处理不能弄错。
对于没有提前备份磁盘签名的情况,在任意一个系统中用diskgenius导出xxx.vdf中c:\windows\system32\config\system,运行regedit,选择HKEY_LOCAL_MACHINE,加载c:\windows\system32\config\system文件到注册表配置单元111,mounteddevices下面就可以看到磁盘签名,主硬盘右侧的前四个字节就是,然后手工用bootice的扇区编辑功能修改0扇区01B008开始的四个字节,保存即可。
以后如果RAMOS启动不了,用bootice手工或者用批处理自动恢复MBR0.bin到主硬盘的0扇区即可,安全起见,推荐用手工恢复,注意我们的目的就是修改磁盘签名,所以不能勾选【保留磁盘签名和分区表不变】,我们只备份了0扇区,所以不会影响分区数据。当然dd.exe命令似乎也可以。
http://bbs.wuyou.net/forum.php?m ... &fromuid=298214
有图有真相
|
|