求助熟悉NFTS的大神

xdayong 2020-03-26 10:25:16
目前项目遇到点问题,具体描述如下:
把一个文件从一个分区拷贝到另一个分区。先从bitmap中获取未使用的簇,把文件写入到这些簇,接着修改MFT表的内容。
做完这些操作后,用chkdsk来检测。在某些时候,chkdsk会提示某些簇被交叉使用,但是我通过代码检测MFT表,没有发现这些簇被多个文件使用。求大神指点迷津。
...全文
187 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xdayong 2020-03-27
  • 打赏
  • 举报
回复
我现在做的事情,类似于windows的磁盘碎片整理,把一个分区的文件,拷贝到另一个分区,并且消除里面的碎片
xdayong 2020-03-27
  • 打赏
  • 举报
回复
引用 4 楼 zgl7903 的回复:
是否可以这样操作, 用一个很小容量的磁盘/卡, 用正常的电脑格式化成NTFS, 然后用你的方式先记录好盘上的所有数据,再用电脑复制一个文件到磁盘,再用你的方式读出,对比前后的变化,看看你的操作和标准的系统的操作有什么区别
我对数据进行重组了,ntfs里面的mft表,记录了文件的一些信息,包括文件的时间,占用大小和实际大小,以及文件在磁盘上的具体存放位置。你可以想想类似于windows自带的磁盘碎片整理,把硬盘上文件存放的位置进行了挪动。文件的内容都是一样,只是MFT表有差异。 chkdsk也只是检测MFT表的错误并进行修复,某些软件用来恢复已删除文件,也是通过分析MFT表来实现的
zgl7903 2020-03-26
  • 打赏
  • 举报
回复
是否可以这样操作, 用一个很小容量的磁盘/卡, 用正常的电脑格式化成NTFS, 然后用你的方式先记录好盘上的所有数据,再用电脑复制一个文件到磁盘,再用你的方式读出,对比前后的变化,看看你的操作和标准的系统的操作有什么区别

xdayong 2020-03-26
  • 打赏
  • 举报
回复
引用 2 楼 zgl7903 的回复:
没有具了解过, 猜一下 —— 从bitmap中获取未使用的簇, 那么写完了是否要更新bitmap中的状态?
是的,写完了,会同步更新bitmap信息
zgl7903 2020-03-26
  • 打赏
  • 举报
回复
没有具了解过, 猜一下 —— 从bitmap中获取未使用的簇, 那么写完了是否要更新bitmap中的状态?
xdayong 2020-03-26
  • 打赏
  • 举报
回复
主要就是需要了解,chkdsk是如何判断一个簇是否是被交叉引用的。 现在我这边,只要一出现这个问题,就有文件被损坏(MFT表里面文件的相应属性被重置了)

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧