您的位置:首页 > 运维架构 > Linux

linux开机流程详解

2016-09-18 13:50 274 查看

开机流程概述

加载 BIOS 的硬件信息并进行自我测试,并依据讴定取得第一个可开机的装置;

读取并执行第一个开机装置内 MBR 的 boot Loader (亦即是 grub, spfdisk 等程序);

依据 boot loader 的设定加载 Kernel ,Kernel 会开始侦测硬件与加载驱动程序;

在硬件驱动成功后,Kernel 会主动呼叫 init 程序,而 init 会取得 run-level 信息;

init 执行 /etc/rc.d/rc.sysinit 档案来准备软件执行的作业环境 (如网络、时区等);

init 执行 run-level 的各个服务之启动 (script 方式);

init 执行 /etc/rc.d/rc.local 档案;

init 执行终端机仿真程序 mingetty 来启动 login 程序,最后就等待用户登入啦;

开机管理程序(Boot Loader)

用来管理内核档案的加载。这个装置装在开机装置的第一扇区,也即是MBR(Master Boot Record, 主要启动记录区)

问题

(1)必须要使用自己的 loader 才能够加载属亍自己的操作系统核心

(2)系统的 MBR 叧有一个,那你怎么会有办法同时在一部主机上面安装 Windows 不 Linux 呢

其实每个文件系统 (filesystem, 或者是 partition) 都会保留一块启动扇区 (boot sector) 提供操作系统安装 boot loader , 而通常操作系统默认都会安装一份loader 到他根目录所在的文件系统的 boot sector 上。如果我们在一部主机上面安装 Windows 不 Linux 后,该 boot sector, boot loader 与 MBR 的相关性会有点像下图:



在 Linux 系统安装时,你可以选择将 boot loader 安装到 MBR 去,也可以选择不安装。 如果选择安装到 MBR 的话,那理讳上你在 MBR 与 boot sector 都会保有一份 boot loader 程序的。 至于 Windows 安装时,他预设会主动的将 MBR 不 boot sector 都装上一份 boot loader!所以, 你会发现安装多重操作系统时,你的 MBR 常常会被不同的操作系统的 boot loader 所覆盖。

boot loader 主要的功能如下

1. 提供选单:用户可以选择丌同的开机项目,这也是多重引导的重要功能!

2. 载入核心档案:直接指向可开机的程序区段来开始操作系统;

3. 转交其他 loader:将开机管理功能转交给其他 loader 负责。

而由于具有控制权转交的功能,因此我们可以加载其他 boot sector 内的 loader !不过 Windows 的 loader 预设不具有控制权转交的功能,因此你不能使用 Windows 的 loader 来加载 Linux 的 loader !这也是为什么 MBR 多重引导时,会特别强调先装 Windows 再装 Linux 的缘故。



initrd虚拟文件系统档案

虚拟文件系统 (Initial RAM Disk) 一般使用的档名为 /boot/initrd ,这个档案的特色是,他也能够透过 boot loader 来加载到内存中, 然后这个档案会被解压缩并且在内存当中仿真成一个根目录, 且此仿真在内存当中的文件系统能够提供一支可执行的程序,透过该程序来加载开机过程中所最需要的核心模块, 通常这些模块就是 USB, RAID, LVM, SCSI 等文件系统与磁盘接口的驱动程序!等载入完成后, 会帮核心重新呼叫 /sbin/init 来开始后续的正常开机流程。



如上图所示,boot loader 可以加载 kernel 不 initrd ,然后在内存中让 initrd 解压缩成为根目录, kernel 就能够借此加载适当的驱动程序,最终释放虚拟文件系统,并挂载实际的根目录文件系统, 就能够开始后续的正常开机流程。

init及其配置文件/etc/inittab(除ubuntu)与runlevel

主机硬件准备就绪后,核心会主动呼叫第一支程序init

runlevel的7个等级:

0 - halt (系统直接关机)

1 - single user mode (单人维护模式,用在系统出问题时的维护)

2 - Multi-user, without NFS (类似底下的 runlevel 3,但无 NFS 服务)

3 - Full multi-user mode (完整含有网络功能的纯文本模式)

4 - unused (系统保留功能)

5 - X11 (不 runlevel 3 类似,但加载使用 X Window)

6 - reboot (重新启动)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: