无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 19303|回复: 23
打印 上一主题 下一主题

[原创] 再发一贴!关于微软Ramdisk的正确用法!

    [复制链接]
跳转到指定楼层
1#
发表于 2016-3-24 00:17:58 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
所有的帖子都是没有理解Ramdisk的原理:
首先,要ntldr或者bootmgr把文件加载到内存,Ramdisk.sys才会起作用,
它会自动安装”Windows RAM 磁盘控制器“和”Windows RAM 磁盘设备(卷)“,
所以大家都误解了ramdisk.sys,不用手工安装。否则,只会出现重复的设备,运气好能进入看见**警告的冲突设备,严重的造成冲突蓝屏dump!

正确的做法:
1. 做img文件,或者其他vhd,wim格式文件,只要你复制ramdisk.sys到\windows\system32\drivers目录,然后加载\windows\sysem32\config\system到hklm\0,
把[HKEY_LOCAL_MACHINE\0\MountedDevices]下"\\DosDevices\\C:",修改成其他盘符,如U:盘,接着合并ramdisk.reg文件,注册服务即可,ramdisk.reg文件内容贴在最后。

2. 配置boot.ini或者bcd文件,启动img文件,windows系统自动发现两个新硬件,安装好,告诉你重启。
这个时候,你用的是内存,重启新设备配置的内容就没有了,所以要保存新状态,保存之前要修改system,因为ramdisk.inf会把新设备设置成手工启动。
合并ramdisk_autostart.reg文件到注册表,cmd命令:reg save HKLM\SYSTEM u:\system,导出新的system,

3.新的system文件覆盖老的img/vhd文件里面的system,制作结束!

;;;;;;;;;;;;;;;;;;;;
;;ramdisk.reg 内容
;;;;;;;;;;;;;;;;;;;;
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\0\MountedDevices]
"\\DosDevices\\C:"=hex:fc,57,b2,d9,4e,68,cb,4d,ab,79,03,cf,a2,f6,b7,50

[HKEY_LOCAL_MACHINE\0\ControlSet001\Control\Class\{9D6D66A6-0B0C-4563-9077-A0E9A7955AE4}]
"Class"="Ramdisk"
"ClassDesc"="@ramdisk.inf,%ClassName%;Ramdisk"
@="Ramdisk"
"IconPath"=hex(7):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
  74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,\
  00,65,00,74,00,75,00,70,00,61,00,70,00,69,00,2e,00,64,00,6c,00,6c,00,2c,00,\
  2d,00,33,00,32,00,00,00,00,00

[HKEY_LOCAL_MACHINE\0\ControlSet001\services\Ramdisk]
"DisplayName"="Windows RAM Disk Driver"
"ErrorControl"=dword:00000001
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
  52,00,49,00,56,00,45,00,52,00,53,00,5c,00,72,00,61,00,6d,00,64,00,69,00,73,\
  00,6b,00,2e,00,73,00,79,00,73,00,00,00
"Start"=dword:00000000
"Type"=dword:00000001

[HKEY_LOCAL_MACHINE\0\ControlSet001\services\Ramdisk\Debug]
"DebugLevel"=dword:00000005
"DebugComponents"=dword:7fffffff

;;;;;;;;;;;;;;;;;;;;
;;ramdisk_autostart.reg 内容
;;;;;;;;;;;;;;;;;;;;
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Ramdisk]
"Start"=dword:00000000

评分

参与人数 7无忧币 +31 收起 理由
蓝星明月 + 5 赞一个!
maomihuacha + 1
2010hook + 5
anarki2001 + 5 很给力!
ldz123ldz + 5 赞一个!
freesoft00 + 5
20090101 + 5 赞一个!

查看全部评分

2#
 楼主| 发表于 2016-3-24 14:14:05 | 显示全部楼层
32位ramdisk.sys 能做最大988m的img文件,64位没有试过
回复

使用道具 举报

3#
 楼主| 发表于 2016-3-24 15:29:10 | 显示全部楼层
img文件有两种格式,一种没有MBR(分区镜像),一种带MBR的(一般是63个扇区),vhd有mbr(一般是128个扇区)所以Win7调用方法:
1.新建ramdiskoption,不要用系统默认的,删除SdiDevice,SdiPath;
2.新建参数RamdiskImageOffset,这个数字表示硬盘镜像文件有效数据从哪里开始读取;
   img文件没有mbr: 0*512=0 , img文件有mbr: 63*512=32256, vhd文件有mbr: 128*512=65536
3.新建wim启动项,设置ApplicationDevice和OSDevice参数里面的Ramdisk参数对应你新建的ramdiskoption项目guid
下面贴图,给不会设置的人参考:

img-options-nombr.png (44.62 KB, 下载次数: 124)

img-options-nombr.png

img-options-63mbr.png (38.12 KB, 下载次数: 98)

img-options-63mbr.png

vhd-options.png (44.6 KB, 下载次数: 105)

vhd-options.png

boot-img.png (75.17 KB, 下载次数: 81)

boot-img.png

boot-vhd.png (74.72 KB, 下载次数: 91)

boot-vhd.png
回复

使用道具 举报

4#
 楼主| 发表于 2016-3-24 15:32:41 | 显示全部楼层
liumailong 发表于 2016-3-24 10:57
对微软的Ramdisk不了解。
请问能做内存盘吗?

这个就是做RamOS启动的
回复

使用道具 举报

5#
 楼主| 发表于 2016-4-3 22:09:08 | 显示全部楼层
2012shm 发表于 2016-4-3 09:23
是否win7的ramdisk.sys,x86、x64通用?还有楼主的方法7、8、10、xp、2008通用?

32位和64位的驱动是肯定不能通用的,2k/XP/03/Vista/Win7/8/10的方法都是一样的!
不过因为Win8/10没有合适的32位精简版,所以没有试验过.

没有合适的精简版,可以提供一个做RamOS的思路:
做成WimBoot架构,引导文件放在img/vhd文件包里面,用Bootmgr加载到内存,WimBoot文件放在Primo的智能镜像文件包里面,最后结果是两个内存盘!

点评

懂了,谢谢啊  详情 回复 发表于 2016-4-4 19:56
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-23 01:27

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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