百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

Linux 引导过程的 6 个阶段(启动顺序)

csdh11 2025-05-21 13:02 9 浏览

按下电脑上的电源按钮,片刻之后您就会看到 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 之前启动。

相关推荐

跨越26年的宝可梦系列游戏你玩过几款?

作为一个宝可梦IP的忠实爱好者,是时时刻刻关注着宝可梦的影视及游戏方面,在22年2月也即将引来正统续作宝可梦阿尔宙斯(其实还是更习惯口袋妖怪的翻译)宝可梦从1996年诞生至今一共有多少正统系列,小编做...

ndsi,肩键L键失灵,拆开看看能不能修

很久没有玩nds了,新买了个R4烧录卡是带64g的游戏来玩玩,发现肩键L失灵了,打开看看能不能挽救一下。之前后盖上是有痛贴的,没办法只能忍痛撕下来了,撕下来之后还真白啊,上保护贴是真有必要的。话不多说...

R4卡使用方法!游戏介绍及常见问题!任天堂掌机通用

哈喽大家好!我是掌机百科!今天介绍下R4卡的使用方法及教程,DS,NDS,NDSL,NDSLL,NDSXL,NDSI.NDSILL,NDSIXL,3DS,3DSLL,3DSXL,2DS,NEW3DS...

JavaScript简介:从概念、特点、组成和用法全面带你快速了解JS

“这里是云端源想IT,帮你轻松学IT”...

FileBrowser 是一个优秀的基于 Web 的文件管理器

FileBrowser是一个基于网页的文件管理器,允许用户通过浏览器界面管理服务器上的文件和目录。它提供了一种简单直观的方式来执行文件操作,如上传、下载、删除、重命名和编辑文件,以及管理目录。以下是...

BrowserTools MCP赋能Cursor IDE:基于上下文实现浏览器无缝控制

一、项目介绍BrowserToolsMCP是基于Anthropic的ModelContextProtocol(MCP)构建的浏览器交互工具,通过与CursorIDE等AI编辑器深度整合,实现...

正确复制、重写别人的代码,不算抄袭

我最近在一篇文章提到,工程师应该怎样避免使用大量的库、包以及其他依赖关系。我建议的另一种方案是,如果你没有达到重用第三方代码的阈值时,那么你就可以自己编写代码。...

它来了、全新的Vue3中文文档来了

Vue.js-渐进式JavaScript框架|Vue.jsPlayicon...

“我们太乙变化大”——第一书记讲述贫困村变化

来源:江西日报-江西新闻客户端江西新闻客户端讯(江西日报记者唐燕)“2018年1月,组织安排我到太乙村开展帮扶工作。两年来,我亲眼目睹并亲身经历了群众生产生活发生的巨大变化。看到群众生活越来越幸福,我...

趋势科技杀软曝密码漏洞:允许远程代码执行

IT之家讯来自谷歌的安全研究员TavisOrmandy最近很忙。几周之前,他发现了AVG杀软扩展程序可以绕过Chrome商店中的审查机制,自动安装到用户的Chrome浏览器中,而且这个扩展还会泄露...

Vue3安装使用方式详解

对于开发和学习任何一门新技术,新框架,最主要的还是能够运行起来,怎么运行起来,这才是最主要的。所以,我们来说一下Vue.js的安装方式。因为Vue.js的设计初始,就是一个渐进式的J...

设置 Cursor MCP 与 BrowserTools 服务

一、安装Chrome扩展打开Chrome网上应用店,搜索...

那些通用清除软件不曾注意的秘密

系统清理就像卫生检查前的大扫除,即使你使出吃奶的劲儿把一切可能的地方都打扫过,还会留下边边角角的遗漏。随着大家电脑安全意识的提高,越来越多的朋友开始关注自己的电脑安全,也知道安装360系列软件来"武装...

SharpBrowser:用C#打造超快的个性化开源浏览器!

推荐一个基于.Net8和CefSharp开发的开源浏览器。项目简介SharpBrowser是一个用C#和CefSharp开发的全功能网页浏览器。它声称是最快的开源C#网页浏览器,渲...

微软发布轻量级 VS Code 工具,可完全在浏览器中运行

...