闪存原始数据因读取工具而异为什么?

问题描述

我一直在使用 8GB 记忆棒中的原始数据,直接在特定扇区中读取和写入,但由于某些原因,更改不会保持一致。

我已经使用 Active @ disk Editor 在特定扇区写入一个字符串,当我通过 Active 读取它时它似乎是一致的(它可以在卸载、重新启动......),但如果我尝试通过终端读取它使用ddhexdump 结果不同。

前段时间我正在研究完全有效地擦除磁盘的方法,我在某处读到固态驱动器(例如闪存驱动器或 SSD)的内存比其声明的要多,因此其内部结构不断更换部分内存以增加寿命或类似的东西。

我不知道是不是因为这个,或者它是否正确。你能告诉我我是否错了或者在哪里可以找到关于这个主题的好的文档?

解决方法

好吧,我刚刚想通了。

显然,当您在 Hex 编辑器中打开磁盘时,您可以通过两种方式打开它,您可以将它作为物理磁盘(整个磁盘)或作为逻辑磁盘(也称为卷或分区)打开。

Active @ Disk Editor 将其作为物理磁盘打开,而使用 ddhexdump 将其转储为逻辑磁盘。换句话说,它正在转储物理磁盘内唯一分区的内容。这意味着在我使用 Active 写入数据的实际物理扇区和我正在读取的物理扇区之间存在偏移(相当大的偏移,2048 个扇区,每个扇区 512 字节)。

所以正在做出改变,我只是看错了位置。希望这可以为某人节省几分钟时间。