我不小心删除了一个分区,并给出了分区本质上就是如何划分空间,认为修复这个错误并不太难。我错了。为什么删除分区后数据就可访问了?当我尝试访问磁盘时,系统提示需要格式化才能访问。这让我很困惑,因为格式并没有改变。
答案1
为什么删除分区会导致数据丢失?
但事实并非如此。
我的意思是,有时候不会,
有时候会。
这取决于你使用的软件。
理论上,删除分区没有理由会导致数据丢失。毕竟,分区基本上只是一组位于特定位置(称为“分区表”)的数字,它们指定了分区的边界。理论上,将这些数字更改为零不会导致分区边界内的其他扇区发生变化。因此,理论上,您的文件系统卷应该保持完好(不变)。
然而,该理论有一个明显的例外。
无论出于什么原因,(至少某些版本的)MS-DOS FORMAT.COM 都期望新文件系统卷的第一个扇区包含清除为零的位(在 FORMAT 运行之前)。将这些位清除为零对 FORMAT.COM 来说是一项明智的任务,但 FORMAT.COM 只是期望这项任务能够完成。
为了满足这种奇怪的期望,MS-DOS FDISK.EXE(分区软件)会删除第一个扇区。
最明智的工具是 FORMAT。 Linux 手册页@die.net:fdisk声明称,“我们认为这是 DOS FORMAT 和 DOS FDISK 的一个错误。”但是,由于这两款软件都附带相同的操作系统,因此这种安排往往效果很好。如果人们只是按照 MS-DOS 手册中的说明操作,他们就不会意识到这种情况。
尽管这种安排似乎不太合适,但其他一些操作系统通常会支持做同样的事情,以便与 MS-DOS 兼容。这是因为 MS-DOS 很流行(在 Windows 95 和后续版本的 Microsoft Windows 之前),所以其他操作系统寻求与 MS-DOS 的兼容性。
别误会:您可以使用某些软件(例如 OpenBSD 的 fdisk)“擦除”分区(至少对于基于 MBR 的分区,这被定义为将分区类型标识符设置为零),而不会丢失分区内的任何数据。如果您记录了设置(边界、类型标识符),则可以重写这些值,并且分区中的所有数据仍保持完好。
因此,分区起始处的数据是否会被损坏取决于您使用的软件。(或者,对于某些软件,可能取决于您选择的设置/选项。)
答案2
通过删除分区,您将删除标记信息,该信息告诉操作系统分区在磁盘上的位置以及占用了多少磁盘空间。
如果没有这些信息,操作系统就不知道从哪里开始寻找有效的文件系统数据。磁盘分区和格式化的一部分将设置标头,告诉操作系统所有文件系统元数据的位置,以便可以读取它们。
如果您删除并重新创建分区,它将不会在分区头中设置文件系统特定数据。需要格式化磁盘后才能使用。
我听说如果你删除一个分区测试磁盘可以用来恢复它,但如果您手动重新创建分区,那么您可能会覆盖它尝试恢复的数据。