首頁 運維 linux運維 linux mbr grub是什麼

linux mbr grub是什麼

Mar 14, 2023 am 09:48 AM
linux

linux mbr grub是整個linux系統啟動的流程,其中mbr的英文全名為“Master Boot Record”,表示主開機記錄,mbr儲存於磁碟的頭部,大小為512bytes;grub的英文全稱是“Grand Unified Bootloader”,表示多系統啟動程式。

linux mbr grub是什麼

本教學操作環境:linux5.9.8系統、Dell G3電腦。

linux mbr grub是什麼?

詳解Linux開機流程:BIOS->MBR->GRUB等等...

概述

Linux是一種自由和開放原始碼的類UNIX作業系統。該作業系統的核心由林納斯·托瓦茲在1991年10月5日首次發布。在加上用戶空間的應用程式之後,成為Linux作業系統。 Linux是自由軟體和開放原始碼軟體發展中最著名的例子。

下面簡單記錄Linux系統從開機到能使用的整個過程,以便備忘!

LINUX啟動流程

先透過一張圖來簡單了解下整個系統啟動的流程,整個流程基本上可以分為POST-->BIOS-- >MBR(GRUB)-->Kernel-->Init-->Runlevel。以下會詳細說明每個過程的作用。

linux mbr grub是什麼

BIOS

BIOS(Basic Input/Output System),基本輸入輸出系統,該系統儲存於主機板的ROM晶片上,電腦在開機時,會先讀取該系統,然後會有一個加電自檢過程,這個過程其實就是檢查CPU和內存,計算機最基本的組成單元(控制器、運算器和存儲器),也會檢查其他硬件,若沒有異常就開始載入BIOS程式到記憶體當中。詳細的BIOS功能,這邊就不說了,BIOS主要的一個功能就是儲存了磁碟的啟動順序,BIOS會按照啟動順序去查找第一個磁碟頭的MBR信息,並載入和執行MBR中的Bootloader程序,若第一個磁碟不存在MBR,則會繼續尋找第二個磁碟(PS:啟動順序可以在BIOS的介面中進行設定),一旦BootLoader程式被偵測並載入記憶體中,BIOS就會將控制權交接給了BootLoader程式。

MBR

MBR(Master Boot Record),主開機記錄,MBR儲存於磁碟的頭部,大小為512bytes,其中,446bytes用於儲存BootLoader程式,64bytes用於儲存分區表信息,最後2bytes用於MBR的有效性檢查。

linux mbr grub是什麼

GRUB

GRUB(Grand Unified Bootloader),多系統啟動程序,其執行過程可分為三個步驟:

Stage1:這個其實就是MBR,它的主要工作就是尋找並載入第二段Bootloader程式(stage2),但係統在沒啟動時,MBR根本找不到檔案系統,也找不到stage2所存放的位置,因此,就有了stage1_5

Stage1_5:此步驟就是為了辨識檔案系統

Stage2:GRUB程式會依照/boot/grub/grub.conf檔案找出Kernel的信息,然後開始加載Kernel程序,當Kernel程序被檢測並在加載到內存中,GRUB就將控制權交接給了Kernel程序。

PS:實際上這個步驟/boot還沒被掛載,GRUB直接辨識grub所在磁碟的檔案系統,所以實際上應該是/grub/grub.conf文件,該設定檔的資訊如下:

grub.conf:

#boot=/dev/sda
default=0 #设定默认启动的title的编号,从0开始
timeout=5 #等待用户选择的超时时间
splashimage=(hd0,0)/boot/grub/splash.xpm.gz #GRUB的背景图片
hiddenmenu #隐藏菜单
title CentOS (2.6.18-194.el5PAE) #内核标题
root (hd0,0) #内核文件所在的设备
kernel /vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/ #内核文件路径以及传递给内核的参数
initrd /initrd-2.6.18-194.el5PAE.img #ramdisk文件路径
登入後複製

Kernel

Kernel,內核,Kernel是Linux系統最主要的程序,實際上,Kernel的文件很小,只保留了最基本的模組,並以壓縮的文件形式存儲在硬碟中,當GRUB將Kernel讀進內存,內存開始解壓縮內核文件。講內核啟動,應該先講下initrd這個文件,

initrd(Initial RAM Disk),它在stage2這個步驟就被拷貝到了內存中,這個文件是在安裝系統時產生的,是一個臨時的根檔案系統(rootfs)。因為Kernel為了精簡,只保留了最基本的模組,因此,Kernel上並沒有各種硬體的驅動程序,也就無法識rootfs所在的設備,故產生了initrd這個文件,該文件裝載了必要的驅動模組,當Kernel啟動時,可以從initrd檔案中裝載驅動模組,直到掛載真正的rootfs,然後將initrd從記憶體中移除。

Kernel會以唯讀方式掛載根檔案系統,當根檔案系統被掛載後,開始裝載第一個進程(用戶空間的進程),執行/sbin/init,之後就將控制權交接給了init程式。

Init

#

init,初始化,顾名思义,该程序就是进行OS初始化操作,实际上是根据/etc/inittab(定义了系统默认运行级别)设定的动作进行脚本的执行,第一个被执行的脚本为/etc/rc.d/rc.sysinit,这个是真正的OS初始化脚本,简单讲下这个脚本的任务(可以去看看实际脚本,看看都做了什么):

  • 激活udev和selinux;

  • 根据/etc/sysctl.conf文件,来设定内核参数;

  • 设定系统时钟;

  • 装载硬盘映射;

  • 启用交换分区;

  • 设置主机名;

  • 根文件系统检测,并以读写方式重新挂载根文件系统;

  • 激活RAID和LVM设备;

  • 启用磁盘配额;

  • 根据/etc/fstab,检查并挂载其他文件系统;

  • 清理过期的锁和PID文件

执行完后,根据配置的启动级别,执行对应目录底下的脚本,最后执行/etc/rc.d/rc.local这个脚本,至此,系统启动完成。

Runlevel

runlevel,运行级别,不同的级别会启动的服务不一样,init会根据定义的级别去执行相应目录下的脚本,Linux的启动级别分为以下几种

0:关机模式

1:单一用户模式(直接以管理员身份进入)

2:多用户模式(无网络)

3:多用户模式(命令行)

4:保留

5:多用户模式(图形界面)

6:重启

在不同的运行级别下,/etc/rc.d/rc这个脚本会分别执行不同目录下的脚本

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/
登入後複製

这些目录下的脚本只有K*和S*开头的文件,K开头的文件为开机需要执行关闭的服务,S开头的文件为开机需要执行开启的服务。

相关推荐:《Linux视频教程

以上是linux mbr grub是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1269
29
C# 教程
1248
24
Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

vscode上一步下一步快捷鍵 vscode上一步下一步快捷鍵 Apr 15, 2025 pm 10:51 PM

VS Code 一步/下一步快捷鍵的使用方法:一步(向後):Windows/Linux:Ctrl ←;macOS:Cmd ←下一步(向前):Windows/Linux:Ctrl →;macOS:Cmd →

notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

sublime寫好代碼後如何運行 sublime寫好代碼後如何運行 Apr 16, 2025 am 08:51 AM

在 Sublime 中運行代碼的方法有六種:通過熱鍵、菜單、構建系統、命令行、設置默認構建系統和自定義構建命令,並可通過右鍵單擊項目/文件運行單個文件/項目,構建系統可用性取決於 Sublime Text 的安裝情況。

Linux的主要目的是什麼? Linux的主要目的是什麼? Apr 16, 2025 am 12:19 AM

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

laravel安裝代碼 laravel安裝代碼 Apr 18, 2025 pm 12:30 PM

要安裝 Laravel,需依序進行以下步驟:安裝 Composer(適用於 macOS/Linux 和 Windows)安裝 Laravel 安裝器創建新項目啟動服務訪問應用程序(網址:http://127.0.0.1:8000)設置數據庫連接(如果需要)

git軟件安裝 git軟件安裝 Apr 17, 2025 am 11:57 AM

安裝 Git 軟件包括以下步驟:下載安裝包運行安裝包驗證安裝配置 Git安裝 Git Bash(僅限 Windows)

See all articles