无忧启动论坛

标题: 成功将win8差分vhd放入primo内存盘 [打印本页]

作者: 2012wuzhong    时间: 2012-11-2 22:17
标题: 成功将win8差分vhd放入primo内存盘
本帖最后由 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 编辑 ]
作者: 11ydy    时间: 2012-11-2 23:43
技术帝再现,顶!!!1
作者: 2012zi20715    时间: 2012-11-4 11:33
看的一头雾水,想学不知道从哪着手,
作者: emutemp    时间: 2012-11-5 20:54
这种方法要对实际硬盘作修改,还要调整实际硬盘分区作出空余扇区,通用性、易用性不强啊。

[ 本帖最后由 emutemp 于 2012-11-5 20:56 编辑 ]
作者: 2012wuzhong    时间: 2012-11-5 21:20
标题: 回复 #5 emutemp 的帖子
还有一种方法是在上一个分区建一个小文件,用winhex修改其存储地址指向需要写入mbr的扇区,然后将mbr写入到小文件;不过该方法需要对ntfS的存储结构非常了解。
作者: 2012hzy6420    时间: 2012-11-12 07:51
谢谢分享,学习学习,支持了
作者: emutemp    时间: 2012-11-14 00:50
觉得楼主你的这种方法原理还没说清楚。
按这个思路,应该没必要处理分区表。
作者: 2012wuzhong    时间: 2012-11-14 08:50
标题: 回复 #9 emutemp 的帖子
确实有些原理我还在摸索中。
windows是通过硬盘签名和分区的起始扇区号来识别硬盘分区的。
而我需要实现的是,用其它分区来模拟分区1。这样的话,必须修改分区信息使得其它分区和分区1一样(除了分区大小以外),也就是分区信息的前12个字节。
我的方法是在分区2之前植入了一个mbr,然后将此和分区2虚拟了一个硬盘,此时分区2的起始扇区号可以和分区1的一样
作者: wjshome    时间: 2012-11-19 11:58
在原作者的帮助下,已成功在vmware上实现差分vhd放入ramdisk中。
目前在实机上尝试。感谢wuzhong(Tiger)。
作者: xianglang    时间: 2012-11-19 14:18
这样的内存系统,还是需要读实际硬盘的吧(母VHD就放在实际硬盘上)?
作者: thttht    时间: 2012-11-19 22:13
请教,下面这个方法用在win7 里管用吗?能否起到相同的作用啊?
“系统vhd是动态模式,最大空间为15G,如果硬盘空间不大的话,在win7系统里载入vhd,regedit加载其中的system,修改下列参数:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\FsDepends\Parameters] "VirtualDiskExpandOnMount"=dword:00000004
这样系统启动后就不会占用最大空间了。”
作者: qkl12345    时间: 2012-11-19 22:42
原帖由 <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的知识
作者: wjshome    时间: 2012-11-20 08:11
原帖由 xianglang 于 2012-11-19 14:18 发表
这样的内存系统,还是需要读实际硬盘的吧(母VHD就放在实际硬盘上)?


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

1. 如果你选择每次关机不保存Ramdisk,这就好像启开EWF一样。
2. 如果你选择关机保存Ramdisk,那么你这次开机所有的修改都发生在Ramdisk上面,下次开机还会在。
3. 如果你觉得ramdisk上的差分VHD太大了,你可以选择Merge到主VHD,或者恢复原始的VHD。
作者: wjshome    时间: 2012-11-20 08:13
原帖由 thttht 于 2012-11-19 22:13 发表
请教,下面这个方法用在win7 里管用吗?能否起到相同的作用啊?
“系统vhd是动态模式,最大空间为15G,如果硬盘空间不大的话,在win7系统里载入vhd,regedit加载其中的system,修改下列参数:
[HKEY_LOCAL_MA ...


Win7 是绝对没问题的。我目前就是这样。
20G母VHD很大,Ramdisk只有4G,只有开启不占用最大空间才能把差分VHD跑在Ramdisk上面。
作者: wjshome    时间: 2012-11-20 08:29
在VMWARE上面实现后,我昨天已经在物理机上实现了。
但是发现ramdisk上面的差分VHD膨胀得很快,所以我估计是某个Service或者Process在后台写,今晚我准备把AppData和ProgramData两个目录mklink到内存盘试试。
如果是干净的系统应该不会发生这样的问题。
作者: haokai    时间: 2013-4-22 16:42
实机未装驱动和软件前成功了,
但新系统安装完软件和驱动后蓝屏12f ,不知道跟什么软件或驱动有冲突,
作者: 2012wuzhong    时间: 2013-4-23 22:50
haokai 发表于 2013-4-22 16:42
实机未装驱动和软件前成功了,
但新系统安装完软件和驱动后蓝屏12f ,不知道跟什么软件或驱动有冲 ...

vhd使用最多空间,存放vhd文件的磁盘空间不足。
用于启动的硬盘上的子vhd与内存盘中的子vhd不一样。
作者: haokai    时间: 2013-4-24 16:32
内存盘一定要为B好像,改成其他的后就12F蓝屏
作者: 2012wuzhong    时间: 2013-4-24 19:03
haokai 发表于 2013-4-24 16:32
内存盘一定要为B好像,改成其他的后就12F蓝屏

可以改的,在其他系统中,将d盘vhd链接目录改成其它的就行了
作者: lgstd    时间: 2013-5-20 08:05
第六步中“使用bootice处理镜像文件boot目录中的bcd文件”,具体是指哪个?此处的镜像文件是指由primo创建的4G智能镜像文件吗?但按照1-5,镜像文件中没有boot目录的,如何理解?
作者: 2012wuzhong    时间: 2013-5-20 19:12
lgstd 发表于 2013-5-20 08:05
第六步中“使用bootice处理镜像文件boot目录中的bcd文件”,具体是指哪个?此处的镜像文件是指由primo创建的 ...

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

作者: lgstd    时间: 2013-5-21 08:19
2012wuzhong 发表于 2013-5-20 19:12
写错了,是第2分区boot目录中的bcd文件。

恩,谢谢,我马上试试!
作者: 念青    时间: 2013-11-11 23:41
请问
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左右)的原因?以致软件无法再利用这部分空间?
作者: 2012wuzhong    时间: 2013-11-14 19:13
念青 发表于 2013-11-11 23:41
请问
3、创建一个基于primo的4G智能镜像,内建一个vhd目录,拷入win8_child.vhd文件,注意该文件不能压缩。 ...

当初我在win8系统下,无法直接创建智能镜像,因此需要第3步。
要使用系统未识别内存,需要先开启,具体点击primo软件下方扳手图标
fira如要使用高端内存,需要设置primo使其让出相应大小的内存,否则会冲突
另外:子vhd文件中包含有母vhd文件的绝对路径,因此在创建的时候需要注意,很有可能出现子vhd找不到母vhd文件而失败。
作者: pollop951    时间: 2013-11-17 18:29
学习学习 摸索中。
一头雾水。
作者: haokai    时间: 2013-12-17 12:27
8.1此法不能用了!
作者: 2012wuzhong    时间: 2014-1-13 22:16
haokai 发表于 2013-12-17 12:27
8.1此法不能用了!

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

请问你用的是什么版本?给个下载地址喂,
我下载VHD Win8.1X64
http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1
这个不行,启动时就VHD磁盘错误。。
作者: 2012wuzhong    时间: 2014-1-20 18:43
haokai 发表于 2014-1-20 10:51
请问你用的是什么版本?给个下载地址喂,
我下载VHD Win8.1X64
http://bbs.wuyou.net/forum.php?mod=vi ...

我用的就是这个!
作者: 彩鑫聚    时间: 2014-11-11 10:47
提示: 作者被禁止或删除 内容自动屏蔽
作者: yiyu2012    时间: 2015-2-8 23:43
看不太懂。。。挂载内存盘map (hd0)63866817+122880240 (hd0),中间的参数不明白。




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3