typedef struct xfs_sb
{
UINT32 sb_magicnum; // magic number == XFS_SB_MAGIC = 0x58465342 "XFSB"
UINT32 sb_blocksize; // logical block size, bytes //块大小
UINT64 sb_dblocks; // number of data blocks //总块数
UINT64 sb_rblocks; // number of realtime blocks 实时驱动器块数
UINT64 sb_rextents; //number of realtime extents 实时设备扩展数
uuid_t sb_uuid; // file system unique id //16字节? 如UUID="c19b003b-d9c1-474a-a043-b1469df189e0"
UINT64 sb_logstart; // starting block of log if internal 日志开始块号
UINT64 sb_rootino; // root inode number //根目录节点号,节点号是根据节点大小及硬盘扇区数计算出来 ,比如节点大小是256字节,在400sec上的第一个节点的节点号就是400/2=200
UINT64 sb_rbmino; // bitmap inode for realtime extents 位图inode的实时扩展
UINT64 sb_rsumino; // summary inode for rt bitmap
UINT32 sb_rextsize; // realtime extent size, blocks 块中实时扩展的大小
UINT32 sb_agblocks; // size of an allocation group //这是分配组占用块数,可计算一个分配组大小
UINT32 sb_agcount; // number of allocation groups //可计算逻辑卷大小
UINT32 sb_rbmblocks; // number of rt bitmap blocks
UINT32 sb_logblocks; // number of log blocks 日志块数
UINT16 sb_versionnum; // header version == XFS_SB_VERSION 文件系统版本号
UINT16 sb_sectsize; // volume sector size, bytes 512
UINT16 sb_inodesize; // inode size, bytes 256
UINT16 sb_inopblock; // inodes per block This is equivalent to sb_blocksize / sb_inodesize 每块的inode的数量
char sb_fname[12]; // file system name
UINT8 sb_blocklog; // log2 of sb_blocksize
UINT8 sb_sectlog; // log2 of sb_sectsize
UINT8 sb_inodelog; // log2 of sb_inodesize
UINT8 sb_inopblog; // log2 of sb_inopblock //inode在组内编号占用的位数,这个很重要,一般为4
UINT8 sb_agblklog; // log2 of sb_agblocks (rounded up向上取整) //Block在组内编号占用的位数
UINT8 sb_rextslog; // log2 of sb_rextents
UINT8 sb_inprogress; // mkfs is in progress, don't mount
UINT8 sb_imax_pct; // max % of fs for inode space //The default value is 25%. 文件系统中inode最大的可用空间,默认为文件系统空间的25%
UINT64 sb_icount; // allocated inodes //分配的inode的总数量
UINT64 sb_ifree; // free inodes //剩余的inode的数量
UINT64 sb_fdblocks; // free data blocks //空闲的数据块个数
UINT64 sb_frextents; // free realtime extents 空闲实时扩展
UINT64 sb_uquotino; // user quota inode //用于管理用户配额的i节点
UINT64 sb_gquotino; // group quota inode //用于管理组配额的i节点
UINT16 sb_qflags; // quota flags
UINT8 sb_flags; // misc. flags
UINT8 sb_shared_vn; // shared version number 必须为0
UINT32 sb_inoalignmt; // inode chunk alignment, fsblocks 索引节点号对齐
UINT32 sb_unit; // stripe or raid unit 条带或raid单元
UINT32 sb_width; // stripe or raid width 条带或raid宽度
UINT8 sb_dirblklog; // log2 of dir block size (fsbs) log2目录块大小 =sb_blocksize * (2的sb_dirblklog次幂)sb_dirblklog不能大于4,因为目录块不能大于65536字节
//这里的目录块不是文件系统的那个块,除非另有说明
UINT8 sb_logsectlog; // log2 of the log sector size log2扇区大小
UINT16 sb_logsectsize; // sector size for the log, bytes 日志扇区大小
UINT32 sb_logsunit; // stripe unit size for the log 日志条带单元大小
UINT32 sb_features2; // additional feature bits
} xfs_sb_t;
(责任编辑:admin) |