Linux系统启动流程分析

一、BIOS/UEFI启动

BIOS/UEFI是计算机的基本输入输出系统,负责硬件的初始化和系统的引导。

当计算机启动时,首先会运行BIOS/UEFI程序。此时,BIOS/UEFI程序将会从指定的存储设备(例如硬盘、U盘、光盘等)的引导扇区读取启动代码(bootloader)到内存,并跳转到该代码开始执行。在Linux系统中通常使用GRUB2作为bootloader。

二、GRUB2启动

当BIOS/UEFI加载了GRUB2之后,GRUB2会读取到Linux系统的内核文件vmlinuz及initramfs(初始根文件系统)文件。GRUB2成功加载内核文件后,会将控制权转交给内核。

# GRUB2配置文件
menuentry 'CentOS 7' {
  search --no-floppy --fs-uuid --set=root xxxx-xxxx-xxxx-xxxx-xxxx
  linux /vmlinuz-3.10.0-693.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8
  initrd /initramfs-3.10.0-693.el7.x86_64.img
}

三、内核启动

内核作为系统的核心,负责管理系统所有资源,包括内存、硬盘、CPU等,在完成硬件初始化后,会根据/boot/grub2/grub.cfg配置文件中的参数,启动root文件系统。root文件系统是系统的根目录,包含了系统启动所需的所有文件及目录。

当内核启动时,会在用户空间运行第一个进程systemd,进而完成整个系统的启动,并挂载文件系统。

四、systemd启动

在Linux系统中,systemd已经取代了传统的system V init进程。systemd通过控制cgroups(控制group)进程组,来管理系统中的所有进程。

systemd会扫描所有unit文件,以确定需要启动的服务。根据需求,将按照指定的顺序,依次将每个服务启动、停止或重启。systemd会保留系统日志,并通过journalctl命令展示。

五、总结

以上便是Linux系统启动的主要流程。从BIOS/UEFI启动开始,到GRUB2加载内核及初始根文件系统,再到内核启动并挂载文件系统,最终交由systemd进程启动及管理服务进程。

对于Linux系统运维工程师而言,深入了解Linux系统的启动流程,可以更好地理解系统的运行机制,有效地识别和排除系统的启动故障。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/192850.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-01 10:30
下一篇 2024-12-01 10:30

相关推荐

  • Python爬虫流程用法介绍

    本文将介绍Python爬虫的流程,包括数据采集、数据处理以及数据存储等方面。如果想要使用Python爬取网站数据,本文将为您提供详细的指导和实例。 一、数据采集 1、确定目标网站 …

    编程 2025-04-27
  • 如何在Linux中添加用户并修改配置文件

    本文将从多个方面详细介绍在Linux系统下如何添加新用户并修改配置文件 一、添加新用户 在Linux系统下创建新用户非常简单,只需使用adduser命令即可。使用以下命令添加新用户…

    编程 2025-04-27
  • 如何解决linux jar包 invalid or corrupt jarfile问题

    对于许多开发人员和系统管理员在Linux环境下使用Java开发过程中遇到的一个常见的问题是 invalid or corrupt jarfile(无效或损坏的jar文件)错误。当您…

    编程 2025-04-27
  • Java项目Git发布流程规范

    本文旨在介绍Java项目在使用Git进行发布时的流程规范。Git作为一个版本控制工具,其功能十分强大,但是对于Java项目进行发布时,需要我们根据标准化的流程规范来执行操作,以确保…

    编程 2025-04-27
  • 在Linux上安装JRE并配置环境变量

    本文将从以下几个方面为您详细阐述如何在Linux系统上,通过自己账户安装JRE,并且配置环境变量。 一、安装JRE 在进行安装前,我们需要下载JRE的安装包并解压,可以从官方网站下…

    编程 2025-04-27
  • xmake qt:构建Qt应用的全流程解决方案

    本文将会详细阐述xmake qt的使用方法以及其能够解决的问题。针对Qt应用开发中的各种困境,xmake提供了一整套的解决方案,包括自动构建、依赖管理、部署打包等,极大地提高了开发…

    编程 2025-04-27
  • GTKAM:Linux下的照片管理器

    GTKAM是用于Linux操作系统的一款照片管理器,它支持多种相机及存储设备,并提供了一系列强大的工具,让用户可以方便地浏览、管理、编辑和导出照片。本文将从多个方面对GTKAM进行…

    编程 2025-04-27
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25
  • Linux网络连接激活失败原因及解决方法

    一、网卡驱动问题 1、缺少网卡驱动 若使用新的网卡,需要安装对应网卡驱动,否则会导致网络连接激活失败。可通过以下命令查看当前系统中是否存在网卡驱动: lsmod | grep et…

    编程 2025-04-25

发表回复

登录后才能评论