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
主机硬件准备就绪后,核心会主动呼叫第一支程序initrunlevel的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 (重新启动)
相关文章推荐
- LINUX开机流程详解
- Linux开机流程详解
- LINUX开机流程详解
- Linux 开机流程详解
- Linux 的开机启动流程详解
- Linux 的开机启动流程详解
- Linux开机流程详解一
- Linux开机流程
- linux开机流程 自定义模块的加载
- 写得蛮好的linux学习笔记七-开机流程(收藏)
- Linux 创建文件系统及挂载文件系统流程详解
- Linux 创建文件系统及挂载文件系统流程详解
- Linux 创建文件系统及挂载文件系统流程详解
- linux开机流程分析
- Linux 创建文件系统及挂载文件系统流程详解
- linux 启动详解 分析 启动流程
- linux开机顺序(详解)
- 鸟哥的 Linux 私房菜20-- 开机关机流程与 Loader
- Linux 创建文件系统及挂载文件系统流程详解
- Linux开机流程分析