10-Linux开机启动流程1
Linux 开机启动流程详解 Linux 系统的启动过程是一个复杂而有序的序列,涉及到多个组件和步骤。这里我们将深入探讨这一流程,了解从按下电源键到用户登录的每一个环节。 1. BIOS(Basic Input Output System)加载:当计算机接通电源后,首先运行的是BIOS,它是一个固化在主板上的小程序,负责进行硬件自检(POST - Power-On Self Test)并确定第一个启动设备。BIOS版本信息可以在启动过程中通过按特定键(如Pause Break)暂停显示查看。 2. MBR加载:BIOS根据配置找到第一个可启动设备(如硬盘),读取其主引导记录(MBR),MBR位于硬盘的第一个扇区,包含512字节,其中446字节用于存储Boot Loader。 3. Boot Loader执行:Boot Loader,如GRUB(GRand Unified Bootloader)或LILO,是MBR中的程序,它的任务是加载操作系统内核。在RHEL6中是GRUB1,在RHEL7中升级为GRUB2。 4. Kernel加载:Boot Loader读取并执行内核文件,内核开始对硬件进行探测并加载相应的驱动程序,包括CPU、内存、硬盘和其他设备。 5. Init程序启动:硬件驱动加载完成后,内核调用Init程序。Init是系统的第一个进程,它的PID为1,负责后续的系统初始化工作。 6. Runlevel处理:Init根据系统当前的Runlevel信息进行工作。Runlevel定义了系统运行的不同状态,例如,Runlevel 3表示多用户文本模式,Runlevel 5表示图形界面。 7. 系统初始化:Init执行`/etc/rc.d/rc.sysinit`,初始化系统环境,比如设置时区、网络连接等。 8. 服务启动:根据Runlevel,Init执行对应目录下的脚本,启动各种系统服务。这些脚本通常位于`/etc/rc.d/rc[runlevel].d`目录下。 9. `rc.local`执行:在所有服务启动后,Init执行`/etc/rc.d/rc.local`,这是一段用户自定义的启动脚本,可以在此添加额外的启动命令。 10. 登录界面:Init启动终端模拟器如mingetty,启动login程序,等待用户输入用户名和密码进行登录。 在特殊情况下,如系统维护或修复,Linux系统还可以进入单用户模式。在RHEL6中,通过在GRUB启动菜单中选择“救援模式”并修改密码;在RHEL7中,需通过GRUB的紧急模式进入单用户模式,然后进行必要的系统修复。 了解这个启动流程有助于我们理解系统的工作原理,排查启动问题,以及在必要时进行系统维护和故障恢复。熟悉这些知识对于Linux管理员来说至关重要,因为它们构成了系统管理的基础。