网站首页 > 技术教程 正文
按下电脑上的电源按钮,片刻之后您就会看到 Linux 登录提示。
你有没有想过从按下电源按钮到 Linux 登录提示出现在幕后发生了什么?
以下是典型 Linux 引导过程的 6 个高级阶段。
1. BIOS
- BIOS 代表基本输入/输出系统
- 执行一些系统完整性检查
- 搜索、加载和执行引导加载程序。
- 它在软盘、CD-ROM 或硬盘驱动器中查找引导加载程序。您可以在 BIOS 启动期间按一个键(通常是 F12 或 F2,但这取决于您的系统)来更改启动顺序。
- 一旦检测到引导加载程序并将其加载到内存中,BIOS 就会将控制权交给它。
- 因此,简单来说,BIOS 加载并执行 MBR 引导加载程序。
2.MBR
- MBR 代表主引导记录。
- 它位于可引导磁盘的第一个扇区。通常是 /dev/hda 或 /dev/sda
- MBR 的大小小于 512 字节。这包含三个部分:1)第一个 446 字节目中的主引导加载程序信息 2)接下来 64 字节目中的分区表信息 3)最后 2 字节中的 mbr 验证检查。
- 它包含有关 GRUB(或旧系统中的 LILO)的信息。
- 因此,简单来说,MBR 加载并执行 GRUB 引导加载程序。
3. GRUB
- GRUB 代表 Grand Unified Bootloader。
- 如果您的系统上安装了多个内核映像,您可以选择执行哪一个。
- GRUB 显示一个启动屏幕,等待几秒钟,如果您不输入任何内容,它会加载 grub 配置文件中指定的默认内核映像。
- GRUB 了解文件系统(旧的 Linux 加载器 LILO 不了解文件系统)。
- Grub 配置文件是 /boot/grub/grub.conf(/etc/grub.conf 是指向此处的链接)。以下是 CentOS 的示例 grub.conf。
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title 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 – reboot
- Init 从 /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 之前启动。
猜你喜欢
- 2025-04-09 Linux Tomcat started.实际上没有启动成功
- 2025-04-09 Linux基础命令之关机、重启、注销命令
- 2025-04-09 如何实现黑客系统Kali linux系统下的U盘启动(小白指导)
- 2025-04-09 linux系统怎么查看有哪些服务正在运行?
- 2025-04-09 Linux 关机与重启命令(linux系统关机命令大全)
- 2025-04-09 Linux 系统无法启动的排查与修复方法
- 2025-04-09 Linux自定义开机自启动服务脚本(linux自启动脚本怎么写)
- 2025-04-09 Linux系统无法启动?别慌!这可能是全网最全的故障排查攻略
- 2025-04-09 Linux的300+个真实运维场景之09 启动过程和内核参数
- 2025-04-09 CentOS Linux操作系统各种启动和服务管理
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)