1. 程式人生 > 其它 >Linux引導過程與服務控制

Linux引導過程與服務控制

目錄

一、Linux作業系統引導過程

二、系統初始化程序

三、修復MBR扇區故障

四、修復GRUB引導故障

五、遺忘root使用者密碼

六、系統服務控制

七、Linux系統的執行級別

八、優化啟動過程

九、補充

一、Linux作業系統引導過程

  引導過程總覽

1、開機自檢 總結:檢測出第一個能夠引導系統的裝置,比如硬碟或者光碟機 2、MBR 引導 當從本機硬碟中啟動系統時,首先根據硬碟第一個扇區中MBR (主引導記錄)的設定,將系統控制權傳遞給包含作業系統引導檔案的分割槽;或者直接根據MBR記錄中的引導資訊呼叫啟動選單(如GRUB) 。 總結:執行放在MBR扇區裡的啟動GRUB載入程式 3、GRUB選單 對於Linux作業系統來說,GRUB (統一啟動載入器)是使用最為廣泛的多系統引導器程式。系統控制權傳遞給GRUB以後,將會顯示啟動選單給使用者選擇,並根據所選項(或採用預設值)載入Linux核心檔案,然後將系統控制權轉交給核心。 CentOS 7採用的是GRUB2啟動引導器。 總結:GRUB載入程式通過讀取GRUB配置檔案/boot/grub2/grub.cfg,來獲取核心和映象檔案系統的設定和路徑位置 4、載入Linux核心 Linux核心是一個預先編譯好的特殊二進位制檔案,介於各種硬體資源與系統程式之間,負責資源分配與排程。核心接過系統控制權以後,將完全掌控整個Linux作業系統的執行過程。 CentOS 7系統中,預設的核心檔案位於"/boot/vmlinuz-3.10.0-514.e17.x86_64" 總結:把核心和映象檔案系統載入到記憶體中 硬體光碟機 5、init程序初始化 為了完成進一步的系統引導過程,Linux核心首先將系統中的"/sbin/init"程式載入到記憶體中執行(執行中的程式稱為程序),init程序負責完成整個系統的初始化,最後等待使用者進行登入。 總結:載入硬體驅動程式,核心把init程序載入到記憶體中執行
二、系統初始化程序 1、init程序
  • 由Linux核心載入執行/sbin/init程式
  • init程序是系統中第一個程序,是所有程序的父程序
  • init程序的PID (程序)號永遠為1
2、Systemd
  • Systemd是Linux作業系統的一種init軟體
  • CentOS7中採用全新的Systemd啟動方式,取代傳統的SysVinit
  • CentOS7中執行的第一個init程序是/lib/systemd/systemd
  傳統SysVinit依賴於序列執行Shell指令碼啟動服務,導致效率低下,系統啟動速度較慢   systemd能夠將更多的服務程序並行啟動,並且具有提供按需啟動服務的能力,使得啟動更少程序,從而提高系統啟動速度。 2.1 Systemd 單元型別

2.2 執行級別所對應的Systemd目標

三、修復MBR扇區故障

MBR位於第一塊硬碟(/dev/sda)的第一個物理扇區處,總共512位元組

1、故障原因 病毒、木馬等造成的破壞 不正確的分割槽操作、磁碟讀寫誤操作 2、故障現象 找不到載入程式,啟動中斷 無法載入作業系統,開機後黑屏 3、解決思路 應提前做好備份檔案 以安裝光碟引導進入急救模式 從備份檔案中恢復 4、模擬故障示例 4.1 備份MBR扇區資料到其他磁碟(/dev/sdb1)
mkdir /backup
mount /dev/sdb1 /backup
dd if=/dev/sda of=/backup/mbr.bak bs=512 count=1

4.2 模擬破壞MBR引導扇區

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

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

先載入好光碟映象,重啟作業系統,當出現安裝嚮導介面時,選擇“Troubleshooting”選項,再選擇“Rescue a CentOS Linux system”選項,進入急救模式,選擇“1”選擇Continue並按Enter鍵繼續,再次按Enter鍵後將進入帶“sh-4.2#”提示符的Bash Shell環境

sh-4.2# mkdir /backupdir
sh-4.2# mount /dev/sdb1 /backupdir         //掛載帶有備份檔案的分割槽
sh-4.2# dd if=/backupdir/mbr.bak of=/dev/sda      //恢復備份資料
sh-4.2# exit       //執行exit命令退出臨時Shell環境,系統將會自動重啟

四、修復GRUB引導故障

1、故障原因
  • MBR中的GRUB載入程式遭到破壞
  • grub.conf檔案丟失、引導配置有誤
2、故障現象
  • 系統引導停滯,顯示‘grub>’提示符
3、解決思路
  • 嘗試手動輸入引導命令
  • 進入急救模式,重寫或者從備份中恢復grub.conf
  • 向MBR扇區中重建grub程式

4、進入急救模式,重建GRUB選單配置檔案

4.1 刪除grub.cfg檔案以模擬故障

4.2 進入急救模式下進行重建

五、遺忘root使用者密碼

1、故障原因
  • 遺忘root使用者密碼
2、故障現象
  • 無法進行需要root許可權的管理操作
  • 若沒有其他賬號可用,將無法登陸系統
3、解決思路
  • 進入急救模式,重設密碼
4、示例 進入急救模式更改密碼

六、系統服務控制

1、格式

systemctl 控制型別 服務名稱

2、常用控制型別

3、同作用服務

注:init3進入的是字元介面,init5進入的是圖形介面

七、Linux系統的執行級別

1、檢視執行級別

  • runlevel命令:只能檢視切換執行級別與當前執行級別
  • systemctl工具:能檢視預設的執行級別

2、臨時切換執行級別

  • init命令:命令引數時執行級別所對應的數字
  • systemctl工具:命令引數是具體的target

3、設定永久執行級別

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

八、優化啟動過程

1、優化工具 1.1、ntsysv工具
  • 提供一個互動式、視覺化視窗
  • 可以在字元終端執行
  • 便於集中管理多個服務
  • 用於控制服務是否開機自啟動
1.2、systemctl/chkconfig工具
  • 不提供互動式、視覺化視窗
  • 管理單個服務效率更高
systemctl is-enabled 伺服器名稱      //檢視系統服務的啟動狀態

systemctl enable 服務名稱              //開啟開機自啟動

systemctl disable 服務名稱           //關閉開機自啟動
2、系統服務的啟動與控制 2.1 ntsysv系統服務管理工具
ntsysv --level 級別列表
  • 按空格鍵標誌服務選項
  • 按↑和↓鍵切換服務選項
  • 按tab鍵切換游標

九、補充

1、設定系統語言為中文

localectl set-locale LANG=zh_CN.utf7

2、檢視當前系統使用的語言

localectl [status]