|
发表于 2018-4-8 23:59:33
|
显示全部楼层
本帖最后由 liuzhaoyzz 于 2018-4-11 14:40 编辑
一键primo制作的RAMOS原来可启动,因为某种原因7B蓝屏无法启动的原因分析及解决办法
有时候会碰到这样的情况:用一键原来做好的RAMOS,vdf目录结构和文件名称没变,有时候安装个ghostXP或者WIN7系统到原C盘,从BCD的菜单中选择RAMOS却7B蓝屏启动不了,即使把原来备份的BCD恢复到原C盘也启动不了;或者用grub4dos作为主引导,grldr的菜单从RAMOS的内置菜单拷贝过来,也是一样的结果。而且还有这样的状况,安装ghost之后,BCD里面原来的VHD启动项boot WIM/locate VHD全部失效了,都变成了空白了。这就很让人迷惑了,什么原因导致的呢?
为了找到原因,我们先从RAMOS引导过程说起:这里以主引导bootmgr为例,bootmgr→bcd→grldr,我们来看看grldr引导RAMOS的菜单:
default 0
timeout 0
title vdf/3.63
find --set-root /vdf/3.63/D-RAMOS-2018-0317-16181.vdf
map --read-only /vdf/3.63/D-RAMOS-2018-0317-16181.vdf (hd0)
map (hd0) (hd1)
map --hook
chainloader (hd0,0)/bootmgr
g4d的map命令把vdf镜像仿真出一个磁盘hd0,windows从这个磁盘启动,RAMOS的启动,只需要依赖三个部分:①主硬盘MBR;②原C盘引导文件比如bootmgr、BCD、grldr;③vdf文件。
我们用排除法来找原因,vdf目录结构和文件名称没变,问题肯定不在这里;把原来备份的BCD恢复到原C盘也启动不了,那么问题肯定不在原C盘的bootmgr和BCD上面,那么问题在什么上面呢?一定是在MBR引导扇区上面!
查阅相关资料可知,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驱动无法正常从vdf加载,RAMOS启动是需要Primo的磁盘驱动的,磁盘驱动加载不了,当然7B蓝屏!
解决的办法也很简单,一键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命令似乎也可以。
这是MBR硬盘的情况,GPT硬盘未做深入研究。
经过本人N天的潜心研究,重做系统等各种情况后,导致原来可以启动的RAMOS启动7B蓝屏的情况,原因已基本弄清楚,问题解决起来也很简单,终于解决了RAMOS又一大世界性难题,碰到类似7B的问题,可参考解决!至此,RAMOS启动更加坚固和稳定,不需要重做RAMOS了。敲定解决方案后,希望员外在未来的版本解决这个问题。
|
评分
-
查看全部评分
|