Linux作業系統引導過程

2021-10-11 03:56:54 字數 4278 閱讀 1510

linux作業系統引導過程

開機自檢

伺服器主機開機以後,將根據主機板bios中的設定對cpu,記憶體,顯示卡,鍵盤等裝置進行初步檢測,檢測成功後根據預設的啟動順序移交系統控制權,大多時候會移交給本機硬碟。

總結:檢測出第乙個能夠引導系統的裝置,比如硬碟或者光碟機

mbr引導

當從本機硬碟中啟動系統時,首先根據硬碟第乙個扇區中mbr的設定,將系統控制權傳遞給包含作業系統引導檔案的分割槽;或者直接根據mbr記錄中的引導資訊呼叫啟動選單

總結:執行放在mbr扇區裡的啟動grub引導程式

grub選單

對於linux作業系統來說,grub(統一啟動載入器)是使用最為廣泛的多系統引導器程式。系統控制權傳遞給grub以後,將會顯示啟動選單給使用者選擇,並根據所選項載入linux核心檔案,然後將系統控制權轉交給核心。

centos 7 採用的是grub2 啟動引導器。

總結:grub引導程式讀取grub配置檔案/boot/grub2/grub.cfg,來獲取核心和映象檔案系統的設定和路徑位置

載入linux核心

linux核心是乙個預先編譯好的特殊二進位制檔案,介於各種硬體資源與系統程式之間,負責資源分配與排程。核心接過系統控制權以後,將完全掌握整個linux作業系統的執行過程

centos 7系統中,預設的核心檔案位於

「」/boot/vmlinuz-1.10.0-514.e17.x86_64".

總結把核心和映象檔案系統載入到記憶體中

init程序初始化

為了完成進一步的系統引導過程,linux核心首先將系統中的「/sbin/init」程式載入到記憶體中執行(執行中的程式稱為程序),init程序負責完成整個系統的初始化,最後等待使用者進行登入

總結:載入硬體驅動程式,核心把init程序載入到記憶體中執行

傳統sysvinit依賴於序列執行shell指令碼啟動服務,導致效率低下,系統啟動速度較慢

systemd能夠將更多的服務程序並行啟動,並且具有提供按需啟動服務的能力,使得啟動更少程序,從而提高系統啟動速度

service .service 描述乙個系統服務

socket .socket 描述程序間通訊的套件字

device .devicec 描述乙個核心識別的裝置檔案

mount .mount 描述乙個檔案系統的掛載點

automount .automount 描述乙個檔案系統的自動掛載點

awap .swap 描述乙個記憶體交換裝置或交換檔案

path .path 描述乙個檔案系統中檔案或目錄

timer .timer 描述乙個定時器(用於實現類似cron的排程任務)

snapshot .snapshot 用於儲存乙個systemd的狀態

scope .scope 使用systemd的匯流排介面以程式設計的方式建立外部程序

slice .slice 描述居於cgroup的一組通過層次組織的管理系統程序

target .target 描述一組systemd的單元

修復mbr扇區故障

故障原因

病毒、木馬等造成的破壞

不正確的分割槽操作、磁碟讀寫誤操作

故障現象

找不到引導程式,啟動中斷

無法載入作業系統,開機後黑屏

解決思路

應提前作好備份檔案

以安裝光碟引導進入急救模式

從備份檔案中恢復

排除啟動類故障

#####修復mbr扇區故障

mbr位於第一塊硬碟(/dev/sbd1/)

mkdir /backup

mount /dev/sdb1 /backup

dd id =/dev/sda of=/backup/mbr.bak bs=512 count=1

模擬破壞mbr引導扇區

dd if=/dev/zero of =/dev/sda ba =512 count=1

3.引導介面進入急救模式,從備份檔案中恢復mbr 扇區資料

先載入好光碟映象, 重啟作業系統,

當出現安裝嚮導介面時,選擇「troubleshooting」選項,進入急救模式

選擇「1」選擇continue並按enter 鍵繼續

再次按enter鍵後將進入帶「sh-4.2」提示符的bash shell 環境

sh-4.2 # mkdir /backupdir

sh-4.2 # mount /dev/sbd1 /backupdir

sh- 4.2 # exit

修復grub引導故障

故障原因

mbr中的grub引導程式遭破壞

grub.conf檔案丟失、引導配置有誤

故障現象

系統引導停滯,顯示「grub>」提示符

解決思路

嘗試手動輸入引導命令

進入急救模式,重寫或者從備份中恢復grub.conf

向mbr扇區中重建grub程式

####修復grub引導故障

/boot/grub/目錄下的包是用於啟動選單的背景及樣式

/boot/grub2/grub.cfg

方法一:手動輸入引導命令(笨拙繁瑣,不建議使用)

grub> insmod xfs

grub> linux16 /vmlinuz-3.10.0-693.e17.c86_64 root=uuid=8fd74986-ae66-4ffd-b7d8-a19f2eca7b6f ro rhgb quiet

lang=zh_cn.utf-8

grub>initrd16 /initramfs-3.10.0-693.e17.x86_64.img

方法二:進入急救模式。恢復grub引導程式

mbr位於第一塊硬碟(/dev/sda)的第一塊的物理扇區處,總共512位元組,前466位元組是主引導記錄,分割槽表儲存在mbr扇區中的第477-51中。

mkdir /bak

mount /dev/sbd1 /bak

dd=if=/dev/zer0 of=/dev/zero of=/dev/sda bs=446 count=1

模擬對mrb中的grub引導程式的破壞,但並不破壞分割槽表

dd if=/dev/sbd1 /bak of=/dev/sda bs=446 counitrt=1

引導介面進入急救模式,從備份檔案中恢復grub引導程式

sh4.2# mkdir /backupdir

sh4.2# mount /dev/sdb1 /backupdir

sh4.2# dd if=/backupdir/grub.bak of=/dev/sda

sh-4.2# exit

方法三:引導介面進入急救模式,重建grub選單配置檔案

rm -rf /boot/grub.cfg

#進入急救模式,載入光碟映象,切換到系統根環境

sh-4.2# chroot /mnt/sysimage

#重新將grub引導程式安裝到第一塊硬碟(/dev/sda)的mrb扇區

bash-4.2# grup2-install /dev/sda

#重新構建grub選單的配置檔案

bash-4.2# grub2-mkconfig -o /boot/grub2/grub.cfg

#退出chroot 環境,並重啟

bash-4.2# exit

sh-4.2# reboot

linux系統的執行級別

檢視執行級別

runlevel命令 runlevel只能檢視切換執行級別與當前執行級別

systemctl工具

檢視系統預設的執行級別

systemctl get-default

ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

或systemctl set-default muti-user.target

永久修改主機名

hostnamectl set-hostname newname

檢視主機名的狀態

hostnamectl status

設定系統語言為中文

loaclectl set-locale lang=zh_cn.utf8

查當前系統使用的語言

localect [status]

檢視系統啟動耗時

systemd-analyze

優化啟動過程

ntsysv工具

提供乙個互動式,視覺化視窗

可以在字元終端執行

便於集中管理多個服務

用於控**務是否開機自啟動

systemctl工具

不提供互動式,視覺化視窗

管理單個服務效率更高

Linux作業系統引導過程概述

linux作業系統引導過程概述 引導過程總覽 linux作業系統的引導過程一般包括以下幾個階段 開機自檢 mbr引導 grub選單 載入linux核心 init程序初始化 開機自檢 伺服器主機開機以後,將根據主機板bios中的設定對cpu central processing unit,處理器 記憶...

作業系統引導

1.系統開機或者重啟。2.bios 加電自檢 power on self test post bios執行記憶體位址為ffff 0000h 處的跳轉指令,跳轉到固化在rom中的自檢程式處,對系統硬體 包括記憶體 進行檢查。3.當bios檢查到硬體正常並與cmos 中的設定相符後,按照cmos 中對啟...

作業系統引導

作業系統是如何引導的呢?當系統加電自檢通過以後,硬碟被復位,bios 將根據使用者指定的啟動順序從軟盤 硬碟或光碟機進行啟動。以從硬碟啟動為例,系統 bios 將主引導記錄讀入記憶體。然後,將控制權交給主引導程式,然後檢查分割槽表的狀態,尋找活動的分割槽。最後,由主引導程式將控制權交給活動分割槽的引...