ImDisk 命令行用法-CSDN博客 https://blog.csdn.net/stevenldj/article/details/100083900 ImDisk 命令行用法-CSDN博客 成就一亿技术人! Imdisk 是一款开源的虚拟盘工具,可以加载虚拟光盘文件;可以创建、加载、读写虚拟磁盘文 件;可以创建、读写虚拟内存盘;可以动态增加虚拟盘容量。 ================================================== 通过实例了解imdisk.exe 的用法。 注:下面的命令需要以管理员身份运行(在cmd.exe 上点右键,选择“以管理员身份运行”)。 装载虚拟光盘D:\test.iso 到D:\mount\test。 imdisk -a -f D:\test.iso -m D:\mount\test 装载虚拟光盘D:\test.iso 到第一个可用的盘符。 imdisk -a -f D:\test.iso -m #: 在“物理内存”中创建一个 32M 大小的虚拟磁盘,盘符为Z,并格式化为NTFS 格式。 imdisk -a -o awe -m Z: -s 32M -p "/fs:NTFS /q /y" 相当于下面两条命令: imdisk -a -o awe -m Z: -s 32M format Z: /fs:NTFS /q /y 在“物理内存”中创建一个“比可用物理内存小 2G”的虚拟磁盘,盘符为Z,并格式化为NTFS 格 式。 imdisk -a -o awe -m Z: -s -2G -p "/fs:NTFS /q /y" 在“虚拟内存”中创建一个 32M 大小的虚拟磁盘,盘符为Z,并格式化为NTFS 格式。 imdisk -a -t vm -m Z: -s 32M -p "/fs:NTFS /q /y" 在D 盘创建一个 32M 大小的磁盘文件 1.img,并将其挂载到Z 盘,格式化为NTFS 格式。 对Z 盘的读写直接就是对文件的读写。 注意:创建时会覆盖已存在的文件,没有警告。 imdisk -a -t file -f D:\1.img -m Z: -s 32M -p "/fs:NTFS /q /y" 将D:\1.img 先复制到内存中,然后再挂载到Z 盘。 对Z 盘的读写就是对内存的读写,D:\1.img 中的内容不会被改变。 imdisk -a -t file -o awe -f D:\1.img -m Z: 将D:\1.img 以只读的方式挂载到Z 盘,Z 盘只能读,不能写。 imdisk -a -t file -o ro -f D:\1.img -m Z: 列出虚拟磁盘。 imdisk -l 列出虚拟磁盘编号。 imdisk -l -n 查看Z 盘的相信信息。 imdisk -l -m Z: 查看第 0 号磁盘的详细信息。 imdisk -l -u 0 增加Z 盘的大小(再增加 32 MB): 第 1 頁,共 6 頁 2024/7/9 下午 11:42 ImDisk 命令行用法-CSDN博客 https://blog.csdn.net/stevenldj/article/details/100083900 imdisk -e -m Z: -s 32M 卸载虚拟磁盘Z(卸载时必须关闭所有正在使用Z 盘的软件,比如资源管理器),释放磁盘资 源。 imdisk -d -m Z: 强行卸载虚拟磁盘Z(无论Z 盘是否正在被使用),释放磁盘资源。 imdisk -D -m Z: 移除虚拟磁盘Z,但不释放磁盘资源,相当于回收盘符,而磁盘内容丢在一边不管它。 只有当虚拟磁盘没有响应,无法卸载的时候才使用该方法。 imdisk -R -m Z: 对于没有指定盘符的虚拟磁盘,可以使用磁盘编号进行卸载,比如卸载第 0 号磁盘: imdisk -d -u 0 ================================================== imdisk.exe 的帮助内容 语法: 查看版本: imdisk --version 加载磁盘: imdisk -a -t 类型 -m 挂载点 [-o 选项1[,选项2 ...]] [-f|-F 文件] [-s 大小] [-b 偏移] [-v 分区] [-S 扇区大小] [-u 磁盘编号] [-x 扇区/磁道] [-y 磁道/柱面] [-p "format 命令的参数"] [-P] 卸载磁盘: imdisk -d|-D [-u 磁盘编号 | -m 挂载点] [-P] 移除磁盘: imdisk -R -u 磁盘编号 列出磁盘: imdisk -l [-n] [-u 磁盘编号 | -m 挂载点] 编辑磁盘状态: imdisk -e [-s 大小] [-o 选项1[,选项2 ...]] [-u 磁盘编号 | -m 挂载点] ------------------------------ -a     加载虚拟磁盘。 -d     卸载虚拟磁盘,并释放所有资源。使用 -D 可以强制卸载,无论设备释放正在使用。 -R     移除无响应的虚拟磁盘。只有当虚拟磁盘出现某种问题导致无法以安全的方式卸载时, 才应将其作为最后的手段。例如,对于代理型虚拟磁盘,有时在代理通信失败时会发生这种情 况。请注意,此操作不会尝试“卸载文件系统”或“锁定警告”! -e     修改现有虚拟磁盘。     配合 -s 参数可以扩展虚拟磁盘大小。请注意,磁盘扩展后需要重新格式化,否则只能使 用之前格式化的空间。除非您当前运行的是Windows 2000 或更高版本,而且虚拟磁盘的文件系 第 2 頁,共 6 頁 2024/7/9 下午 11:42 ImDisk 命令行用法-CSDN博客 https://blog.csdn.net/stevenldj/article/details/100083900 统是NTFS 才不需要重新格式化。     配合 -o 参数可以更改虚拟磁盘的介质特征。只能更改“是否可写、是否可移动”特征。 ------------------------------ -t 类型     选择虚拟磁盘的存储类型,取值为vm、file、proxy(默认为vm)。 vm     使用系统的“虚拟内存”创建虚拟磁盘(读写磁盘就是在读写虚拟内存)。通过 -f 参数, 可以将指定的文件加载到虚拟磁盘所在的内存中。 file     使用文件创建虚拟磁盘(读写磁盘就是在读写文件),通过 -f 参数指定文件路径。 proxy     使用代理创建虚拟磁盘,通过管道访问磁盘数据。通过 -f 参数指定的命名管道。 ------------------------------ -f file 或 -F file     指定要使用的文件,或指定代理型虚拟磁盘的命名管道名称。对于代理型虚拟磁盘,如 果 -o 选项包括ip 或comm,则file 可以是远程服务器地址或COM 端口。     你可以使用 -f 指定DOS 样式的路径,例如C:\dir\image.bin 或 \ \server\share\image.bin,也可以使用 -F 指定NT 样式的本地路径,例如 \Device\Harddisk0\Partition1\image.bin。这使得可以指定没有分配盘符的磁盘或通信设备上的 文件。 -l     列出已配置的设备。如果同时使用 -u 或 -m,则显示有关该设备的详细信息。 -n     打印ImDisk 设备名称时,仅打印不带 \Device\ImDisk 前缀的单元号。 -s 大小     指定虚拟磁盘的大小。默认单位是字节,可以使用后缀b、k、m、g、t、K、M、G 或 T,分别表示 512 字节块的数量、千字节、百万字节、十亿字节、万亿字节、千字节、兆字节、千 兆字节和太字节。后缀也可以是 %,表示在创建vm 类型虚拟磁盘时可用空闲物理内存的百分 比。     对于“使用不存在的文件路径创建文件型虚拟磁盘”或“创建不带 -f 或 -F 参数的vm 型虚 拟磁盘”的情况,必须指定磁盘大小,其它情况可以不指定磁盘大小。如果在创建文件型虚拟磁盘 时指定了磁盘大小,则该文件将被调整为指定的大小。     大小可以是负值,表示可以物理内存的大小减去此大小。例如 -400M 的虚拟磁盘的大小 将是可用物理内存总数减去 400 MB。 -b 偏移量     从文件的指定偏移位置开始将文件加载到虚拟磁盘的起始位置,读写操作将以此偏移位 置为起点。     对于一些已知格式的非raw 类型的磁盘镜像,可以使用auto 作为偏移值。目前支持自动 选择的文件格式是Nero 的 .nrg 和微软的 .sdi 镜像文件。 -v 分区编号     指定在装载包含主引导记录和分区表的原始硬盘映像文件时要装入的分区的编号。用 1-4 第 3 頁,共 6 頁 2024/7/9 下午 11:42 ImDisk 命令行用法-CSDN博客 https://blog.csdn.net/stevenldj/article/details/100083900 来指定主分区,用 5-8 来指定扩展分区。 -S 扇区大小     用于虚拟磁盘设备的扇区大小。默认值为 512 字节,除了那些默认使用 2048 字节的 CD-ROM/DVD-ROM 设备。 -x 扇区数/磁道     请参阅下面的 -y 选项的说明。 -y 磁道数/柱面 -x 和 -y 选项可用于指定“每柱面磁道数”和“每磁道”。     这对于构建可引导映像以便以后写入到物理设备非常有用。默认值取决于使用 -o 选项指 定的设备类型。如果指定了fd 选项,则默认值基于虚拟磁盘的大小,例如,1440K 镜像为“2磁 道/柱面”和“18扇区/磁道”。 -p "format 命令的参数"     如果指定了 -p,则在创建新虚拟磁盘时,将调用“format”命令来格式化磁盘。"format 命令的参数" 必须是带双引号的字符串。该字符串将添加到以 'format' 开头的命令行中。您通常会 指定类似 "/fs:ntfs /q /y" 的内容,即创建具有快速格式化且无需用户交互的NTFS 文件系统。 ------------------------------ -o 选项     设置或重置选项。 ro     指定虚拟磁盘为只读。对于vm 类型的虚拟磁盘,仅当指定了 -f 选项时,才能使用此选 项。 rw     指定虚拟磁盘可读写。这是默认设置。它可以与 -e 参数一起使用,以将现有的只读虚拟 磁盘设置为可写。 sparse     在镜像文件上设置NTFS 稀疏属性(NTFS 压缩)。这对代理型或vm 型的虚拟磁盘没有 效果。 rem     指定虚拟磁盘为可移动磁盘(相对于固定磁盘)。这会更改驱动程序返回给操作系统的 设备属性信息。例如,这会更改某些文件系统的缓存写入方式。 fix     指定虚拟磁盘为固定磁盘(相对于可移动磁盘)。这是默认设置。与 -e 参数一起使用, 以将现有可移动虚拟磁盘设置为固定磁盘。 saved     清除现有虚拟磁盘中的“镜像已被修改”标志。修改映像时,此标志由驱动程序设置,并 显示在虚拟磁盘的 -l 输出中。saved 选项仅对 -e 参数有效。(可用于监视磁盘有没有被改动)     请注意,虚拟软盘或虚拟光盘始终是只读和可移动设备,并且无法更改。 cd     指定虚拟磁盘为虚拟光盘。如果使用 -f 选项指定的文件的扩展名是 .iso、.nrg 或 .bin, 则这是缺省值。 fd     指定虚拟磁盘为虚拟软盘。如果虚拟磁盘的大小是 160K,180K,320K,360K, 第 4 頁,共 6 頁 2024/7/9 下午 11:42 ImDisk 命令行用法-CSDN博客 https://blog.csdn.net/stevenldj/article/details/100083900 640K,720K,820K,1200K,1440K,1680K,1722K,2880K,123264K 或 234752K 中的任 何一个,则这是默认值。 hd     指定虚拟磁盘为虚拟硬盘。除非文件扩展名或大小与默认为cd 或fd 选项的标准相匹 配,否则这是默认值。 raw     指定虚拟磁盘为“未知”设备。系统不会尝试使用此类设备自行执行任何操作,但它可以 与第三方驱动程序结合使用,第三方驱动程序可以使用此虚拟磁盘作为存储后台。 ip     只能与代理类型的虚拟磁盘一起使用。使用此选项,用户模式服务组件将被初始化以通 过TCP/IP 连接到ImDisk 存储服务器。-f 参数可以指定远程主机地址,地址中可以使用冒号指定 端口号,例如http://xxx.xxx.xxx.xxx:xxxx comm     只能与代理类型的虚拟磁盘一起使用。使用此选项,用户模式服务组件将被初始化以通 过COM 端口连接到ImDisk 存储服务器。-f 参数可以指定要连接的COM 端口,端口后面可以跟 冒号,空格,然后是设备设置选项字符串,其语法与MODE 命令相同。 shm     只能与代理类型的虚拟磁盘一起使用。使用此选项,驱动程序将使用共享内存块与同一 计算机上的存储服务器进行通信,以传输I/O 数据。 awe     只能与文件型虚拟磁盘一起使用。使用此选项,驱动程序将映像文件的内容复制到物理 内存。更改将不会写入到映像文件。如果此选项没有与 -f 一起使用,则仅使用物理内存而不加载 映像文件。在这种情况下,需要使用 -s 参数来指定内存大小。此选项需要awealloc 驱动程序,该 驱动程序需要Windows 2000 或更高版本。 bswap     指示驱动程序交换从映像文件读取或写入的每对字节(大端序或小端序)。在检查来自 某些嵌入式系统的镜像时很有用,其中的数据以反字节序存储。 shared     指示驱动程序以共享写入模式打开映像文件,即使以写入模式打开的映像也是如此。这 对于“将多分区映像中的每个分区同时挂载为不同的虚拟磁盘”非常有用。如果使用不正确的偏移 量和大小参数,它可能会损坏文件系统,因此请谨慎使用! par     并行I/O。适用于文件型虚拟磁盘。设置此标志后,驱动程序会在与原始请求相同的线 程上下文中,将虚拟磁盘的读写请求直接发送到处理映像文件的文件系统驱动程序。在某些情况 下,此标志可以提高性能,尤其是当您使用由存储在其它虚拟磁盘、网络文件共享或类似存储上 的映像文件支持的多层虚拟磁盘时。     在所有方案中都不支持此标志,具体取决于需要完成对映像文件的请求的其他驱动程 序。如果底层驱动程序不能同时处理I/O 请求,它还可能降低性能或导致读取和写入失败。 ------------------------------ -u 磁盘编号     与 -a 一起,为imdisk 设备请求一个特定的设备编号,而不是自动分配。与 -d 或 -l 一起 指定要删除或查询的虚拟磁盘的编号。 -m 挂载点     指定新虚拟磁盘、要查询的虚拟磁盘或要删除的虚拟磁盘的盘符或挂载点。创建新虚拟 磁盘时,可以指定 #: 作为挂载点,在这种情况下,将使用第一个可用的盘符。 第 5 頁,共 6 頁 2024/7/9 下午 11:42 ImDisk 命令行用法-CSDN博客 https://blog.csdn.net/stevenldj/article/details/100083900 -P     保存状态。与 -a 一起使用,将虚拟磁盘的状态保存到注册表中,以便在加载驱动程序时 自动重新创建相同的虚拟磁盘,这通常在系统启动期间发生。在使用 -d 或 -D 时,此类状态信息 也将从注册表中删除。以这种方式保存的信息有一些限制。只保存直接在内核级驱动程序中实现 的功能,因此,例如使用 -p 选项格式化虚拟磁盘将不会被保存。 ================================================== imdisk 误操作会引起一些问题: 例如用盘符Z 创建了一个虚拟磁盘,没有卸载,又用盘符Z 创建了一个虚拟磁盘,会造成之前创 建的虚拟磁盘无法访问。避免这种问题的方法是在创建磁盘之前先判断Z 盘是否存在: if not exist z: imdisk -a -o awe -s 32M -m Z: -p "/fs:ntfs /q /y" 对于没有盘符的虚拟磁盘,可以通过编号进行卸载,例如: imdisk -d -u 0 如果在创建虚拟盘时使用了硬盘分区的盘符,造成硬盘分区无法访问,可以在卸载虚拟磁盘后, 用系统的“磁盘管理”工具重新给硬盘分区分配盘符。 第 6 頁,共 6 頁 2024/7/9 下午 11:42