ImDisk Virtual Disk Driver(虚拟磁盘驱动程序)v2.0.10 绿色汉化版
ImDisk Virtual Disk Driver汉化版是一款非常经典实用的虚拟磁盘驱动程序,知识兔可以从虚拟内存中或通过I/O重定向磁盘文件映像模拟硬盘分区、软盘驱动器、cd/dvd-rom。
imdisk 就是一个ramdisk软件,用imdisk做内存虚拟盘,体积小巧又免费,只有几百k,最为令人称赞的是它的按需分配功能,即建立内存盘时并不立即分配所有的内存,用多少才分配多少,例如你用imdisk创建一个1g容量的内存盘,imdisk 并没有马上占用1g内存,而是内存盘用多少它就占用多少内存。
ImDisk,严格来说并不是完整的 Ramdisk 工具软件,它其实只是一种虚拟磁盘 (virtual disk)类型的驱动程式 (driver)。它可以利用映像档案 (image file)或系统内存 (system memory),来创建虚拟硬盘、软碟、光盘 (CD/DVD)等。
按这里检视图片
因为 ImDisk 极为轻巧,且适用各类型 Windows 系统,知识兔包括 32/64 位元版本,更重要的是,它的 I/O 效能极佳,所以许多玩家把它当成 Ramdisk 来使用,知识兔可以参考这边-ImDisk 论坛。
不过前述提及,ImDisk 并非是专用的 Ramdisk 软件,所以它可没有简易的 GUI 供设定,需要透过命令列模式 (console mode)才能作完整设计。再则,它也没有分享回存功能,所以也需要自行写批次指令来达成在系统的开/关机时的自动回存。还有个更大的问题是,由于 Windows 7 有“使用者帐户控制 (UAC, User Account Control)”机制,使得启动与设定 ImDisk 服务,也麻烦许多。
但是 ImDisk 真的相当轻巧,它就只是个驱动程式一般,并不会造成系统多大的负荷,且占用内存极小。再则,它的 I/O 效能极佳,不只在平常的暂存盘案读写效能而已,更可以在自动回存时,大幅降低系统开关机时的档案读写 I/O 时间。
作为虚拟磁盘的驱动程式,ImDisk 最主要的作用就是在于将某一个映像档案 (Image file),给挂载 (mount)到任一特定的虚拟硬盘上 (可自行指定硬盘代号)。
所以如何将 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”。
好啦,这样是告第一段落,其实目的只有一个:创建一个已包含虚拟硬盘 (本例为 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
更新日志
Fixed a problem with auto-detecting logical partitions in extended partitions. In this new version it also supports auto-detecting more than eight partitions.
使用说明
知识兔双击install.cmd 进行安装,知识兔双击uninstall_imdisk.cmd 卸载。安装后你可以在控制面板中找到,或者在右键菜单中直接加载映像文件即可。
软件截图
下载仅供下载体验和测试学习,不得商用和正当使用。