无忧启动论坛

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

成功将win8差分vhd放入primo内存盘

  [复制链接]
跳转到指定楼层
#
发表于 2012-11-2 22:17:31 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 2012wuzhong 于 2013-5-20 19:13 编辑

方法参照:http://user.qzone.qq.com/1543764 ... &pos=1351430770
win8使用的是bfgxp分享的32位vhd系统:http://pan.baidu.com/share/link?shareid=97893&uk=3825511239
系统vhd是动态模式,最大空间为15G,如果硬盘空间不大的话,在win7系统里载入vhd,regedit加载其中的system,修改下列参数:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\FsDepends\Parameters] "VirtualDiskExpandOnMount"=dword:00000004
这样系统启动后就不会占用最大空间了。
x201i的机子,总内存6G,其中4G用于primo内存盘,采用分区2充当宿主分区。
已使用dd命令在分区2的前63个扇区(=分区1的起始扇区号)写入修改的硬盘mbr。

主要步骤如下:
1、将win8.vhd拷入到"D:\vhdos\nt6",配置boot\bcd文件用于启动win8_vhd。
2、创建VHD差分磁盘。打开"cmd"命令提示符窗口键入"diskpart",再键入:
create vdisk file="D:\vhdos\nt6\win8_child.vhd" parent="D:\vhdos\nt6\win8.vhd"
3、创建一个基于primo的4G智能镜像,内建一个vhd目录,拷入win8_child.vhd文件,注意该文件不能压缩。
进入win8_vhd系统:
4、硬件配置完以后安装primo,基于已有的4G智能镜像生成直接io模式的内存盘,盘符设为"b"
5、分区1(盘符设为"g")建立"vhdos"目录并制作链接目录:mklink /j g:\vhdos\nt6 b:\vhd
6、拷贝boot启动目录以及启动文件bootmgr到第2分区,使用bootice处理boot目录中的bcd文件,需要有一个基于vhd的启动项,启动磁盘选"BOOT",设备文件项填"\vhdos\nt6\win8_child.vhd"
7、编辑menu.lst文件如下:
title primo win8.vhd
map (hd0)63866817+122880240 (hd0)
map --hook
chainloader (hd0,0)/bootmgr

[ 本帖最后由 2012wuzhong 于 2012-11-2 22:24 编辑 ]
推荐
 楼主| 发表于 2013-11-14 19:13:12 | 只看该作者
念青 发表于 2013-11-11 23:41
请问
3、创建一个基于primo的4G智能镜像,内建一个vhd目录,拷入win8_child.vhd文件,注意该文件不能压缩。 ...

当初我在win8系统下,无法直接创建智能镜像,因此需要第3步。
要使用系统未识别内存,需要先开启,具体点击primo软件下方扳手图标
fira如要使用高端内存,需要设置primo使其让出相应大小的内存,否则会冲突
另外:子vhd文件中包含有母vhd文件的绝对路径,因此在创建的时候需要注意,很有可能出现子vhd找不到母vhd文件而失败。
回复

使用道具 举报

推荐
发表于 2013-11-11 23:41:27 | 只看该作者
请问
3、创建一个基于primo的4G智能镜像,内建一个vhd目录,拷入win8_child.vhd文件,注意该文件不能压缩。
进入win8_vhd系统:
4、硬件配置完以后安装primo,基于已有的4G智能镜像生成直接io模式的内存盘

这两个步骤的具体操作能说得详细一点吗?是在另一个系统中先行用primo创建一个4G智能镜像?这个是怎么创建法?选些什么参数?然后再在VHD系统中配置完成后装primo?并且基于上述镜像生成内存盘?这个操作怎么做?是创建新的硬盘后,最后关联之前的镜像?还是一开始时选根据镜像文件创建虚拟硬盘?

不管怎样,其实是不是不需要第3步,直接在VHD系统中安装并创建一个直接IO内存盘,也是可以的?那些紧凑格式之类的怎么选?我的使用系统未识别内存选项是灰色不能选的。是不是因为使用了g4d map --mem --top(并没有用完,还有2GB左右)的原因?以致软件无法再利用这部分空间?

点评

当初我在win8系统下,无法直接创建智能镜像,因此需要第3步。 要使用系统未识别内存,需要先开启,具体点击primo软件下方扳手图标 fira如要使用高端内存,需要设置primo使其让出相应大小的内存,否则会冲突 另外:  详情 回复 发表于 2013-11-14 19:13
回复

使用道具 举报

推荐
发表于 2012-11-20 08:11:40 | 只看该作者
原帖由 xianglang 于 2012-11-19 14:18 发表
这样的内存系统,还是需要读实际硬盘的吧(母VHD就放在实际硬盘上)?


是的,母VHD是直接在硬盘上的,所以读操作会发生在硬盘上。但是写操作会在Ramdisk上。
我的母VHD差不多有20G,肯定放不进内存盘。但是差分是在Ramdisk上的。

1. 如果你选择每次关机不保存Ramdisk,这就好像启开EWF一样。
2. 如果你选择关机保存Ramdisk,那么你这次开机所有的修改都发生在Ramdisk上面,下次开机还会在。
3. 如果你觉得ramdisk上的差分VHD太大了,你可以选择Merge到主VHD,或者恢复原始的VHD。
回复

使用道具 举报

推荐
发表于 2012-11-2 23:43:36 | 只看该作者
技术帝再现,顶!!!1
回复

使用道具 举报

推荐
发表于 2013-5-21 08:19:29 | 只看该作者
2012wuzhong 发表于 2013-5-20 19:12
写错了,是第2分区boot目录中的bcd文件。

恩,谢谢,我马上试试!
回复

使用道具 举报

推荐
 楼主| 发表于 2013-5-20 19:12:06 | 只看该作者
lgstd 发表于 2013-5-20 08:05
第六步中“使用bootice处理镜像文件boot目录中的bcd文件”,具体是指哪个?此处的镜像文件是指由primo创建的 ...

写错了,是第2分区boot目录中的bcd文件。
回复

使用道具 举报

推荐
发表于 2012-11-20 08:29:38 | 只看该作者
在VMWARE上面实现后,我昨天已经在物理机上实现了。
但是发现ramdisk上面的差分VHD膨胀得很快,所以我估计是某个Service或者Process在后台写,今晚我准备把AppData和ProgramData两个目录mklink到内存盘试试。
如果是干净的系统应该不会发生这样的问题。
回复

使用道具 举报

推荐
发表于 2012-11-20 08:13:48 | 只看该作者
原帖由 thttht 于 2012-11-19 22:13 发表
请教,下面这个方法用在win7 里管用吗?能否起到相同的作用啊?
“系统vhd是动态模式,最大空间为15G,如果硬盘空间不大的话,在win7系统里载入vhd,regedit加载其中的system,修改下列参数:
[HKEY_LOCAL_MA ...


Win7 是绝对没问题的。我目前就是这样。
20G母VHD很大,Ramdisk只有4G,只有开启不占用最大空间才能把差分VHD跑在Ramdisk上面。
回复

使用道具 举报

推荐
发表于 2012-11-19 22:42:50 | 只看该作者
原帖由 <i>2012wuzhong</i> 于 2012-11-5 21:20 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2609186&ptid=269215" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />
还有一种方法是在上一个分区建一个小文件,用winhex修改其存储地址指向需要写入mbr的扇区,然后将mbr写入到小文件;不过该方法需要对ntfS的存储结构非常了解。
<br />
2012wuzhong兄 绝对是ramos的高手  你完全可以去开个论坛讨论ramos的未来

基于你的引导和讨教 我也了解了一部分ramos的知识
回复

使用道具 举报

推荐
发表于 2012-11-19 22:13:39 | 只看该作者
请教,下面这个方法用在win7 里管用吗?能否起到相同的作用啊?
“系统vhd是动态模式,最大空间为15G,如果硬盘空间不大的话,在win7系统里载入vhd,regedit加载其中的system,修改下列参数:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\FsDepends\Parameters] "VirtualDiskExpandOnMount"=dword:00000004
这样系统启动后就不会占用最大空间了。”
回复

使用道具 举报

20#
发表于 2015-2-8 23:43:01 | 只看该作者
看不太懂。。。挂载内存盘map (hd0)63866817+122880240 (hd0),中间的参数不明白。
回复

使用道具 举报

19#
发表于 2014-11-11 10:47:27 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

18#
 楼主| 发表于 2014-1-20 18:43:17 | 只看该作者
haokai 发表于 2014-1-20 10:51
请问你用的是什么版本?给个下载地址喂,
我下载VHD Win8.1X64
http://bbs.wuyou.net/forum.php?mod=vi ...

我用的就是这个!
回复

使用道具 举报

17#
发表于 2014-1-20 10:51:21 | 只看该作者
2012wuzhong 发表于 2014-1-13 22:16
试过了,可以用的。
但是存在一个问题,需要设置虚拟内存(可以很小),否则关机/重启出现黑屏。

请问你用的是什么版本?给个下载地址喂,
我下载VHD Win8.1X64
http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1
这个不行,启动时就VHD磁盘错误。。

点评

我用的就是这个!  详情 回复 发表于 2014-1-20 18:43
回复

使用道具 举报

16#
 楼主| 发表于 2014-1-13 22:16:48 | 只看该作者
haokai 发表于 2013-12-17 12:27
8.1此法不能用了!

试过了,可以用的。
但是存在一个问题,需要设置虚拟内存(可以很小),否则关机/重启出现黑屏。

点评

请问你用的是什么版本?给个下载地址喂, 我下载VHD Win8.1X64 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=202057&extra=page%3D1 这个不行,启动时就VHD磁盘错误。。  详情 回复 发表于 2014-1-20 10:51
回复

使用道具 举报

15#
发表于 2013-12-17 12:27:55 来自手机 | 只看该作者
8.1此法不能用了!

点评

试过了,可以用的。 但是存在一个问题,需要设置虚拟内存(可以很小),否则关机/重启出现黑屏。  详情 回复 发表于 2014-1-13 22:16
回复

使用道具 举报

14#
发表于 2013-11-17 18:29:43 | 只看该作者
学习学习 摸索中。
一头雾水。
回复

使用道具 举报

13#
发表于 2013-5-20 08:05:22 | 只看该作者
第六步中“使用bootice处理镜像文件boot目录中的bcd文件”,具体是指哪个?此处的镜像文件是指由primo创建的4G智能镜像文件吗?但按照1-5,镜像文件中没有boot目录的,如何理解?
回复

使用道具 举报

12#
 楼主| 发表于 2013-4-24 19:03:28 | 只看该作者
haokai 发表于 2013-4-24 16:32
内存盘一定要为B好像,改成其他的后就12F蓝屏

可以改的,在其他系统中,将d盘vhd链接目录改成其它的就行了
回复

使用道具 举报

11#
发表于 2013-4-24 16:32:36 来自手机 | 只看该作者
内存盘一定要为B好像,改成其他的后就12F蓝屏
回复

使用道具 举报

10#
 楼主| 发表于 2013-4-23 22:50:28 | 只看该作者
haokai 发表于 2013-4-22 16:42
实机未装驱动和软件前成功了,
但新系统安装完软件和驱动后蓝屏12f ,不知道跟什么软件或驱动有冲 ...

vhd使用最多空间,存放vhd文件的磁盘空间不足。
用于启动的硬盘上的子vhd与内存盘中的子vhd不一样。
回复

使用道具 举报

9#
发表于 2013-4-22 16:42:26 | 只看该作者
实机未装驱动和软件前成功了,
但新系统安装完软件和驱动后蓝屏12f ,不知道跟什么软件或驱动有冲突,
回复

使用道具 举报

8#
发表于 2012-11-19 14:18:59 | 只看该作者
这样的内存系统,还是需要读实际硬盘的吧(母VHD就放在实际硬盘上)?
回复

使用道具 举报

7#
发表于 2012-11-19 11:58:23 | 只看该作者
在原作者的帮助下,已成功在vmware上实现差分vhd放入ramdisk中。
目前在实机上尝试。感谢wuzhong(Tiger)。
回复

使用道具 举报

6#
 楼主| 发表于 2012-11-14 08:50:26 | 只看该作者

回复 #9 emutemp 的帖子

确实有些原理我还在摸索中。
windows是通过硬盘签名和分区的起始扇区号来识别硬盘分区的。
而我需要实现的是,用其它分区来模拟分区1。这样的话,必须修改分区信息使得其它分区和分区1一样(除了分区大小以外),也就是分区信息的前12个字节。
我的方法是在分区2之前植入了一个mbr,然后将此和分区2虚拟了一个硬盘,此时分区2的起始扇区号可以和分区1的一样
回复

使用道具 举报

5#
发表于 2012-11-14 00:50:05 | 只看该作者
觉得楼主你的这种方法原理还没说清楚。
按这个思路,应该没必要处理分区表。
回复

使用道具 举报

4#
发表于 2012-11-12 07:51:17 | 只看该作者
谢谢分享,学习学习,支持了
回复

使用道具 举报

3#
 楼主| 发表于 2012-11-5 21:20:55 | 只看该作者

回复 #5 emutemp 的帖子

还有一种方法是在上一个分区建一个小文件,用winhex修改其存储地址指向需要写入mbr的扇区,然后将mbr写入到小文件;不过该方法需要对ntfS的存储结构非常了解。
回复

使用道具 举报

2#
发表于 2012-11-5 20:54:46 | 只看该作者
这种方法要对实际硬盘作修改,还要调整实际硬盘分区作出空余扇区,通用性、易用性不强啊。

[ 本帖最后由 emutemp 于 2012-11-5 20:56 编辑 ]
回复

使用道具 举报

1#
发表于 2012-11-4 11:33:40 | 只看该作者
看的一头雾水,想学不知道从哪着手,
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-30 23:37

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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