tft每日頭條

 > 生活

 > linux進入bios設置教程交流

linux進入bios設置教程交流

生活 更新时间:2024-07-29 16:23:20
概述

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

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


LINUX啟動流程

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

linux進入bios設置教程交流(詳解Linux開機流程BIOS-)1


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進入bios設置教程交流(詳解Linux開機流程BIOS-)2


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初始化腳本,簡單講下這個腳本的任務(可以去看看實際腳本,看看都做了什麼):

1、激活udev和selinux;

2、根據/etc/sysctl.conf文件,來設定内核參數;

3、設定系統時鐘;

4、裝載硬盤映射;

5、啟用交換分區;

6、設置主機名;

7、根文件系統檢測,并以讀寫方式重新挂載根文件系統;

8、激活RAID和LVM設備;

9、啟用磁盤配額;

10、根據/etc/fstab,檢查并挂載其他文件系統;

11、清理過期的鎖和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進入bios設置教程交流(詳解Linux開機流程BIOS-)3


覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的内容,感興趣的朋友可以關注下~

linux進入bios設置教程交流(詳解Linux開機流程BIOS-)4

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved