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/zh-tw/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

發表回復

登錄後才能評論