Linux启动过程详解

  1.加电自检   主板在接通电源后,系统首先由POST程序来对内部各个设备进行检查,自检中如发现有错误,将按两种情况处理:对于严重故障(致命性故障)则停机,此时由于各种初始化操作还没完成,不能给出任何提示或信号;对于非严重故障则给出提示或声音报警信号,等待用户处理。       2.BIOS启动引导阶段   自检通过之后,按次序查找各引导设备,第一个有引导程序的设备即为本次启动要用到的设备。一般电脑是按"F2"或"Del"键等等进入BIOS,在里面我们可以调整硬盘的启动顺序。     找到第一个有引导程序的设备后,BIOS会找到设备中的MBR,读取其中的Bootloader。       3.GRUP引导阶段   这时候就可以看到我们的Centos系统了,但是一般都不需要操作,会自动启动系统。其实我们也可以自己手动启动系统的。       3.1 手动在grub命令行接口启动系统:           grub> root (hd#,#)           grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE           grub> initrd /initramfs-VERSION-RELEASE.img   grub> boot       3.2 grub的命令行接口:             e: 编辑模式,用于编辑菜单;        …

Continue Reading

Linux File System浅析

    折腾了Linux这么久,对磁盘存储也吃了不少亏,现在总结点Linux文件系统方面的东西。   一、硬件层面       一个真实的机械硬盘物理结构大致如下图所示:   其中磁头和盘片之间的距离是微米数量级,且磁盘内部是真空封闭的,一旦有空气进入,硬盘很容易故障。 对磁盘盘片上的抽象图如下图所示:       在磁盘盘片上主要有三部分划分:     track:磁道,以转轴为中心,划分了许多同心圆,每个圆命名为一个磁道,类似体育场上的跑道     sector:扇区,相邻两个磁道之间的区域,又被划分许多区域,叫做扇区     cynlinder:柱面,对于多盘片的硬盘来说,由于臂杆和磁头固定,为了分区方便,引入柱面概念,一个分区的开始和结束都以柱面进行标识   二、软件层面 典型的ext 文件系统在格式化的时候基本上会划分为多个块组(Block Group)的,每个块组都有独立的 inode/block/super block 系统,整体展示图如下,   其中各块的含义如下: MBR:master boot record,硬盘的主引导记录,前446字节存放主引导程序,中间64字节存放分区表信息(主分区+扩展分区<=4),最后2个字节是结束标志位。 Super Block:记录此文件系统的整体系统,包括 inode 和 block 的总量、使用量、剩余量,以及文件系统类型等。 Group Descriptor Table:文件系统描述说明,描述每个 block group 的开始与结束的 block 号码。 Block Bitmap:块对照表,用来快速寻找可用的 block 块。…

Continue Reading