启动程序的顺序怎么调整linux系统启动流程图解调整系统启动顺序linux 和windows




启动程序的顺序怎么调整linux系统启动流程图解调整系统启动顺序linux 和windows

2022-07-20 21:57:30 网络知识 官方管理员

按下电脑上的电源按钮,片刻之后您就会看到Linux登录提示。

你有没有想过从按下电源按钮到Linux登录提示出现在幕后发生了什么?

以下是典型Linux引导过程的6个高级阶段。

启动程序的顺序怎么调整(linux系统启动流程图解)(1)

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代表GrandUnifiedBootloader。
    • 如果您的系统上安装了多个内核映像,您可以选择执行哪一个。
    • GRUB显示一个启动屏幕,等待几秒钟,如果您不输入任何内容,它会加载grub配置文件中指定的默认内核映像。
    • GRUB了解文件系统(旧的Linux加载器LILO不了解文件系统)。
    • Grub配置文件是/boot/grub/grub.conf(/etc/grub.conf是指向此处的链接)。以下是CentOS的示例grub.conf。
#boot=/dev/sdadefault=0timeout=5splashimage=(hd0,0)/boot/grub/splash.xpm.gzhiddenmenutitleCentOS(2.6.18-194.el5PAE)root(hd0,0)kernel/boot/vmlinuz-2.6.18-194.el5PAEroroot=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|grepinit'并检查pid。
  • initrd代表初始RAM磁盘。
  • initrd被内核用作临时根文件系统,直到内核启动并挂载真正的根文件系统。它还包含内部编译的必要驱动程序,这有助于它访问硬盘驱动器分区和其他硬件。

5.初始化

  • 查看/etc/inittab文件已确定Linux运行级别
  • 以下是可用的运行级别0–h alt1–Singleusermode2–Multiuser,withoutNFS3–Fullmultiusermode4–unused5–X116–reboot
  • Init从/etc/inittab中识别默认的initlevel并使用它来加载所有适当的程序。
  • 在您的系统上执行“grepinitdefault/etc/inittab”以识别默认运行级别
  • 如果你想惹麻烦,你可以将默认运行级别设置为0或6。既然你知道0和6的含义,你可能不会那样做。
  • 通常,您会将默认运行级别设置为3或5。

6.运行级程序

  • 当Linux系统启动时,您可能会看到各种服务正在启动。例如,它可能会说“开始发送邮件……。好的”。这些是运行级别程序,从运行级别定义的运行级别目录执行。
  • 根据您的默认初始化级别设置,系统将从以下目录执行程序。Runlevel0–/etc/rc.d/rc0.d/Runlevel1–/etc/rc.d/rc1.d/Runlevel2–/etc/rc.d/rc2.d/Runlevel3–/etc/rc.d/rc3.d/Runlevel4–/etc/rc.d/rc4.d/Runlevel5–/etc/rc.d/rc5.d/Runlevel6–/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之前启动。

发表评论:

最近发表
网站分类
标签列表