Something for linux(boot+ext2)

1. 开机的过程
1.1 BIOS加载与检测,找到第一个启动设备进而找到寻找MBR
1.2 通过Bootloader(通常是grub)引导加载kernel,initrd【其中grub能定位到第几块磁盘的第几个分区如(hd0,0)】)
     注:通常内核文件在/boot分区,如果不修改其内容,那么该分区没必要挂载
1.3 kernel文件解压缩到内存,主动权从bios交接给内核,内核挂载根目录,通过根目录下的相关驱动程序来测试、驱动设备。
     注:如果根目录在某些不可识别的磁盘上,如sata,那么久通过initrd虚拟文件系统来加载相关驱动,进而识别这些磁盘,最后卸载虚拟文件系统而挂载真正的根目录
1.4 执行相关init程序。启动各种服务。

2.ext2文件系统
2.1 结构上由多个block group组成,每个block group由boot block,superblock,group description,block bitmap,iNode bitmap,inode table,data blocks。
2.2 超级块包含很多信息,如块大小,块总数和已使用总数,节点总数和已使用总数以及节点大小(一般128字节)。占1024字节。
2.3 组描述符包含信息有iNode table开始的块号
2.4 节点表连续存着多个iNode。每个文件对应一个iNode。iNode包含该文件的相关信息,如访问权限,所有者信息,还含有12个直接指针,1个一级指针,1个二级指针,1个三级指针(若一个block=1024B,那么这些指针可指向约16G的文件)。指针都是指向data block的。
2.5 数据块中存有iNode和file name的对应。可以根据路径名找到相应的节点编号,根据文件名找到文件内容。

注:
1. 每个块组中可以含有超级块也可以不含有(有就是为了备份,毕竟超级块记录着整个文件系统的信息),但位置是预留着的。不过第一个块组必需有超级块的内容。
2. boot block记录该文件系统的引导内容。

你可能感兴趣的:(开机过程,boot,superblock,inode,ext2)