无忧启动论坛

标题: 求助 imdisk问题 [打印本页]

作者: 2010b    时间: 2010-8-6 09:15
标题: 求助 imdisk问题
如何开机自动加载内存盘?
作者: yjstone    时间: 2010-8-6 10:25
这个内存盘是做什么用的?如果是存放系统的临时文件和IE的临时文件那么是越早加载越好,imdisk驱动服务有一个参数可以在启动imdisk服务时就加载预先做好的镜像入内存作为内存盘的。
      首先将启动imdisk驱动的键值改为1,以便imdisk驱动在系统启动是加载。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ImDisk]
     "Start"=dword:00000001

然后导入以下注册表:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ImDisk\Parameters]
     "DriveLetter0"="Z"
     "FileName0"="\\??\\C:\\windows\\imdisk.IMG"
     "Flags0"=dword:00000200
     "LoadDevices"=dword:00000001
其中DriveLetter0代表创建加载第一个镜像的内存盘,如果你还需要加载第二个镜像,那么再增加一个键值DriveLetter1,以此类推;“Z”代表内存盘的盘符,可自由修改,只要不与系统已有的盘符冲突就行了,"FileName0"="\\??\\C:\\windows\\imdisk.IMG"代表加载镜像的路径,如果还要加载第二个,则再增加一个键值"FileName1",以此类推;"Flags0"=dword:00000200这个标志值表示将镜像复制到内存再挂载(如果仅仅是想加载镜像文件而并不是复制整个镜像到内存盘则这个键值不用写),这就是解决你问题的关键所在了。因为imdisk没有能力在加载驱动的时候就创建内存盘并格式化,但可以在加载驱动时加载已存在的镜像,因此要想在加载imdisk驱动时就产生内存盘只有通过加载预先存在的镜像到内存这种方法(这个可不是我创的,是imdisk的作者自己说的)。为了减少加载镜像的时间可先加载一个体积较小的镜像,最小小到4兆,然后再在系统的自启动键值加一个扩容内存盘的命令将内存盘增加到你所需的容量就可以了。
      为了可以动态增加内存盘容量,预先加载的IMG镜像必须要事先格式化为ntfs格式,为了让系统启动时马上有临时文件夹可用,必须事先在IMG镜像建立temp文件夹。如果XP系统启动后在我的电脑看不到这个内存盘(但在命令行和imdisk控制面板是可以看到的,2003一般也可看到),可增加以下键值:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
      "Z:"="\\Device\\ImDisk0"
"Z:"代表加载镜像的盘符,"\\Device\\ImDisk0"代表加载镜像的序号,如果是第一个加载的镜像,则是ImDisk0,第二个则是ImDisk1,以此类推。

PS:如果你用的是2003,可直接用组策略的开机脚本(组策略-》“本地计算机”策略-》计算机配置-》windows设置-》脚本(启动/关机)—》“启动”)来加载创建imdisk内存盘的批处理,例如
@echo off
imdisk -a -s 200M -m z: -p "/fs:ntfs /y /q"
md z:\temp

用这种方法创建的内存盘足以赶得上系统使用临时文件的需要,但奇怪的是XP的组策略的开机脚本加载比2003慢很多,不能赶在系统需要用临时文件之前创建内存盘。
     当然如果你是简单地只是想在启动时加载内存盘,则在系统注册表的自启动项调用上述批处理就行了,例如在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 项。

[ 本帖最后由 yjstone 于 2010-8-6 17:39 编辑 ]
作者: 2010b    时间: 2010-8-6 10:34
原帖由 yjstone 于 2010-8-6 10:25 发表
这个内存盘是做什么用的?如果是存放系统的临时文件和IE的临时文件那么是越早加载越好,imdisk驱动服务有一个参数可以在启动imdisk服务是就加载预先做好的镜像入内存作为内存盘的。


恩 谢谢 请问怎么调用参数?
作者: lsqyqz    时间: 2010-8-6 12:55
"FileName0"="\\??\\C:\\windows\\imdisk.IMG" 所指的路径是不是指:

C:\windows 路径下的文件 imdisk.IMG?
作者: renchmin    时间: 2010-8-6 14:20
学习了啊,2楼解释的不错的。
作者: yjstone    时间: 2010-8-6 14:50
原帖由 lsqyqz 于 2010-8-6 12:55 发表
"FileName0"="\\??\\C:\\windows\\imdisk.IMG" 所指的路径是不是指:

C:\windows 路径下的文件 imdisk.IMG?

是的,如果是D盘的imdisk.IMG,则是:"FileName0"="\\??\\D:\\imdisk.IMG"
这是要导入的注册表文件的写法,导入注册表之后这个项在注册表编辑器里的显示是这样的:\??\C:\windows\imdisk.IMG

[ 本帖最后由 yjstone 于 2010-8-6 16:44 编辑 ]
作者: 2010b    时间: 2010-8-6 15:17
在xp下用第二种方法 进桌面大概10秒能刷出盘符来
md z:\temp这行不用的 系统自己会创建文件夹的
作者: yjstone    时间: 2010-8-6 15:45
原帖由 2010b 于 2010-8-6 15:17 发表
在xp下用第二种方法 进桌面大概10秒能刷出盘符来
md z:\temp这行不用的 系统自己会创建文件夹的

如果系统创建文件夹的速度不够快,有些自启动程序会报错运行不了的,这种情况我已遇到过,这就是为什么其它的虚拟内存盘工具例如rramdisk、VSuite.Ramdisk等都要在创建内存盘时自动建立一个temp文件夹的原因了,即使是你不设置系统和internet的临时文件到内存盘。
作者: lsqyqz    时间: 2010-8-6 16:04
回复 #2 yjstone :搞不定啊,不知哪里出了问题(操作系统先用61大侠的126M加强版)。

1.用VDM创建一个大小为16M(或256M)的imdisk.img到D:\下,用VDM载入后,格式化为压缩的NTFS格式后,卸载
2、安装imdisk最新版——1.31汉化版(最先用1.14版,结果一样)
3、导入以下注册表,重启

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ImDisk]
"Start"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ImDisk\Parameters]
"DriveLetter0"="Y"
"FileName0"="\\??\\d:\\imdisk.img"
"Flags0"=dword:00000100

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
"Y:"="\\Device\\ImDisk0"

在XP、2003下,结果都是如下:

[ 本帖最后由 lsqyqz 于 2010-8-6 16:13 编辑 ]

Snap000.jpg (34.14 KB, 下载次数: 107)

Snap000.jpg

作者: 2010b    时间: 2010-8-6 16:23
原帖由 yjstone 于 2010-8-6 15:45 发表

如果系统创建文件夹的速度不够快,有些自启动程序会报错运行不了的,这种情况我已遇到过,这就是为什么其它的虚拟内存盘工具例如rramdisk、VSuite.Ramdisk等都要在创建内存盘时自动建立一个temp文件夹的原因了 ...


了解..我加上去
作者: yjstone    时间: 2010-8-6 16:26
你看清楚了,"Flags0"这个标志值搞错了,我的贴子写的是dword:00000200
这你导入的是dword:00000100,"Flags0"=dword:00000200这个标志值表示将镜像复制到内存再挂载,如果仅仅是想加载镜像文件而并不是复制整个镜像到内存盘则这个键值不用写,即不要建立这个键值。
作者: 2010b    时间: 2010-8-6 16:30
顺便问一下 有人知道7z的缓存在哪儿吗

解压一个600m的iso时候 无论用系统还是自定义位置 缓存文件夹一直是空的


作者: yjstone    时间: 2010-8-6 16:34
标题: 回复 #9 lsqyqz 的帖子
还有,如果你用这个加载的imdisk做存放系统和internet的临时文件的内存盘,就不要启用NTFS压缩,否则读的速度没什么影响,但写的速度还慢过硬盘,你要注意了。
你看你用的是2003系统,建议你用最后一种方法好了,不存在看不到盘符的问题。
作者: yjstone    时间: 2010-8-6 16:39
原帖由 2010b 于 2010-8-6 16:30 发表
顺便问一下 有人知道7z的缓存在哪儿吗

解压一个600m的iso时候 无论用系统还是自定义位置 缓存文件夹一直是空的

96513

我看图你7z的缓存就是系统的临时文件夹,它解压ISO的时候是直接解压的,不需要用缓存。7z我不清楚,但是winrar用拖放的形式解压文件时它是先解压到它的临时文件夹再复制到你所拖放到的目录的。
作者: 2010b    时间: 2010-8-6 16:47
7z如果解压到另外的文件夹 解压途中缓存文件夹一直是空的
不管是iso还是zip都这样 我刚试过 这个先不管了..
作者: lsqyqz    时间: 2010-8-6 17:15
原帖由 yjstone 于 2010-8-6 16:26 发表
你看清楚了,"Flags0"这个标志值搞错了,我的贴子写的是dword:00000200
这你导入的是dword:00000100,"Flags0"=dword:00000200这个标志值表示将镜像复制到内存再挂载,如果仅仅是想加载镜像文件而并不是复制整 ...


"Flags0"=dword:00000100 改为 "Flags0"=dword:00000200 后,结果还是一样。

[ 本帖最后由 lsqyqz 于 2010-8-6 17:17 编辑 ]
作者: yjstone    时间: 2010-8-6 17:41
原帖由 lsqyqz 于 2010-8-6 17:15 发表


"Flags0"=dword:00000100 改为 "Flags0"=dword:00000200 后,结果还是一样。

我晕,是我搞错了,还少了一项: "LoadDevices"=dword:00000001
合起来就是:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ImDisk]
"Start"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ImDisk\Parameters]
"DriveLetter0"="Y"
"FileName0"="\\??\\d:\\imdisk.img"
"Flags0"=dword:00000200
"LoadDevices"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
"Y:"="\\Device\\ImDisk0"

[ 本帖最后由 yjstone 于 2010-8-6 20:41 编辑 ]
作者: lsqyqz    时间: 2010-8-6 19:09
终于成功了。
谢谢yjstone 的耐心解答!
好人必有好报!!!

[ 本帖最后由 lsqyqz 于 2010-8-6 19:25 编辑 ]
作者: w352864    时间: 2010-12-20 11:27
最方便的方法,系统安装Firadisk驱动,用G4D启动电脑
map --mem /ramdisk.img (hd1)
map --hook
root (hd0,0)
chainloader +1
boot
这种方法绝对是在系统启动的时候就加载内存盘的,Firadisk驱动加载的时间很早

[ 本帖最后由 w352864 于 2010-12-20 11:28 编辑 ]
作者: 2011dingfei    时间: 2012-1-2 12:32
标题: 回复 #2 yjstone 的帖子
哥们,这个“这个可不是我创的,是imdisk的作者自己说的)”
你是在哪里看到的??我想要更详细的参数
作者: zqjiang    时间: 2012-1-2 15:52
标题: 回复 #2 yjstone 的帖子
imdisk做的内存盘 存放 IE的临时文件   Cookies 不能保存啊 重启 登入论坛 都要输入密码?
作者: 2011dingfei    时间: 2012-1-17 20:05
标题: 回复 #21 zqjiang 的帖子
改注册表,把cookie放到硬盘上,就OK了
作者: xianglang    时间: 2012-1-18 13:31
IMDISK的动态扩容,能不能在注册表里如"FileName0"="\\??\\C:\\windows\\imdisk.IMG"
之类直接写参数进行?
作者: 2011dingfei    时间: 2012-1-19 21:50
标题: 回复 #23 xianglang 的帖子
不行,只能用命令。%%%%%%%%%%%
作者: 2011dabang    时间: 2012-5-14 22:06
http://www.5i01.cn/topicdetail.php?f=300&t=2200352&p=1
我用了你们的方法,还有这个网址的方法都不能自动创建Y盘\temp




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