了解 UNIX/Linux 文件系统超级块
这是“理解 UNIX/Linux 文件系统”的第二部分,第一部分在这里。我们以 20 GB 硬盘为例。整个磁盘空间细分为多个文件系统块。块用于什么?
Unix/Linux 文件系统块
这些块用于两个不同的目的:
- 大多数块存储用户数据,又称文件(用户数据)。
- 每个文件系统中都有一些块存储文件系统的元数据。那么元数据到底是什么呢?
简单来说,元数据描述了文件系统的结构。最常见的元数据结构是超级块、inode 和目录。以下段落分别描述了它们。
超级区块
每个文件系统都不同,它们有 ext2、ext3 等类型。此外,每个文件系统都有大小(如 5 GB、10 GB)和状态(如挂载状态)。简而言之,每个文件系统都有一个超级块,其中包含有关文件系统的信息,例如:
- 文件系统类型
- 尺寸
- 地位
- 有关其他元数据结构的信息
如果这些信息丢失,您就会遇到麻烦(数据丢失),因此 Linux 在每个文件系统中都维护超级块的多个冗余副本。这在许多紧急情况下非常重要,例如,您可以使用备份副本来恢复损坏的主超级块。以下命令显示 /dev/sda3 上的主超级块和备份超级块位置:
# dumpe2fs /dev/hda3 | grep -i superblock
输出:
Primary superblock at 0, Group descriptors at 1-1 Backup superblock at 32768, Group descriptors at 32769-32769 Backup superblock at 98304, Group descriptors at 98305-98305 Backup superblock at 163840, Group descriptors at 163841-163841 Backup superblock at 229376, Group descriptors at 229377-229377 Backup superblock at 294912, Group descriptors at 294913-294913
继续阅读《理解 Linux 文件系统》系列的其余部分(这是第二部分):