按下电脑上的电源按钮,片刻之后您就会看到 Linux 登录提示。
你有没有想过从按下电源按钮到 Linux 登录提示出现在幕后发生了什么?
以下是典型 Linux 引导过程的 6 个高级阶段。
#boot=/dev/sdadefault=0timeout=5splashimage=(hd0,0)/boot/grub/splash.xpm.gzhiddenmenutitle CentOS (2.6.18-194.el5PAE) root (hd0,0) kernel /boot/vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/ initrd /boot/initrd-2.6.18-194.el5PAE.img
正如电脑您从上述信息中注意到的,它包含内核和 initrd 映像。因此,简单来说,GRUB 只是加载并执行内核和 initrd 映像。4.内核挂载 grub.conf 中“root=”中指定的根文件系统内核执行 /sbin/init 程序由于 init 是 Linux 内核执行的第一个程序,它的进程 id (PID) 为 1。执行 'ps -ef | grep init' 并检查 pid。initrd 代表初始 RAM 磁盘。initrd 被内核用作临时根文件系统,直到内核启动并挂载真正的根文件系统。它还包含内部编译的必要驱动程序,这有助于它访问硬盘驱动器分区和其他硬件。5. 初始化查看 /etc/inittab 文件已确定 Linux 运行级别。以下是可用的运行级别0 – halt1 – Single user mode2 – Multiuser, without NFS3 – Full multiuser mode4 – unused5 – X116 – rebootInit 从 /etc/inittab 中识别默认的 initlevel 并使用它来加载所有适当的程序。在您的系统上执行“grep initdefault /etc/inittab”以识别默认运行级别如果你想惹麻烦,你可以将默认运行级别设置为 0 或 6。既然你知道 0 和 6 的含义,你可能不会那样做。通常,您会将默认运行级别设置为 3 或 5。6. 运行级程序当 Linux 系统启动时,您可能会看到各种服务正在启动。例如,它可能会说“开始发送邮件……。好的”。这些是运行级别程序,从运行级别定义的运行级别目录执行。根据您的默认初始化级别设置,系统将从以下目录执行程序。Run level 0 – /etc/rc.d/rc0.d/Run level 1 – /etc/rc.d/rc1.d/Run level 2 – /etc/rc.d/rc2.d/Run level 3 – /etc/rc.d/rc3.d/Run level 4 – /etc/rc.d/rc4.d/Run level 5 – /etc/rc.d/rc5.d/Run level 6 – /etc/rc.d/rc6.d/请注意,在 /etc 下面这些目录也有可用的符号链接。因此,/etc/rc0.d 链接到 /etc/rc.d/rc0.d在 /etc/rc.d/rc*.d/ 目录下,您会看到以 S 和 K 开头的程序。以 S 开头的程序在启动时使用。S 为启动。以 K 开头的程序在关机期间使用。K 表示杀戮。程序名称中的 S 和 K 旁边有数字。这些是应该启动或终止程序的序列号。例如,S12syslog 是启动 syslog 守护进程,序号为 12。S80sendmail 是启动 sendmail 守护进程,序号为 80。因此,syslog 程序将在 sendmail 之前启动。