无忧启动论坛

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

[分享] [视频]关于“基于primo差分vhd-win7-ramos v1.1”的成功尝试后的心得分享

    [复制链接]
跳转到指定楼层
#
发表于 2014-3-17 22:32:31 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 a19715 于 2014-7-21 21:43 编辑

原文地址:http://user.qzone.qq.com/1543764927/blog/1351430770
一、关于引导过程详解:
这些天搞Ramos学到最多还是关于引导,为了方便理解我画了一张图

一般win7的启动过程:BIOS->MBR->Bootmgr->BCD->Winload->内核加载
现在的情况:BIOS->MBR->Bootmgr->BCD->grldr-> Bootmgr->BCD->winload
详细说现在的情况:BIOS->MBR->Bootmgr->BCD
                  ->grldr->读取menu.lst->map (hd0) (hd1)//这里grldr首先将系统硬盘置换为hd1磁盘
                                                           ->map (hd0)406455777+61462800 (hd0)//注意最后一个(hd0)前面有空格,说明这个也是类似上面的map (hd0) (hd1)置换命令,这里是把磁盘上⑤(如图表示⑤的扇区范围)的扇区,虚拟为hd0磁盘。这个命令不是加载到内存,而是在磁盘本地中map。
                                                            ->map --hook//它的作用是使前面map命令指定的映射立刻生效。
                                                            ->chainloader (hd0,0)/bootmgr//这里从hd0,0启动了系统,也就是前面说的⑤号区域的磁盘扇区,启动应该是引导了bootmgr文件

Bootmgr->BCD //启动项是win7_c.vhd,从boot启动              关于bootmgr做了什么,what does this bootmgr do?
  ->winload(差分盘上的)
       Bootmgr一开始虚拟了vhd盘,具体呢bootmgr是先读取了启动分区前面的MBR(MBR中包含了磁盘大小、相关扇区位置、VHD子母文件在磁盘的位置的一些信息),通过这些信息,bootmgr会找到相关扇区的子母盘文件,通过子母盘来生成VHD盘,应该是先读取了母盘(同时生成内存盘,内存盘是在加载完了start=0的那些sys驱动以后生成的),之后会加载子盘补充对原来通过母盘生成VHD的修改
二、原理
核心是 分区2模拟了分区1
1. 系统Bootmgr会先读取当前启动磁盘前面的MBR数据,MBR数据记录了相关VHD文件的磁盘位置,
2. 因为d盘前面的63个扇区被C盘的MBR覆盖,所以系统Bootmgr会认为是在C盘启动,所以它会读取C:\vhd\win7_c.vhd,而这个c:\vhd目录是由P驱动的内存盘mklink链接过来的,所以系统实际读取的是位于内存盘上的vhd\win7_c.vhd差分文件
3. 系统会继续通过差分win7_c.vhd启动
4. 相关教程的讨论
关于最近比无忧较火的教程:[分享] [2014.03.09 更新]4G内存也玩Primo Ramdisk制作的Win7内存系统 (含制作过程的视频)也用到了wuzhong大大的方法,
复制C.VDF为Ramos.vdf,通过了G4D引导,Ramos.vdf做启动盘(类似这里的分区二-D盘)启动C.VDF(类似这里的分区一c盘)是相同的原理,都要求MBR一致,因为镜像相同MBR当然一致的。
5.为什么D盘要小于C盘
参考前面bootmgr做了什么,mbr中包含磁盘大小,如果D盘大于C盘,那么bootmgr在读取被修改的MBR后就不会承认D比C盘大的那部分区域,因此就不可用了,感兴趣的可自行尝试。
三、我的VM10下的实践过程:
相关文件VM10;win8PE; win7lite7658ex(240)免费企业版
Primo ser5.6;VHDX_OneKey_2013.exe;BCDICE1.0以上版本;G4D0.46版本

1. 第1次进WIN8PE规划磁盘
直接载入光盘win8PE,在win8PE下通过DG建立ntfs格式的两个2主分区 格式化后为C:,D:,要求C盘大于D盘的容积,且在CD盘之间预留出了些未分配空间(大约几十M就够了)
2. 安装系统
只要有可以正常启动VHD就行,当然VHD的BCD要处理(win7启动项,设备类型 Partition ,启动磁盘 BOOT)我说下我试验的做法,
Win8pe下 创建容量合适vhd,为了试验我创建了1.5G的,位置d:\vhd\win7.vhd(动态、VHD上压缩磁盘),把win7lite7658ex.exe部署到VHD,用VHDX_OneKey_2013.exe在空磁盘C盘(必须是第一分区)上添加了启动项,重启进WIN7安装完,在CMD下添加注册表(不管有没有用填着玩。O(∩_∩)O~):
1.reg add hklm\system\ControlSet001\services\FsDepends\Parameters /v VirtualDiskExpandOnMount /t REG_DWORD /d 4 /f >nul 2>nul
2.reg add hklm\system\ControlSet001\Control /v BootDriverFlags /t REG_DWORD /d 4 /f >nul 2>nul
3.reg add hklm\system\ControlSet001\Control\PnP /v PollBootPartitionTimeout /t REG_DWORD /d 30000 /f >nul 2>nul
3.安装P驱动添加内存盘
安装Primo ser5.6生成一个IO模式内存盘,选择智能镜像1.5G和VHD一样大,仅加载, 目的是使用时内存动态增加。镜像文件存哪随意,这里c: \PR-image-B.vdf,然后重启下一环节。
4、重启系统第2次进WIN8PE
    4.1 在win8pe下用VHDX_OneKey_2013.exe创建差分盘win7_c.vhd
    4.2 在win8pe下安装Primo ser 5.6,加载第一分区的PR-image-B.vdf文件盘符B:,把80kb左右的win7_c.vhd复制到B:\vhd目录下
    4.3Win+r打开CMD,输入mklink /j c:\vhd B:\vhd,为第一分区-C盘添加B:\vhd的链接目录

5.用bcdice将C盘的MBR写入D盘前面未分配的扇区
     (1)先备份C的MBR:如图,63个扇区
    (2)再写入到D盘前面63个扇区(C盘根据起始扇区号63),6340397-63=6340334
               
6.修复相关引导
           6.1 将第一分区-C盘的BOOT目录和BOOTMGR复制到第二分区-D盘上,打开BCDICE处理第2分区的BOOT\BCD,删除原有的BCD,并在该位置新建BCD,添加win7_c.vhd启动项,启动磁盘选"BOOT",设备文件项填"\vhd\win7_c.vhd"
          6.2用bcdice处理第一分区-C盘的BCD
将G4D的grldr和grldr.mbr文件复制到第一分区-C盘,用BCDice处理C盘的BCD,添加一个G4D启动项
          6.3将如下内容保存到第一分区C:\menu.lst
  1. title primo win7_c.vhd
  2. map (hd0) (hd1)
  3. map (hd0)63040334+52302963 (hd0) [color=seagreen]//这里要根据你的系统实际情况填写,注意空格[/color]
  4. map --hook
  5. chainloader (hd0,0)/bootmgr
复制代码
7.一些图片(留纪念)



四、相关视频教程

视频说明: 视频说明.rar (1.43 KB, 下载次数: 245)

点评

好  发表于 2015-11-14 17:09

评分

参与人数 2无忧币 +10 收起 理由
古今一梦 + 5 很给力!
20090101 + 5 很给力!

查看全部评分

推荐
发表于 2014-3-18 21:22:13 | 只看该作者
首先祝贺楼主成功!
第1张图画的不错,正打算要画一个呢。呵呵!
回复

使用道具 举报

推荐
发表于 2014-3-18 00:53:20 | 只看该作者
前来顶一下楼主,好像没看到视频,应该是图文的说
回复

使用道具 举报

推荐
发表于 2014-3-18 00:08:14 | 只看该作者
佩服楼主的用心。。。。
回复

使用道具 举报

50#
发表于 2024-1-4 15:42:20 | 只看该作者
谢谢分享
回复

使用道具 举报

49#
发表于 2024-1-4 11:23:30 | 只看该作者
感谢分享
回复

使用道具 举报

48#
发表于 2023-8-5 23:07:42 来自手机 | 只看该作者
谢谢分享
回复

使用道具 举报

47#
发表于 2016-12-21 12:23:17 | 只看该作者
学习,一定要做一个。
回复

使用道具 举报

46#
发表于 2016-11-16 08:42:16 | 只看该作者
ly2389 发表于 2016-11-15 21:34
虚拟分区是指VHD盘吗?它肯定比内存盘大啊。

另外你的帖子我几乎都看了,还有“用Imdisk/SoftPerfect ...

虚拟分区是指硬盘上的某个分区,启动时用于虚拟内存盘的。
io.img只是用来修改wes7.img的
wes7x64.sdi可以任意放,不过需要在bcd中指定它的路径。
wes7.img可以任意放,不过需要在注册表"FileName0"="\\??\\d:\\wim\\wes7\\wes7.img"指定它的路径。
bcd引导的是boot.wim,sdi使用的是wes7x64.sdi
回复

使用道具 举报

45#
发表于 2016-11-15 21:34:17 | 只看该作者
2012wuzhong 发表于 2016-11-14 13:40
应该是分区大小的问题,内存盘分区应该小于虚拟分区,虚拟分区出现了某些文件访问不到的情况。
将虚拟分 ...

虚拟分区是指VHD盘吗?它肯定比内存盘大啊。

另外你的帖子我几乎都看了,还有“用Imdisk/SoftPerfect驱动构建wes7x64-ramos"相关内容,我也都下载了,却不知如何部署:
1、boot.wim、io.img、wes7x64.sdi、wes7.img不知应放在哪里?
2、引导菜单不知添加哪一项:是boot.wim引导启动,通过wes7.img部署win7,还是。。。

希望得到你的指导,谢谢!

点评

虚拟分区是指硬盘上的某个分区,启动时用于虚拟内存盘的。 io.img只是用来修改wes7.img的 wes7x64.sdi可以任意放,不过需要在bcd中指定它的路径。 wes7.img可以任意放,不过需要在注册表"FileName0"="\\??\\d:\\w  详情 回复 发表于 2016-11-16 08:42
回复

使用道具 举报

44#
发表于 2016-11-14 13:40:21 | 只看该作者
ly2389 发表于 2016-11-12 12:33
出现蓝屏原因找到了,内存盘NTFS不压缩就可以了,但又出现“0xc000000e"错误,估计是你说的这个原因。
...

应该是分区大小的问题,内存盘分区应该小于虚拟分区,虚拟分区出现了某些文件访问不到的情况。
将虚拟分区大小调大应该就可以了。具体可以参看我的qq空间。

点评

虚拟分区是指VHD盘吗?它肯定比内存盘大啊。 另外你的帖子我几乎都看了,还有“用Imdisk/SoftPerfect驱动构建wes7x64-ramos"相关内容,我也都下载了,却不知如何部署: 1、boot.wim、io.img、wes7x64.sdi、wes7.  详情 回复 发表于 2016-11-15 21:34
回复

使用道具 举报

43#
发表于 2016-11-12 12:33:23 | 只看该作者
2012wuzhong 发表于 2016-11-10 08:26
这个有可能vhd分区信息没有完全被模拟。

出现蓝屏原因找到了,内存盘NTFS不压缩就可以了,但又出现“0xc000000e"错误,估计是你说的这个原因。
但怎么查找和修复这个错误呢,还请赐教!

点评

应该是分区大小的问题,内存盘分区应该小于虚拟分区,虚拟分区出现了某些文件访问不到的情况。 将虚拟分区大小调大应该就可以了。具体可以参看我的qq空间。  详情 回复 发表于 2016-11-14 13:40
回复

使用道具 举报

42#
发表于 2016-11-10 08:26:38 | 只看该作者
ly2389 发表于 2016-11-9 17:00
谢谢指导,网络打印好了。

在单位成功的电脑上,多次安装第二个VHD系统,均不成功,实在没办法,干脆复 ...

这个有可能vhd分区信息没有完全被模拟。

点评

出现蓝屏原因找到了,内存盘NTFS不压缩就可以了,但又出现“0xc000000e"错误,估计是你说的这个原因。 但怎么查找和修复这个错误呢,还请赐教!  详情 回复 发表于 2016-11-12 12:33
回复

使用道具 举报

41#
发表于 2016-11-9 17:00:34 | 只看该作者
谢谢指导,网络打印好了。

在单位成功的电脑上,多次安装第二个VHD系统,均不成功,实在没办法,干脆复制成功的VHD文件,加载-格式化-安装WIN7X64系统-安装驱动及软件-创建差分-加入引导,气人,成功了,真是搞不懂了!

点评

这个有可能vhd分区信息没有完全被模拟。  详情 回复 发表于 2016-11-10 08:26
回复

使用道具 举报

40#
发表于 2016-11-2 12:47:01 | 只看该作者
本帖最后由 2012wuzhong 于 2016-11-2 12:49 编辑
ly2389 发表于 2016-11-1 14:27
我装的苏博联合论坛WIN7LITE7658EX系统,死活装不上网络打印机,才想再装个系统,没想到出现蓝屏现象。
我 ...


print所需两个文件:mgmtapi.dll、wsnmp32.dll,你可以试试。
回复

使用道具 举报

39#
发表于 2016-11-1 14:27:35 | 只看该作者
本帖最后由 ly2389 于 2016-11-1 14:35 编辑

我装的苏博联合论坛WIN7LITE7658EX系统,死活装不上网络打印机,才想再装个系统,没想到出现蓝屏现象。
我的母盘和差分盘分别启动,都没有问题!

如果这种方法安装带普遍性的话,我觉得比RAMOS更适合应用,毕竟内存还是有限的,而这种方法(是不是叫克隆附体)用2G就够了。

点评

提供w7636版本print所需两个文件,你可以试试。  详情 回复 发表于 2016-11-2 12:47
回复

使用道具 举报

38#
发表于 2016-11-1 14:10:06 | 只看该作者
本帖最后由 ly2389 于 2016-11-1 14:12 编辑

我导入的是:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\FsDepends\Parameters]

"VirtualDiskExpandOnMount"=dword:00000004

同样实现差分盘不占用最大空间,不知是不是这个缘故。
回复

使用道具 举报

37#
发表于 2016-11-1 12:51:02 | 只看该作者
ly2389 发表于 2016-11-1 11:41
我在固态硬盘上做了两个VHD盘,一个使用WIN7LITE7658EX,按教程一步步安装,最后成功实现了LZ的所有功能。 ...

差分盘不能占用最大空间。
reg add hklm\system\ControlSet001\services\FsDepends\Parameters /v VirtualDiskExpandOnMount /t REG_DWORD /d 4 /f >nul 2>nul
回复

使用道具 举报

36#
发表于 2016-11-1 11:41:20 | 只看该作者
我在固态硬盘上做了两个VHD盘,一个使用WIN7LITE7658EX,按教程一步步安装,最后成功实现了LZ的所有功能。我以为这是通用的方法,所以在家里也想实现,但不成功。
那我在成功的机子上,再做一个VHD,这次使用的是WES7_V8版,所有驱动及软件都添加完成后,也安了RAMDISK,内存盘镜像文件和WIN7LITE7658EX是一个文件,仅在D盘BCD添加上启动,结果也不成功,出现12F蓝屏,这就郁闷了,配置都一样啊!

点评

差分盘不能占用最大空间。 reg add hklm\system\ControlSet001\services\FsDepends\Parameters /v VirtualDiskExpandOnMount /t REG_DWORD /d 4 /f >nul 2>nul  详情 回复 发表于 2016-11-1 12:51
回复

使用道具 举报

35#
发表于 2016-5-16 09:22:22 | 只看该作者
经测试,在虚拟机上成功无数次.但在实体机上无限失败.可能与AHCI等等的驱动或是多硬盘相关.但拔除多硬盘后还是继续失败.最后还是回归以前的WIMBOOT了.
回复

使用道具 举报

34#
发表于 2016-5-11 08:33:36 | 只看该作者
仔细研究了一下.可能是最好的RAMOS方案了.读对固态硬盘的损伤小.可以这么说.等你这台电脑废了.硬盘都不一定会坏.
回复

使用道具 举报

33#
发表于 2016-4-25 07:57:58 | 只看该作者
谢谢楼主哦
回复

使用道具 举报

32#
发表于 2016-4-22 23:31:29 来自手机 | 只看该作者
准备上实机试验,看了三次差不多看懂了,比EWF要强,操作有点复杂,可以做长期使用的系统
回复

使用道具 举报

31#
发表于 2015-11-13 16:40:51 | 只看该作者
顶礼膜拜 学习之。。。。
回复

使用道具 举报

30#
发表于 2015-6-9 23:55:50 | 只看该作者
回复

使用道具 举报

29#
发表于 2015-4-26 21:16:26 | 只看该作者
赞一个
回复

使用道具 举报

28#
发表于 2015-4-26 21:16:22 | 只看该作者
赞一个
回复

使用道具 举报

27#
发表于 2015-4-26 21:16:16 | 只看该作者
赞一个
回复

使用道具 举报

26#
发表于 2015-4-26 21:16:12 | 只看该作者
赞一个
回复

使用道具 举报

25#
发表于 2015-4-26 21:16:06 | 只看该作者
赞一个
回复

使用道具 举报

24#
发表于 2015-4-26 21:16:03 | 只看该作者
赞一个
回复

使用道具 举报

23#
发表于 2015-4-26 21:15:59 | 只看该作者
赞一个
回复

使用道具 举报

22#
发表于 2015-4-26 21:12:34 | 只看该作者
赞一个
回复

使用道具 举报

21#
发表于 2015-4-23 17:17:07 | 只看该作者
这个貌似gpt分区的不行啊~
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-25 10:15

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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