Superblock (file system)
In computer file systems, a superblock is a critical metadata structure that contains information about the file system's layout, size, and status. It is used by the operating system to understand and manage the file system stored on a storage device. Without a valid superblock, the file system cannot be correctly mounted or interpreted. Usually multiple copies of the superblock are kept on the volume.
Overview
The superblock stores global information about the file system, such as:- File system size and block size
- Number of allocation groups
- Metadata locations
- File system UUID and label
- Journal configuration
- Supported features and format version
XFS superblock structure
In XFS, the superblock is located at a well-known offset at the beginning of the file system, and additional copies exist at the start of each Allocation Group.The XFS superblock includes fields such as:
magicnum: Magic number identifying XFSblocksize: Block size in bytesdblocks: Total number of data blocksagcount: Number of allocation groupsuuid: File system UUIDlogstart: Start block of the journal if internalThis structure is fixed-size and versioned, ensuring compatibility and upgrade paths across kernel versions.
Location and redundancy
XFS divides its storage into multiple allocation groups for parallelism and scalability. Each AG contains its own copy of the superblock. This design provides redundancy and allows for localized metadata operations, improving performance on large systems.Corruption in the primary AG's superblock can sometimes be recovered by referencing the superblock from a different AG. Tools like
xfs_repair and xfs_db assist in verifying or rebuilding the superblock when issues are detected.Mounting and recovery
When an XFS file system is mounted, the superblock is read to determine critical parameters such as block size, journaling state, and AG structure. If the superblock is unreadable, the mount operation will fail.The tool
xfs_repair can attempt to reconstruct a damaged superblock using redundant copies:
xfs_repair /dev/sdX
Advanced recovery and analysis can be performed using
xfs_db:
xfs_db /dev/sdX
xfs_db> sb 0
xfs_db> p
These tools help inspect or rebuild specific superblocks in alternate AGs.