阅读:5694回复:15
为什么我用FileDisk虚拟出来的盘不能用? 请帮帮忙!
filedisk /mount 1 aas.img 8M j:
执行上面的命令(filedisk.exe和aas.img都在当前目录),生成了一个j:盘, 但是这个j:盘不能用,提示设备未就绪。 aas.img应该是什么样的文件格式? 那位高手帮帮忙。 谢谢! |
|
沙发#
发布于:2002-12-26 09:42
FileDisk的主页上有文件生成工具的
|
|
板凳#
发布于:2002-12-26 09:48
那个mksparse工具用了,也调试通过了,但在命令行上总是出现“功能错误”。
这句话总是不成功: if (!DeviceIoControl( FileHandle, FSCTL_SET_SPARSE, NULL, 0, NULL, 0, &BytesReturned, NULL )) { PrintLastError(argv[1]); return -1; } |
|
地板#
发布于:2002-12-26 09:52
另外,请问大侠:我的VC里面不认识FSCTL_SET_SPARSE,我手工加了一行#define FSCTL_SET_SPARSE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 39, METHOD_BUFFERED, FILE_WRITE_DATA) 后才编译通过,这是什么原因呀?
感谢! |
|
地下室#
发布于:2002-12-26 11:24
那是因为那个control code是自定义的,你可能没有包含定义它的头文件.
你看到了j:,直接用format j:行吗? |
|
|
5楼#
发布于:2002-12-26 12:03
对j:的任何操作都出错,提示设备未就绪。
还有别的招吗? 如何才能制作img文件呢? 谢谢! |
|
6楼#
发布于:2002-12-26 12:12
那个control io code 定义是标准的,在winioctl.h里
我这试都是好的 |
|
7楼#
发布于:2002-12-26 12:14
对了,FSCTL_SET_SPARSE只有NTFS才支持,你创建的文件必须是在NTFS卷上
|
|
8楼#
发布于:2002-12-26 14:26
hi, coolice,
谢谢! 我这里还是有问题,mksparse可以用了,生成的文件里面全是0x0。 执行E:\\filedisk>filedisk /mount 0 e:\\aa.img 8M i:生成了i盘,但这个i盘不能格式化,在我的电脑里面访问,提示需要格式化,但格式化总是不成功。在命令行上执行format结果如下: E:\\filedisk>format /fs:fat i: 文件系统的类型是 RAW。 新的文件系统是 FAT。 警告,非移动磁盘驱动器 I: 上的所有数据将会丢失! 是否继续进行格式化(Y/N)?y 正在校验 0M 磁盘过大,无法为指定文件系统进行格式化。 E:\\filedisk> 请问这是什么地方出了问题呀? 我的e:盘是NTFS格式的。 lidr |
|
9楼#
发布于:2002-12-26 16:41
干吗不试试32M?
|
|
10楼#
发布于:2002-12-26 16:52
32M和8M在我这里是一样的。都没办法格式化。
难道.img文件里面的数据有特别要求吗? 我用mksparse生成的里面全都是0。 |
|
11楼#
发布于:2002-12-26 16:54
另外,我在2000的dos窗口下dir出现下面提示:
--------------------------- E:\\filedisk>dir y: 此卷不包含可识别的文件系统。 请确定所有请求的文件系统驱动程序已加载,且此卷未损坏。 E:\\filedisk> --------------------------- |
|
12楼#
发布于:2002-12-26 17:08
用32M肯定可以的,filedisk的代码支持最小文件应该是32M,如果要支持8M,需要把SECTION_SIZE改成128,重现编译。
|
|
13楼#
发布于:2002-12-26 17:34
下面是我重新启动之后,在dos窗口下的整个过程:
---------------------------- Microsoft Windows 2000 [Version 5.00.2195] (C) 版权所有 1985-1998 Microsoft Corp. D:\\>e: E:\\>dir 驱动器 E 中的卷是 WORKING 卷的序列号是 A8D6-5D89 E:\\ 的目录 2002-12-26 04:44p 33,554,432 32.img 2002-12-26 02:00p 8,388,608 aa.img 2002-12-26 02:08p <DIR> filedisk 2 个文件 41,943,040 字节 1 个目录 12,076,744,704 可用字节 E:\\>cd filedisk E:\\filedisk>dir 驱动器 E 中的卷是 WORKING 卷的序列号是 A8D6-5D89 E:\\filedisk 的目录 2002-12-26 02:08p <DIR> . 2002-12-26 02:08p <DIR> .. 2002-02-12 07:39p 45,056 filedisk.exe 2002-12-26 02:08p 0 mksparse 2002-08-16 06:52p 24,576 mksparse.exe 3 个文件 69,632 字节 2 个目录 12,076,744,704 可用字节 E:\\filedisk>mksparse syntax: mksparse <filename> [size[k|M|G]] E:\\filedisk>mksparse e:\\lidr.img 32M E:\\filedisk>filedisk syntax: filedisk /mount devicenumber filename [size[k|M|G] | /ro | /cd] driveletter filedisk /umount driveletter example: filedisk /mount 0 c:\\temp\\filedisk.img 8M f: filedisk /mount 1 c:\\temp\\cdimage.iso /cd i: filedisk /umount f: filedisk /umount i: E:\\filedisk>filedisk /mount 0 e:\\lidr.img 32M i: E:\\filedisk>dir i: 此卷不包含可识别的文件系统。 请确定所有请求的文件系统驱动程序已加载,且此卷未损坏。 E:\\filedisk>format 找不到所需参数 - E:\\filedisk>format i: 文件系统的类型是 RAW。 请用 /FS 命令选项指定在本卷上要使用的文件系统。 E:\\filedisk>format /fs:fat i: 文件系统的类型是 RAW。 新的文件系统是 FAT。 警告,非移动磁盘驱动器 I: 上的所有数据将会丢失! 是否继续进行格式化(Y/N)?y 正在校验 0M 磁盘过大,无法为指定文件系统进行格式化。 E:\\filedisk>dir e:\\lidr.img 驱动器 E 中的卷是 WORKING 卷的序列号是 A8D6-5D89 e:\\ 的目录 2002-12-26 05:26p 33,554,432 lidr.img 1 个文件 33,554,432 字节 0 个目录 12,076,744,704 可用字节 E:\\filedisk> ---------------------------- 我出了什么问题?还是不行呀。 谢谢! |
|
14楼#
发布于:2002-12-26 17:44
你试试在FAT上随便创建一个32M大的文件(不用mksparse),内容无所谓,用filedisk应该也能工作
|
|
15楼#
发布于:2002-12-26 17:46
我在XP下,FAT/NTFS/CDFS都试过没有问题的
|
|