通常一个 filesystem 的最顶层 inode 号码会由 2 号开始 每个文件系统里面有一张inode表 记录当前文件系统中的所有目录和文件,包 括 2 号的 / 也在里面
系统查找文件时,首先去找 / 挂载点所在分区的那个文件系统中的inode 表中的2号结点. 比如:你分区为: 分区 挂载点 /dev/hda1 /boot ---这个挂boot目录 /dev/hda2 / ---这个挂/ 目录 /dev/hda3 /u ---这个挂/u目录 以上每一个分区都是一个独立的文件系统.它就会跑去 /dev/hda2这个分区 发现这个文件系统里面有以下内容: inode table (inode表) Superblock (超级区块) Filesystem Description (文件系统描述说明) block bitmap (区块对照表,就是描述哪个块空闲,哪个正在被用) inode bitmap (inode 对照表,描述哪个inode空,哪个被用) data block (数据块资料,存真正的文件数据) 又发现inode table 内容如下: 1 文件存取权限 创建时间 修改时间 ....对应的block 2 文件存取权限 创建时间 修改时间 ....对应的block 3 文件存取权限 创建时间 修改时间 ....对应的block 4 文件存取权限 创建时间 修改时间 ....对应的block 它就会很聪明地读 inode号为2 的 inode 这个就是 / 然后读它的 block 里面的资料,发现block 是一张表,资料如下: inode号 文件名 4 etc 5 service ... ..... 假如要读 etc 它就会读etc 对应的 inode 号 4 再拿4去上面那张表找4的数据块block...如此找下去. 当找到一个真正的文件时,发现是要的东西了.