天天看點

引導過程和服務控制

引導過程和服務控制

目錄

一、Linux作業系統引導過程

       1.1、引導過程總覽

       1.2、系統初始化程序

       1.3、Systemd單元類型

       1.4、運作級别所對應的Systemd目标

 二、故障處理小實驗

        2.1、修複MBR扇區故障

        2.2、修複GRUB引導故障

        2.3、遺忘root 使用者密碼

三、Linux系統服務控制

       3.1、系統服務控制

四、Linux系統運作級别切換

       4.1、檢視運作級别

       4.2、臨時切換運作級别

       4.3、檢視系統預設級别

       4.4、設定臨時運作級别

       4.5、設定永久運作級别

五、優化開機自動加載服務

        5.1、優化啟動過程

        5.2、系統服務的啟動和控制

        5.3、指令補充

1、引導過程總覽

     開機自檢(BIOS)->MBR引導 ->GRUB菜單 ->加載核心(kernel) ->init程序初始化

1)開機自檢(BIOS)

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

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

2)MBR引導

當從本機硬碟中啟動系統時,首先根據硬碟第一個扇區中MBR(主引導記錄)的設定,将系統控制權傳遞給包含作業系統引導檔案的分區,或者直接根據MBR記錄中的引導資訊調用啟動菜單(如GRUB)

總結:運作放在MBR扇區裡的啟動GRUB引導程式

3)GRUB菜單

對于Linux作業系統來說,GRUB(統一啟動加載器)是使用最為廣泛的多系統引導器程式。系統控制權傳遞給GRUB以後,将會顯示啟動菜單給使用者選擇,并根據所選項(或采用預設值)加載Linux核心檔案,然後将系統控制權移交給核心。

CentOS 7采用的是GRUB2啟動引導器。

總結:GRUB引導程式通過讀取GRUB配置檔案/boot/grub2/grub.cfg,來擷取核心和鏡像檔案系統的設定和路徑位置

4)加載核心(kernel)

Linux核心是一個預先編譯号的特殊二進制檔案,介于各種硬體資源與系統程式之間,負責資源配置設定與排程。核心接過系統控制權以後,将完全掌控整個Linux作業系統的運作過程

CentOS 7系統中,預設的核心檔案位于“/boot/vmlinuz-3.10.0-514.e17.x86_64”

總結:把核心和鏡像檔案系統加載到記憶體中

5)init程序初始化

為了完成進一步的系統引導過程,Linux核心首先将系統中的額“/sbin/init”程式加載到核心中運作(運作中的程式稱為程序),init內建負責完成整個系統的初始化,最後等待使用者進行登入

總結:加載硬體驅動程式,核心把init程序加載到記憶體中運作

2、系統初始化程序

1)init程序

①、由Linux核心加載運作/sin/init程式

②、init程序是系統中第一個程序,是所有程序的父程式

③、init程序的PID(程序标記)号永遠為1

2)systemd

①、systemd是Linux作業系統的一種init軟體

②、CentOS 7中采用全新的Systemd啟動方式,取代傳統的SysVinit

③、CentOS 7中運作的第一個init程序是/lib/systemd/systemd

注:傳統SysVinit依賴于串行執行Shell腳本啟動服務,導緻效率低下,系統啟動速度較慢,systemd能夠将更多的服務程序并行啟動,并且具有提供按需啟動服務的能力,使得啟動更少程序,進而提高系統啟動速度。

3、Systemd單元類型

引導過程和服務控制

 4、運作級别所對應的Systemd目标

引導過程和服務控制

1、修複MBR扇區故障

1)故障原因

①、病毒、木馬等造成的破壞

②、不正确的分區操作、磁盤讀寫誤操作

2)故障現象

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

②、無法加載作業系統,開機後黑屏

3)解決思路

①、應提前做好備份

②、以安裝CD光牒引導進入急救模式

③、從備份檔案中恢複

4)故障模拟及處理過程

MBR位于第一塊硬碟(/dev/sda)的第一個實體扇區處,總共512位元組

①、備份MBR扇區資料到其他磁盤(/dev/sdb1)

       mkdir /backup

       mount /dev/sdb1 /backup

       dd if=/edv/sda of=/backup/mbr.bak bs=512 conut=1

②、模拟破壞MR引導扇區

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

③、應道界面進入急救模式,從備份檔案中國灰階MBR扇區資料

       先加載好CD光牒鏡像,重新開機作業系統

       當出現安裝向導界面時,選擇“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環境,系統将會自動重新開機

2、修複GRUB引導故障

①、MBR中的GRUB引導程式遭到破壞

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

系統引導停滞,顯示“grub>”提示符

①、嘗試手動輸入引導指令

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

③、向MBR扇區中重建grub程式

/boot/grub/目錄下的包是用于啟動菜單的背景圖檔及樣式

/boot/grub2/grub.cfg #GRUB配置檔案

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

grub> insmod xfs                             加載指定的子產品到核心

grub> linux16 /vmlinuz-3.10.0-693.e17.x86_64 root=UUID=8fd74986-ae66-4ffd-b7d8-a19f2eca7b6f ro rhgb quite LANG=zh_CN.UTF-8                       核心的名字及位置等資訊

grub> initrd16 /initramfs-3.10.0..693.e17.x86_64.img    鏡像系統檔案

grub> boot                                                                      引導boot

方法二:進入急救模式,恢複GRUB引導程式

MBR位于第一塊硬碟(/dev/sda)的第一個實體扇區處,總共512位元組,前446位元組是主引導記錄,分區儲存在MBR扇區中的第447-510位元組中

①、備份資料到其他磁盤中

       mkdir /bak

       monut /dev/sdb1 /bak

       dd if=/dev/sda of=/bak/grub.bak bs=446 count=1

②、模拟對MBR中的GRUB引導程式的破壞,但并不破壞分區表

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

③    引導界面進入急救模式,從備份檔案中恢複GRUB引導程式

        sh-4.2# mkdir /backupdir

        sh-4.2# mount/dev/sdb1 /backupdir #挂載帶有備份檔案的分區

        sh-4.2# dd if=/backupdir/grub.bak of=/dev/sda #恢複備份資料

        sh-4.2# exit #執行exit指令退出臨時Shell環境,系統将會自動重新開機

方法三:引導界面進入急救模式,重建GRUB菜單配置檔案

rm -rf /boot/grub2/grub.cfg

①、進入急救模式,加載CD光牒鏡像,切換到系統根環境

        sh-4.2# chroot /mnt/sysimage

②、重新将GRUB引導程式安裝到第一塊硬碟(/sev/sda)的MBR扇區,如果有多個分區可省略

        bash-4.2# grub2-install /dev/sda

③、重新建構GRUB菜單的配置檔案

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

④、退出chroot環境,并重新開機

       bash-4.2# exit

       sh-4.2# reboot

3、遺忘root 使用者密碼

①、遺忘root使用者的密碼

①、無法進行需要root權限的管理操作

②、若沒有其他可用賬号,将無法登陸系統

①、進入急救模式,重設密碼

①、進入急救模式,加載系統鏡像,切換到系統根環境

       sh-4.2# chroot /mnt/sysimage

②、重設root使用者密碼

       bash-4.2# passwd root

1、系統服務控制

1)格式:systemctl 控制類型 服務名稱

2)控制類型

①、start---啟動

②、stop---停止

③、restart---重新啟動

④、reload---重新加載

⑤、status---檢視服務狀态

1、檢視運作級别

1)runlevel指令:runlevel隻能檢視切換運作級别與目前運作級别

2)systemctl工具

      systemctl 時能檢視預設的運作級别

2、臨時切換運作級别

1)init指令

     init指令參數是運作級别所對應的的數字

     systemctl的指令參數是具體的target

3)init與systemctl對應表

引導過程和服務控制

3、檢視系統預設級别

      systemctl get-default

4、設定臨時運作級别

1)格式:chkconfig --list [服務名稱]

                chkconfig --add 服務名稱

                chkconfig --level 級别清單 服務名 on/off

2)例:chkconfig --add httpd

            chkconfig --level 35 httpd on

5、設定永久運作級别

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

2) systemctl set-default multi-user.target

1、優化啟動過程

1)ntsysv工具

①、提供一個交換式、可視化視窗

②、可以在字元終端運作

③、便于集中管理多個服務

④、用于控制服務是否開機自啟動

2)systemctl/chkconfig工具

①、不提供互動式、可視化視窗

②、管理單個服務效率更高

2、系統服務的啟動和控制

1)ntsysv系統服務管理工具

①、輸入ntsysv指令進入設定界面

②、按空格鍵标志服務選項(*為自啟項)

③、按↑、↓鍵切換服務選項

④、按tab切換光标

2)檢視系統服務的啟動狀态

①、sysemctl is-enabled 服務名稱

3)設定系統服務的啟動狀态

①、systemctl enable 服務名稱             # 開啟開機自啟動

②、syatemctl disable 服務名稱            # 關閉開機自啟動

3、指令補充

1)永久修改主機名

      hostnamectl set-hostname 新主機名

2)檢視主機名的狀态

      hostnamectl status

3)設定系統語言為中文

      localect set-locale LANG=zh_CN.utf8

4)檢視目前系統使用的語言

繼續閱讀