首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除FAT32 USB上的文件会更改第一个群集信息

删除FAT32 USB上的文件会更改第一个群集信息
EN

Stack Overflow用户
提问于 2009-07-18 03:16:08
回答 4查看 2.4K关注 0票数 0

我已经制作了一个文件恢复软件,它读取FAT32目录项,识别文件的第一个簇,并尝试恢复数据,它应该可以正常工作,但是当我在fat32 U盘上尝试时,发生了以下情况。

未删除文件时分配给该文件的群集编号与删除后立即分配给该文件的群集编号不同。我使用磁盘调查和调整取消删除来验证这一点,他们没有w.ere能够恢复文件。这是一个常见的问题,通常在删除文件名时,第一个字符被更改为0xE5,其余字符保持不变,但这也会更改它的集群信息。

有什么帮助吗?你能试着用你的FAT32 U盘告诉我发生了什么吗?

我的操作系统是Windows Vista,笔式驱动器是单分区FAT32。

EN

回答 4

Stack Overflow用户

发布于 2009-07-21 13:33:49

也许vista真的是故意更改目录条目中的第一个集群字段?它实际上是将其更改为什么?你没有张贴任何实数的例子。如果它在任何情况下都使用像0或0xFFFFFFFF这样的数字覆盖该字段,这是一个非常明确的迹象,表明Vista正在故意破坏这些信息,以便您找不到该文件。如果它不必要地将该字段更改为其他有效的簇号,那就非常奇怪了。

您没有提到的另一件事是,文件的数据实际上是否仍然物理地位于它最初所在的集群中的磁盘上。查看物理存储在旧位置和新位置的实际扇区转储(假设新值是一个真正存在的簇号)将是有趣的。如果两个位置都没有实际的文件数据,您可以完全捕获所有扇区并进行搜索。文件的原始数据是否仍在任何群集/扇区的驱动器上?

我知道这不是一个很好的答案,但由于信息如此之少(并且没有多少倾向于实际安装Vista并尝试这些东西),这就是我所能做的一切。

票数 2
EN

Stack Overflow用户

发布于 2016-08-11 05:59:34

我在谷歌搜索同样的问题时偶然发现了这个问题。这个问题很老了,但我希望我的答案能有所帮助。

此问题与闪存问题无关。当一个文件从FAT32分区中被删除时,它的第一个簇的高位字被清零,简单明了(https://www.cnwrecovery.com/html/fat32.html)。

因此,这是不可能的直接恢复删除的文件(和目录)在FAT32上,不像FAT12/FAT16。

票数 1
EN

Stack Overflow用户

发布于 2009-07-18 05:18:57

简而言之:在闪存中,当一个块被写入时,必须首先擦除该块周围的一簇块,然后考虑到对该块的更改进行重写。因此,写入其邻居被标记为未分配的块(尽管您实际上稍后需要该数据)可能会导致未分配的块被写为零。或者,可以将旧数据块标记为未分配,并将更改写入已空群集中的新数据块,然后在某个位置记录数据块更改。

此行为不是特定于操作系统的,而是由USB设备本身实际处理的。因此,我们需要知道您使用的是哪种类型的设备,除非您所说的是所有USB闪存设备都会发生这种情况,而这在您的问题中并不清楚。

Anand Shimpi在他现在著名的SSD Anthology文章中(例如,在降级一章中)更好地解释了长版本;如果你喜欢这类东西,甚至还有detailed follow up

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1146612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档