成功将win8差分vhd放入primo内存盘
本帖最后由 2012wuzhong 于 2013-5-20 19:13 编辑方法参照:http://user.qzone.qq.com/1543764927/infocenter#!app=2&via=QZ.HashRefresh&pos=1351430770
win8使用的是bfgxp分享的32位vhd系统:http://pan.baidu.com/share/link?shareid=97893&uk=3825511239
系统vhd是动态模式,最大空间为15G,如果硬盘空间不大的话,在win7系统里载入vhd,regedit加载其中的system,修改下列参数:
"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-11 23:41 static/image/common/back.gif
请问
3、创建一个基于primo的4G智能镜像,内建一个vhd目录,拷入win8_child.vhd文件,注意该文件不能压缩。 ...
当初我在win8系统下,无法直接创建智能镜像,因此需要第3步。
要使用系统未识别内存,需要先开启,具体点击primo软件下方扳手图标
fira如要使用高端内存,需要设置primo使其让出相应大小的内存,否则会冲突
另外:子vhd文件中包含有母vhd文件的绝对路径,因此在创建的时候需要注意,很有可能出现子vhd找不到母vhd文件而失败。 请问
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左右)的原因?以致软件无法再利用这部分空间? 原帖由 xianglang 于 2012-11-19 14:18 发表 http://bbs.wuyou.net/images/common/back.gif
这样的内存系统,还是需要读实际硬盘的吧(母VHD就放在实际硬盘上)?
是的,母VHD是直接在硬盘上的,所以读操作会发生在硬盘上。但是写操作会在Ramdisk上。
我的母VHD差不多有20G,肯定放不进内存盘。但是差分是在Ramdisk上的。
1. 如果你选择每次关机不保存Ramdisk,这就好像启开EWF一样。
2. 如果你选择关机保存Ramdisk,那么你这次开机所有的修改都发生在Ramdisk上面,下次开机还会在。
3. 如果你觉得ramdisk上的差分VHD太大了,你可以选择Merge到主VHD,或者恢复原始的VHD。 技术帝再现,顶!!!1 2012wuzhong 发表于 2013-5-20 19:12 static/image/common/back.gif
写错了,是第2分区boot目录中的bcd文件。
恩,谢谢,我马上试试! lgstd 发表于 2013-5-20 08:05 static/image/common/back.gif
第六步中“使用bootice处理镜像文件boot目录中的bcd文件”,具体是指哪个?此处的镜像文件是指由primo创建的 ...
写错了,是第2分区boot目录中的bcd文件。
在VMWARE上面实现后,我昨天已经在物理机上实现了。
但是发现ramdisk上面的差分VHD膨胀得很快,所以我估计是某个Service或者Process在后台写,今晚我准备把AppData和ProgramData两个目录mklink到内存盘试试。
如果是干净的系统应该不会发生这样的问题。 原帖由 thttht 于 2012-11-19 22:13 发表 http://bbs.wuyou.net/images/common/back.gif
请教,下面这个方法用在win7 里管用吗?能否起到相同的作用啊?
“系统vhd是动态模式,最大空间为15G,如果硬盘空间不大的话,在win7系统里载入vhd,regedit加载其中的system,修改下列参数:
Win7 是绝对没问题的。我目前就是这样。
20G母VHD很大,Ramdisk只有4G,只有开启不占用最大空间才能把差分VHD跑在Ramdisk上面。 原帖由 <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的知识 请教,下面这个方法用在win7 里管用吗?能否起到相同的作用啊?
“系统vhd是动态模式,最大空间为15G,如果硬盘空间不大的话,在win7系统里载入vhd,regedit加载其中的system,修改下列参数:
"VirtualDiskExpandOnMount"=dword:00000004
这样系统启动后就不会占用最大空间了。” 看的一头雾水,想学不知道从哪着手, 这种方法要对实际硬盘作修改,还要调整实际硬盘分区作出空余扇区,通用性、易用性不强啊。
[ 本帖最后由 emutemp 于 2012-11-5 20:56 编辑 ]
回复 #5 emutemp 的帖子
还有一种方法是在上一个分区建一个小文件,用winhex修改其存储地址指向需要写入mbr的扇区,然后将mbr写入到小文件;不过该方法需要对ntfS的存储结构非常了解。 谢谢分享,学习学习,支持了 觉得楼主你的这种方法原理还没说清楚。按这个思路,应该没必要处理分区表。
回复 #9 emutemp 的帖子
确实有些原理我还在摸索中。windows是通过硬盘签名和分区的起始扇区号来识别硬盘分区的。
而我需要实现的是,用其它分区来模拟分区1。这样的话,必须修改分区信息使得其它分区和分区1一样(除了分区大小以外),也就是分区信息的前12个字节。
我的方法是在分区2之前植入了一个mbr,然后将此和分区2虚拟了一个硬盘,此时分区2的起始扇区号可以和分区1的一样 在原作者的帮助下,已成功在vmware上实现差分vhd放入ramdisk中。
目前在实机上尝试。感谢wuzhong(Tiger)。 这样的内存系统,还是需要读实际硬盘的吧(母VHD就放在实际硬盘上)? 实机未装驱动和软件前成功了,{:2_123:}
但新系统安装完软件和驱动后蓝屏12f ,不知道跟什么软件或驱动有冲突, haokai 发表于 2013-4-22 16:42 static/image/common/back.gif
实机未装驱动和软件前成功了,
但新系统安装完软件和驱动后蓝屏12f ,不知道跟什么软件或驱动有冲 ...
vhd使用最多空间,存放vhd文件的磁盘空间不足。
用于启动的硬盘上的子vhd与内存盘中的子vhd不一样。 内存盘一定要为B好像,改成其他的后就12F蓝屏 haokai 发表于 2013-4-24 16:32 static/image/common/back.gif
内存盘一定要为B好像,改成其他的后就12F蓝屏
可以改的,在其他系统中,将d盘vhd链接目录改成其它的就行了 第六步中“使用bootice处理镜像文件boot目录中的bcd文件”,具体是指哪个?此处的镜像文件是指由primo创建的4G智能镜像文件吗?但按照1-5,镜像文件中没有boot目录的,如何理解? 学习学习 摸索中。
一头雾水。 8.1此法不能用了! haokai 发表于 2013-12-17 12:27
8.1此法不能用了!
试过了,可以用的。
但是存在一个问题,需要设置虚拟内存(可以很小),否则关机/重启出现黑屏。 2012wuzhong 发表于 2014-1-13 22:16
试过了,可以用的。
但是存在一个问题,需要设置虚拟内存(可以很小),否则关机/重启出现黑屏。
请问你用的是什么版本?给个下载地址喂,
我下载VHD Win8.1X64
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=202057&extra=page%3D1
这个不行,启动时就VHD磁盘错误。。 haokai 发表于 2014-1-20 10:51
请问你用的是什么版本?给个下载地址喂,
我下载VHD Win8.1X64
http://bbs.wuyou.net/forum.php?mod=vi ...
我用的就是这个!
页:
[1]
2