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

删除FAT32 USB上的文件会更改第一个群集信息,usb,flash-memory,Usb,Flash Memory,我已经制作了一个文件恢复软件,它读取FAT32目录条目,识别文件的第一个集群并尝试恢复数据,它应该可以正常工作,但是当我在FAT32 usb磁盘上尝试时,会发生以下情况 未删除文件时分配给该文件的群集编号与删除后立即分配给该文件的群集编号不同。我使用Disk Investor和Tune Up Undelete来验证这一点,他们都无法恢复文件。常见的问题是,通常在删除文件名时,第一个字符更改为0xE5,其余字符保持不变,但这也改变了它的集群信息 有什么帮助吗? 你能试试你的FAT32 USB,告诉

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

未删除文件时分配给该文件的群集编号与删除后立即分配给该文件的群集编号不同。我使用Disk Investor和Tune Up Undelete来验证这一点,他们都无法恢复文件。常见的问题是,通常在删除文件名时,第一个字符更改为0xE5,其余字符保持不变,但这也改变了它的集群信息

有什么帮助吗? 你能试试你的FAT32 USB,告诉我发生了什么事吗


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

您可能看到了USB效果

上的这篇文章有更多关于这方面的注释

由于磨损均衡(控制器将数据切换到不同扇区,以增加写入操作时内存芯片的预期寿命),标准硬盘驱动器诊断实用程序无法轻松处理U盘


更新:与我上述假设相矛盾的参考。
最近有一篇论文 表示
磨损整平在物理层面起作用,不会影响 逻辑级别(软件访问)。

我还没有读过这篇论文。。。但是,对于所有对闪存设备感兴趣的人来说,这似乎是一个很好的信息。

您可能看到了USB效应

上的这篇文章有更多关于这方面的注释

由于磨损均衡(控制器将数据切换到不同扇区,以增加写入操作时内存芯片的预期寿命),标准硬盘驱动器诊断实用程序无法轻松处理U盘


更新:与我上述假设相矛盾的参考。
最近有一篇论文 表示
磨损整平在物理层面起作用,不会影响 逻辑级别(软件访问)。

我还没有读过这篇论文。。。但是,对于所有对闪存设备感兴趣的人来说,这似乎是一个很好的信息。

简而言之:在闪存中,当一个块被写入时,该块周围的一组块必须首先被擦除,然后根据对该块的更改重新写入。因此,写入其邻居标记为未分配的块(尽管您以后确实需要该数据)可能会导致未分配的块被写入为零。或者,旧的块可能会被标记为未分配,并且已经空白的集群中的新块可能会被写入到更改中,然后块更改会被记录到某个地方

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


阿南德·希皮(Anand Shimpi)在他现在著名的文章中(例如,在《退化》一章中)对长版本进行了更好的解释;甚至还有一个“如果你喜欢”之类的东西。

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

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


阿南德·希皮(Anand Shimpi)在他现在著名的文章中(例如,在《退化》一章中)对长版本进行了更好的解释;如果你喜欢的话,甚至还有一个问题。

也许vista真的有意更改目录项中的第一个集群字段?它实际上把它改成了什么?你没有发布任何真实数字的例子。如果它在任何情况下都用一些数字(如0或0xFFFFFFFF)覆盖该字段,那么很肯定Vista会故意破坏这些信息,因此您无法找到该文件。如果不必要地将该字段更改为其他有效的簇号,那么这很奇怪

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


我知道这不是一个很好的答案,但由于信息太少(而且我也不太想实际安装Vista并尝试这些东西),这就是我所能做的。

也许Vista真的有意更改目录项中的第一个群集字段?它实际上把它改成了什么?你没有发布任何真实数字的例子。如果它在任何情况下都用一些数字(如0或0xFFFFFFFF)覆盖该字段,那么很肯定Vista会故意破坏这些信息,因此您无法找到该文件。如果不必要地将该字段更改为其他有效的簇号,那么这很奇怪

另一件你没有提到的事情是,如果文件的数据是真实的