阅读:3195回复:26
磁盘读写问题
请教高手,如何把一个磁盘(Windows操作系统不能识别)的数据读写到另一个磁盘(windows系统),说说大概的思路,我一点都不懂,多谢啊!
|
|
沙发#
发布于:2002-03-10 22:26
你的硬盘是什么?我想你可能应该直接读写硬盘的磁道和扇区了。可以先拿一张软盘练一下
|
|
板凳#
发布于:2002-03-11 08:28
多谢LIUTANG,我的硬盘是DSP硬盘,在windows下只能看到是空盘,其实上面有数据,再问一句,如何找到软盘或硬盘(有两个硬盘,一个能识别,一个不能)。
再次感谢。 |
|
地板#
发布于:2002-03-11 15:44
不知道磁盘文件系统的格式,就是读出扇区的内容也没有用呀. 还不如先用linux的分区工具查看一下你硬盘的格式. 再查相关格式的资料,编个程序转换一下就可以了. |
|
|
地下室#
发布于:2002-03-11 16:46
如果知道磁盘的格式呢,你说的“再查相关格式的资料”是指哪方面的资料。
|
|
5楼#
发布于:2002-03-11 16:59
你这个空白硬盘是准备干什么用呢?根据情况不同需要开发文件系统或者直接存取硬盘,你应该说明白点呀!后者简单。前者复杂,你如果没有点功力是不行的。
|
|
6楼#
发布于:2002-03-12 11:32
如果知道磁盘的格式呢,你说的“再查相关格式的资料”是指哪方面的资料。 比方说是fat16或fat32或ntfs或ext2 等等的磁盘文件系统. 你先根据boot分区信息来确定磁盘文件系统. 然后再查相关格式的资料. |
|
|
7楼#
发布于:2002-03-12 11:51
请介绍一个流程:假设是fat16,我要获得上面的文件,应先读什么区,再根据什么读取什么,一个流程。多谢!
|
|
8楼#
发布于:2002-03-12 12:15
请介绍一个流程:假设是fat16,我要获得上面的文件,应先读什么区,再根据什么读取什么,一个流程。多谢! fat16那就太简单了. 1.先读 mbr,读出你想要处理的分区的起始扇区(boot sector). 2.读出boot sector中fat表的大小,cluster的大小等信息. 3.利用以上信息确定dir根目录的起始扇区. 4.在目录表中查找你想处理的文件的目录项. 5.根据目录项中起始扇区号,结合fat表,就可读取文件的数据了. 建议,用软盘先试,软盘没有mbr的,所以直接可以从第二步开始. 用debug 读取head= 0,cylinder 0,sector 1)扇区就是boot sector 了. |
|
|
9楼#
发布于:2002-03-12 12:28
我读取了软盘的一个扇驱(利用此网站的一个vxd程序),from head=0 track=0 sector=1,并把它存入一个TXT文件中,结果是
“? |
|
10楼#
发布于:2002-03-12 12:59
[quote]我读取了软盘的一个扇驱(利用此网站的一个vxd程序),from head=0 track=0 sector=1,并把它存入一个TXT文件中,结果是
“? |
|
|
11楼#
发布于:2002-03-12 13:47
singwoo:我按你的方法做了,结果与我前面说的有点类似,都有“Non-System diskette
Replace and press any key to reboot ” 这些东西,只是多了地址及16进制表示,这是boot sector吗,怎么获得fat表的大小,cluster的大小等信息 |
|
12楼#
发布于:2002-03-12 14:08
to index:
1. 这个方法在我机器上是没问题的.win98,win2000都没有问题. 2. boot sector 中有fat表和dir信息. |
|
|
13楼#
发布于:2002-03-12 14:23
singwoo:
你是说我这样做出现了问题吗?我是说怎么从其中获得fat表和dir信息 我的QQ:76300124 |
|
14楼#
发布于:2002-03-12 14:56
而我的意思是让你试一下软盘.因为你先想了解fat的格式. 而软盘是fat12的格式.比较简单. 我猜你出错的原因是你用你的那块不能识别硬盘来试的. 既然在windows下不能识别,当然要出错的了. 还有一种方法可以得到boot sector,就是用 norton diskedit 非常老了,但很管用.(只能在dos下用) fat表信息和dir信息的索引的确在boot sector.你parse 一下就可以得到了.老早我做过fat文件系统的. 不好意思,QQ不能上.我不在国内.晚上我在家可以上QQ. 我的QQ是84070533 |
|
|
15楼#
发布于:2002-03-12 15:24
非常感谢singwoo:
我是按你的方法做的,用的是软盘。结果是: |
|
|
16楼#
发布于:2002-03-12 15:41
呵呵,不用谢. 不过你那个debug.out里的信息有点问题.建议format后再 输出一下debug.out. 还有,对boot sector parse时要注意字节顺序. 非intel 80x86的cpu要注意字节对齐. |
|
|
17楼#
发布于:2002-03-12 16:02
singwoo:
我格式化后再做了一遍,是空盘,结果如下。 |
|
|
18楼#
发布于:2002-03-12 16:02
singwoo:
我格式化后再做了一遍,是空盘,结果如下。这回对了吗? |
|
|
19楼#
发布于:2002-03-12 16:39
关于FAT16的资料可以在DOS使用手册中找到。
请教singwoo,我现在正在研究直接读写硬盘,并想在硬盘上建立操作系统可以识别的文件系统,所以对你所说的,用linux的分区工具查硬盘格式很感兴趣,你能不能说得清楚一些,谢谢了。 |
|
上一页
下一页