备份超级块的区别

Dan*_*nte 7 filesystems ext4 fsck superblock

最近我不小心将 EXT4 分区格式化为 FAT。我陷入了恐慌。在我希望破灭的黑暗森林中长途跋涉后,我可以恢复我的隔板,看起来没问题。在sudo mke2fs -n /dev/sdx介绍了一些超级块后,我拿起一个就跑sudo e2fsck -b a_block_number /dev/sdxy,宾果游戏!我所有的文件和目录都放在了 lost+found 文件夹中。

问题是所有备份超级块都是相同的,还是有可能一个比另一个更新得更多?

第二个问题是,将 EXT4 分区重新格式化为 EXT4 会覆盖备份超级块吗?(在我们之间,在尝试 mke2fs 和 e2fsck 之前,我再次将 FAT 分区重新格式化为 EXT4)

dr_*_*dr_ 6

所有备份超级块都是相同的。它们都是超级块的副本,分散在整个磁盘中以提供冗余,以防磁盘的大部分连续部分损坏。

格式化分区,即使文件系统类型相同,也会清除超级块。(这是有道理的:格式化的目的是在分区上创建一个干净的石板,因此所有文件系统元数据都被删除。)但是,它不会删除备份超级块,因为没有必要这样做(并且您的经验证实了这个)。


编辑:回答您的评论问题:

e2fsck如果格式化会清除超级块,我如何才能恢复我的分区?

FAT 的第一种格式清除了超级块,但所有文件和目录仍然存在,只是不可用,因为它们在文件系统中不再被引用。(没有经验的用户经常会惊讶于格式化磁盘后,99%的内容仍然存在。因此,如果您打算出售使用过的磁盘,千万不要进行简单的格式化——安全地一点一点地擦除所有内容! )
mke2fs -n显示了 ext4 文件系统的备份超级块的位置,这是您在格式化为 FAT 之前拥有的文件系统;因此,该超级块是“正确的”超级块。e2fsck -b应用在该位置找到的超级块。这允许在/lost+found.

EXT4 到 FAT 的格式如何清除超级块而不是文件系统的其他部分(如 inode)?

格式化会清除超级块而不是 inode,因为 inode 分散在整个磁盘中;您的确切位置取决于文件系统类型。例如,EXT2/EXT3 文件系统中的空间被分成块,分组为块组;inode 存储在每个块组中的数据块之前。正如我之前所说,格式化会保留磁盘的很大一部分未受影响。

什么时候创建备份超级块?根据 Justin Davies 的 SUSE Linux 9 Bible,“备份超级块是在创建 EXT2 或 EXT3 文件系统时创建的。”。所以我希望当我重新格式化我的分区时,备份超级块被重新格式化。

不,只有主超级块被擦除。备份超级块驻留在磁盘的其他位置,并且像元数据(inode...)和文件一样,不会被格式擦除,如前所述。然而,它们可能会被新文件系统的备份超级块覆盖;这取决于新的 fs 类型。

  • 格式化会清除超级块而不是 inode,因为 inode 分散在整个磁盘中;* where* 完全取决于 fs。例如,EXT2/EXT3 文件系统中的空间被分成块,分组为块组;inode 存储在每个块组中的数据块之前。正如我之前所说,格式化会保留磁盘的很大一部分未受影响。 (3认同)