ImDisk Virtual Disk Driver是一款免费的虚拟磁盘软件,它支持虚拟硬盘、软盘、光盘映像,还可以创建虚拟内存盘,是非常实用的虚拟盘驱动程序!
imdisk 就是一个ramdisk软件,用imdisk做内存虚拟盘,体积小巧又免费,只有几百k,最为令人称赞的是它的按需分配功能,即建立内存盘时并不立即分配所有的内存,用多少才分配多少,例如你用imdisk创建一个1g容量的内存盘,imdisk 并没有马上占用1g内存,而是内存盘用多少它就占用多少内存。
ImDisk,严格来说并不是完整的 Ramdisk 工具软件,它其实只是一种虚拟磁盘 (virtual disk)类型的驱动程式 (driver)。它可以利用映像档案 (image file)或系统内存 (system memory),来创建虚拟硬盘、软碟、光盘 (CD/DVD)等。
按这里检视图片
软件介绍:
ImDisk Virtual Disk Driver 虚拟磁盘驱动器可以从虚拟内存中或通过 i/o 重定向磁盘文件映像模拟硬盘分区、 软盘驱动器、 cd/dvd-rom.这是一款非常经典实用的虚拟磁盘驱动程序。简单说,imdisk 就是一个ramdisk软件,用imdisk做内存虚拟盘,体积小巧又免费,只有几百k,最为令人称赞的是它的按需分配功能,即建立内存盘时并不立即分配所有的内存,用多少才分配多少,例如你用imdisk创建一个1g容量的内存盘,imdisk 并没有马上占用1g内存,而是内存盘用多少它就占用多少内存。
使用说明:
创建虚拟磁盘非常方便,按照下图就可以轻松创建
在1的位置,输入虚拟硬盘的大小,在2的位置选择容量单位,天天小编选择的是GB,然后在3的位置直接点击OK即可创建成功!
小提示:安装后请在控制面板中打开。支持命令行操作(命令行状态下输入imdisk即可)
将ImDisk当成Ramdisk的基本原理:
1. 创建一个新的映像档案。
2. 将该映像档案挂载到特定的虚拟硬盘上。再来就是考虑如何在系统开关机时自动回存的功能了。
既然 ImDisk 可以将映像档案挂载到虚拟硬盘上,所以只要在系统开机时执行挂载的指令即可。
但 ImDisk (至目前版本, 1.4.1)并没有提供如何将虚拟硬盘内变更后的资料写回至映像档,所以就必须找一个具有“磁盘复制 (disk clone)”功能的工具程式,来达成写回实体硬盘映像档的功能。这边目前我是采用同一作者撰写超小巧的工具程式-rawcopy,来完成这一功能。(也可以使用如 dd for windows 工具)
将上述挂载与写回作成批次指令 (batch file),然后在系统开关机时自动执行批次指令。
以下就把我安装与设定 ImDisk 的心得整理成步骤实行的导引,我的环境为 Windows 7 x64。
1. 下载并安装 ImDisk。
2. 将 ImDisk 服务设定为自动启动。
[控制台]→[系统管理工具]→[服务],找到 [Helper service for ImDisk Virtual Disk Driver],并将其启动类型设定为“自动”。
3. 先暂时关闭 UAC 功能。
[控制台]→[使用者帐户]→[变更使用者帐户控制设定]→将拉条调到最下。设定后需要重新开机。
4. 在[命令提示字符]捷径,鼠标右键,选择“以系统管理员身份执行”点击执行。
5. 执行创建虚拟硬盘的指令 (只要执行一次即可)。
imdisk -a -t vm -s 2G -m R: -p “/fs:fat32 /v:MemDisk /q /y”
-s 指定虚拟硬盘大小;-m 指定硬盘代号;-p 设定格式化参数。
这边我设定的就是 2GB 大小、硬盘代号为 R:、格式化为 fat32 档案系统 (也可设定为 ntfs)。
6. 在 [控制台] 首页,将[检视方式]改为“小图示”,可以看到 [ImDisk Virtual Disk Driver] (原作者可能没有分类好,我在分类主项目都找不到),点击执行后即会出现 ImDisk Control Panel 视窗。
7. 在 ImDisk Control Panel 视窗,可以看到已挂载的虚拟硬盘,点选以后点击下列的 [Save Image] 按钮,会出现一个对话框,选默认即可,将映像档指定档名与位置储存。
我是指定 C:\Bootimg 为 Ramdisk 的储存位置 (包括 rawcopy, Batch 指令档等也是在该位置),档名为“Ramdisk.img”。
ImDisk Virtual Disk Driver 1.9.2
好啦,这样是告第一段落,其实目的只有一个:创建一个已包含虚拟硬盘 (本例为 R 磁盘)磁区内容的映像档。搞这么麻烦的原因实在是因为 ImDisk Control Panel 对于 UAC 启动后总会有权限无法存取等问题,所以必须先暂时关闭 UAC,先创建出映像档再说,成功后再启动回复 UAC 原先等级即可。
8. 下载 rowcopy.zip,解压缩放至 C:\Bootimg 内。
9. 新增并编辑两个档案:Startup.cmd , Shutdown.cmd,将此两个批次档储存至 C:\Bootimg 内。
Startup.cmd
———————————————————————
imdisk -a -t vm -f C:\Bootimg\Ramdisk.img -m R:
———————————————————————
Shutdown.cmd
———————————————————————
C:\Bootimg\rawcopy.exe -m \\.\R: C:\Bootimg\RamDisk.img
imdisk -D -m R:
———————————————————————
-D 必须为大写,亦即无论是否已 lock 住都强制卸载 (dis-mount)。
10. 10. 利用 [Win] +R 快速键,启动“执行 (Run)”对话框,输入 gpedit.msc,可打开“本机群组原则编辑器 (Group Policy)”视窗。
在 [本机原则]→[电脑设定]→[Windows 设定]→[指令码 – (启动/关机)],在“启动”与“关机”对话框内的[指令码]标签,各自新增 Startup.cmd 与 Shutdown.cmd。
按这里检视图片
大功告成! 如此即可在 Windows 系统开机与关机时,会自动挂载与写回映像档。而且利用 ImDisk 达成这样的回存功能,效能比 Dataram 快上太多了。后者我启动 Dataram 回存,开机时间要耗上两分多钟之久,而前者这样的客制化回存功能只需要约 40 秒左右,差很大。
再来就是端赖你如何运用 Ramdisk 特性了。最基本的运用,就是把系统暂存的环境变量,以及浏览器 (browser)的 Cache 档案储存位置,给全设定到 Ramdisk 磁盘上。关机时将虚拟硬盘整个磁区写回映像档、开机时再把映像档挂载到虚拟硬盘上,一切都没有问题,只稍微影响到系统的开关机时间。
按这里检视图片
利用 ImDisk 作为 Ramdisk 机制,我是觉得比较属于克难式的穷人版做法,因为设定繁琐,且稳定度仍有待商榷 (虽然我还没遇到问题过)。如果有打算认真运用 Ramdisk 且会切割 4G 以上空间,我还是建议购买商业性的软件,例如 VSuite Ramdisk 或 Superspeed Ramdisk,就不用搞得这么复杂。
P.S. 关于上述开机用批次指令的加载方式,也可以使用“注册表 (registry)”的方式,可参考下表:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\ImDisk\Parameters]
“LoadDevices”=dword:00000001
“FileName0″=”\\DosDevices\\C:\\Bootimg\Ramdisk.img”
“DriveLetter0″=”R”
“Flags0″=dword:00000200