lidr2002
驱动牛犊
驱动牛犊
  • 注册日期2002-12-16
  • 最后登录2004-09-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:5694回复:15

为什么我用FileDisk虚拟出来的盘不能用? 请帮帮忙!

楼主#
更多 发布于:2002-12-25 20:50
filedisk /mount 1 aas.img 8M j:
执行上面的命令(filedisk.exe和aas.img都在当前目录),生成了一个j:盘, 但是这个j:盘不能用,提示设备未就绪。

aas.img应该是什么样的文件格式?

那位高手帮帮忙。

谢谢!
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-12-26 09:42
FileDisk的主页上有文件生成工具的
lidr2002
驱动牛犊
驱动牛犊
  • 注册日期2002-12-16
  • 最后登录2004-09-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-12-26 09:48
那个mksparse工具用了,也调试通过了,但在命令行上总是出现“功能错误”。
这句话总是不成功:
if (!DeviceIoControl(
        FileHandle,
        FSCTL_SET_SPARSE,
        NULL,
        0,
        NULL,
        0,
        &BytesReturned,
        NULL
        ))
    {
        PrintLastError(argv[1]);
        return -1;
    }
lidr2002
驱动牛犊
驱动牛犊
  • 注册日期2002-12-16
  • 最后登录2004-09-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于: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) 后才编译通过,这是什么原因呀?

感谢!
deltali
驱动小牛
驱动小牛
  • 注册日期2002-10-25
  • 最后登录2010-07-06
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望23点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-12-26 11:24
那是因为那个control code是自定义的,你可能没有包含定义它的头文件.
你看到了j:,直接用format j:行吗?
我又来了,生命不息,驱动不止。
lidr2002
驱动牛犊
驱动牛犊
  • 注册日期2002-12-16
  • 最后登录2004-09-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-12-26 12:03
对j:的任何操作都出错,提示设备未就绪。

还有别的招吗? 如何才能制作img文件呢?


谢谢!
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-12-26 12:12
那个control io code 定义是标准的,在winioctl.h里
我这试都是好的
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-12-26 12:14
对了,FSCTL_SET_SPARSE只有NTFS才支持,你创建的文件必须是在NTFS卷上
lidr2002
驱动牛犊
驱动牛犊
  • 注册日期2002-12-16
  • 最后登录2004-09-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-12-26 16:41
干吗不试试32M?
lidr2002
驱动牛犊
驱动牛犊
  • 注册日期2002-12-16
  • 最后登录2004-09-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-12-26 16:52
32M和8M在我这里是一样的。都没办法格式化。

难道.img文件里面的数据有特别要求吗? 我用mksparse生成的里面全都是0。
lidr2002
驱动牛犊
驱动牛犊
  • 注册日期2002-12-16
  • 最后登录2004-09-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-12-26 16:54
另外,我在2000的dos窗口下dir出现下面提示:
---------------------------
E:\\filedisk>dir y:
此卷不包含可识别的文件系统。
请确定所有请求的文件系统驱动程序已加载,且此卷未损坏。

E:\\filedisk>
---------------------------
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-12-26 17:08
用32M肯定可以的,filedisk的代码支持最小文件应该是32M,如果要支持8M,需要把SECTION_SIZE改成128,重现编译。
lidr2002
驱动牛犊
驱动牛犊
  • 注册日期2002-12-16
  • 最后登录2004-09-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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>
----------------------------

我出了什么问题?还是不行呀。

谢谢!
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-12-26 17:44
你试试在FAT上随便创建一个32M大的文件(不用mksparse),内容无所谓,用filedisk应该也能工作
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-12-26 17:46
我在XP下,FAT/NTFS/CDFS都试过没有问题的
游客

返回顶部