Linux的启动初始化配置是操作系统启动过程中的关键环节,它涉及到了多个步骤和配置文件。本文将深入解析Linux启动的基本过程,重点讲解LILO引导程序的配置以及inittab文件的作用。
1. **Linux启动基本过程**
Linux启动从按下电源键开始,首先是BIOS自检,然后引导程序LILO(Linux Loader)介入。LILO是一个多平台的引导加载器,可以引导Linux、Windows 98、DOS和Windows 2000等多种系统。在MBR(Master Boot Record)或硬盘逻辑分区中安装LILO,通常MBR是首选位置。
2. **LILO配置**
- `/etc/lilo.conf` 是LILO的主要配置文件,它定义了启动项和参数。例如:
- `boot=/dev/hda`: 指定LILO安装的位置。
- `timeout=50`: 设置等待用户选择启动项的秒数。
- `image=/boot/vmlinuz`: 定义Linux内核映像文件路径。
- `default=windows`: 设置默认启动系统,这里是Windows。
- `initrd=/boot/initrd`: 启动时使用的初始RAM盘配置。
3. **init系统初始化**
Linux的启动过程还包括了init进程的启动,这是系统初始化的核心。`inittab` 文件负责定义系统运行级别(runlevel)和相应的启动顺序。Linux支持10个运行级别,每个级别代表不同的系统模式,如0(单用户模式)、1(多用户模式无网络)等。`/etc/rc.d/rc.sysinit` 是第一个运行的服务脚本,负责进行基本的系统初始化,如硬件检测和网络设置。
4. **自动启动进程配置**
`/etc/rc.d/rcN` 和 `/etc/rc.d/rc.local` 分别对应不同运行级别N的启动脚本,它们执行特定于该级别的服务设置。`chkconfig` 命令则用于管理这些服务的自动运行状态,确保在开机、重启和手动启动时正确执行。
5. **硬件初始化与用户级脚本**
在整个启动过程中,系统会根据inittab文件和rcN.d目录中的脚本来执行硬件初始化(如内存检测和设备驱动加载)以及用户级脚本,确保系统在各个运行级别下都能稳定运行。
6. **用户登录与shell**
启动流程继续到mingetty(终端初始化)、login(用户登录验证)、然后是bash shell(默认shell)。用户可以通过shell命令进行操作,直到最后的exit命令结束登录。
Linux的启动初始化配置涉及引导加载器的配置、inittab文件的使用,以及一系列自动服务和脚本的执行,确保系统的稳定启动和初始化。理解和掌握这些配置对Linux系统管理员来说至关重要。