从技术上讲,格式化分区时会发生什么?

从技术上讲,格式化分区时会发生什么?

我想了解重新格式化分区(而不是删除分区)时磁盘上会发生什么技术问题,以及恢复重新格式化之前分区上的信息的可能性有多大。我之所以问这个问题,是因为我无意中重新格式化了一个分区,并被告知我的东西无法恢复。

答案1

取决于你做了什么类型的格式

首先要做的事情立即停止使用此磁盘 如果可能的话,请进行备份,如果有大量可用空间,您可以以超级用户身份压缩此备份,每当我需要进行这样的备份时,我都会运行dd if=/dev/sda|pv -s 500g|bzip2|dd of=/path/to/backup 确保备份位于单独的磁盘上

pv 是可选的,它只是告诉我剩余的数据量,它会减慢速度,这里我告诉它预计有 500g 的数据,如果超过这个数据,备份就不会停止,如果你只使用 pv,它只会显示正在传递的信息量,bzip2 会压缩备份,具体取决于磁盘上的数据类型,这将为你节省大量空间,但也非常耗时,你也可以删除这个管道

格式化磁盘有两种方法,你可以用零重写磁盘并在其中放置新的文件系统

随着磁盘空间的增加,这种情况变得越来越不常见,因为它可能非常耗时

如今,每当你删除一个文件时,你只是删除了对该文件的引用,每当你格式化磁盘时,你只是重新创建了结构,数据只是被重写

我的一个有趣的消遣就是从 eBay 上买便宜的硬盘然后检查里面的内容,大多数人只是格式化磁盘,而不是擦除它

Windows 下有许多可用的工具来从此类磁盘恢复文件,Linux 中有 testdisk、scalpel 和 autopsy(侦探工具包)

您的数据不会被索引,它将遍布整个驱动器,通常是碎片,可以将所有这些碎片重新组合在一起,但您必须弄清楚哪些是重要的,哪些不重要,否则您将花费​​很长时间来恢复这些数据

答案2

Steve 的回答很好。我想补充一点:

  • 在遥远的过去,“格式”一词通常指低级格式化,即定义磁盘上各个扇区的开始和结束位置。Ubuntu 仍然包含一个名为的工具fdformat,该工具可在软盘上执行这种类型的低级格式化。为了避免混淆,许多较旧的工具和文档在提到高级操作时都避免使用“格式化”一词,而是使用“创建文件系统”等术语。现代硬盘在工厂时已进行低级格式化,很难或不可能重新执行这些操作。因此,您今天可能只会处理高级格式(例如创建文件系统)。即使使用类似工具将零写入整个磁盘也不会dd影响低级格式。
  • 删除分区意味着删除磁盘上定义分区开始和结束位置的几个字节。大多数分区只是磁盘上保存真实的感兴趣的数据结构--文件系统。删除分区时,文件系统数据结构通常不会受到影响。(不过,具体细节取决于删除分区时使用的工具。有些人可能会为了安全起见故意擦除或损坏文件系统数据结构,但这种情况很少见。)因此,通常可以使用类似测试磁盘,它会搜索文件系统数据结构并创建一个指向其找到内容的新分区表条目。但是,当您创建新文件系统时,文件系统数据结构至少会被部分覆盖。不过,一些数据结构通常会保留下来,大多数文件也是如此——正如 Steve 所描述的那样,它们只是散落在各处,没有任何内容指向它们。
  • 除了史蒂夫提到的工具之外,相簿是文件系统数据结构损坏时(例如在旧文件系统上创建新文件系统后)用于数据恢复的首选 Linux 工具。PhotoRec 通常可以恢复单个文件,但它们通常缺少有用的元数据(例如原始文件名),因此您最终会得到大量随机文件,其中大多数对您没有任何价值。想象一下在大海捞针。如果您需要使用此类工具,这就是您要做的事情。我听说有些 Windows 工具在从 NTFS 卷恢复文件名方面做得更好,但我从未详细研究过这一点。
  • 所有这些问题的一个复杂之处在于 SSD。在硬盘上,扇区在磁盘盘片上的位置或多或少是固定的。(一种罕见的例外是当一个扇区坏了时;它可以被映射出来,并用另一个为这种可能性保留的扇区替换。)对于 SSD,扇区可以由驱动器的电子设备重新映射。如果修剪被使用。此功能使操作系统能够告诉 SSD 它正在使用或未使用哪些扇区,然后 SSD 可以调整其映射、合并和擦除未使用的扇区等,以提高可靠性和效率。如果您在创建新文件系统后发出命令fstrim或使用该discard选项挂载文件系统,则您激活了 TRIM,这意味着 SSD 可能已经打乱了实际存储区域到扇区号的映射,并且可能擦除了数据。这将使数据恢复变得更加困难。如果您没有做这两件事,数据可能与在传统硬盘上一样可恢复。话虽如此,我从 SSD 恢复数据的经验非常有限,所以我不知道 TRIM 在现实中会带来多大的额外挑战。

相关内容