Linux 开机流程
1、 接通电源,按下开机键,首先启动 BIOS 程序, BIOS 程序用来进行硬件检测,并初始化硬件,
2、 然后 BIOS 读取 MBR 中的内容,执行系统启动加载器 ,MBR 就是硬盘上第 0 磁道第一个扇区 , 里存放了预启动信息和分区表信息。 BIOS 找到 MBR 后,会把里边的内容复制到内存中。
3、 运行 GRUB , GRUB 是在系统内核运行之前的一个程序,主要调整设置计算机的硬件、软件环境,为下一步加载内核做准备。 GRUB 的配置存放在 /grub/grub.conf 的文件中。
4、 加载内核,根据 grub 设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。系统将解压后的内核放置在内存之中,并初始化各种设备,完成 Linux 核心环境的建立。
5、 加载内核之后,运行的第一个程序是 /sbin/init ,该程序会读取 /etc/inittab 文件中的内容,并根据文件的内容初始化工作,设定系统运行等级。
6、 接着 init 程序会执行 /etc/rc.sysinit 文件,该文件完成的工作比较多,包括:
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
1、udev ,也就是启用热插拔的设备,例如: USB ,并且也会启动 SELinux ; 2 、会把 kernel 的参数设定在 /etc/sysctl.conf 配置文件里;这个配置文件下下单元详细说明; 3 、设定系统时间; 4 、载入 keymaps 设定, keymap 设定是在定义键盘,这样电脑开机时才能找到相对应的键盘设定; 5 、启用 swap 这个虚拟内存的分区; 6 、设定主机名称,主机名称设定在 /etc/sysconfig/network 配置文件中的 HOSTNAME= 项下; 7 、 检查根目录有没有问题,并且重新挂载成为可读可写的状态; 8 、启用 RAID 磁盘阵列,以及 LVM 的设备; 9 、启用磁盘配额的功能,就是限制使用者最多可以使用多少硬盘空间; 10 、检查其它文件系统,并且把它们挂载进来; 11 、最后会清除被修改过的 locks 及 PID files ,其实就是清除一些开机时的缓存文件,以及一些没有用的的信息及文件;
这个过程中会读取分区表文件 /etc/fstab ,默认启动程序文件 /etc/rc.d/rc.local 。最后根据不同的运行级别,执行相应的脚本, /etc/rc.d/rc0.d—rc6.d
7 、执行 /bin/login 程序,进入登陆状态
8 、登录 , 输入用户名和密码 , 系统会到 /etc/passwd 和 /etc/shadow 文件中进行用户和密码验证,验证通过才能登录到系统。