Linux在啟動中往往會由于一些故障而無法正常其中。這是時候往往可以通過Single單使用者模式、救援模式等方式進行啟動和救援恢複正常。本文蟲蟲給大家介紹一下這些典型的模式以及以一個Xen虛拟化模式下Centos 6.5更新核心情況下導緻系統故障的救援解決。
單使用者模式
Linux下最常用的是單使用者模式,可以在最小加載模式下(init 1),無需使用者認證情況下加載系統,進入shell指令行界面。單使用者模式網絡被禁用,而且也沒有啟用很多服務。如果出現系統檔案損壞,配置檔案丢失,或者使用者密碼丢失無法進入系統的情況,可以使用單使用者模式。注意新版本的centos 7和以前版本centos進去單使用者方式不一樣,我們分别截圖介紹下:
centos 6
在Grub菜單界面

按e,編輯指令
kernel行的最後加上single,回車,然後按b,加載啟動系統。
就會到到單使用者shell界面,在改界面可以用passwd修改root密碼。
centos 7
centos7 是用grub2菜單,菜單界面如下圖:
按b進入編輯界面,注意centos 7下grub 2的編輯界面和以前的系統大有不同
在linux 16 哪一行 init=/bin/sh"
按住Ctrl+x 啟動系統就進入了單使用者模式。然後用passwd修改密碼或者其他操作
救援模式
有時候系統根本無法啟動,甚至grub菜單都加載不了,這時候就需要使用Linux啟動盤來輔助進入救援模式來做故障修複了。
救援模式需要啟動盤輔助加載系統,是以要改變boot順序為從CD光牒或者USB啟動。注意在如果使用xen虛拟機Centos系統的話,是無法修改boot順序的,如下圖:
要改變啟動順序必須借助Xen主控端來,我們先登陸主控端:
執行xe vm-list,找到我們的虛拟機的uuid
然後依次執行下面兩個指令:
xe vm-param-set uuid=97f817bd-7f6b-3ea8-056b-e19fe055c800 HVM-boot-policy="BIOS order"xe vm-param-set uuid=97f817bd-7f6b-3ea8-056b-e19fe055c800 HVM-boot-params:order="dc"
這樣就可以顯示設定boot順序了
我們選中DVD-Drive,然後啟動系統
選擇"Rescue installed system"進入救援模式,選擇語言、鍵盤和網絡後進入
Tab點選Continue繼續
注意該頁的資訊我們的系統被加載到/mnt/sysimage下了,後面要用到。
此處選擇shell進入指令操作界面,其他兩個是fakd進行診斷;reboot重新開機系統。
這時就會進入一個指令行界面,注意此時系統是臨時的CD光牒啟動救援系統。為了進行操作我們需要加載硬碟上的系統。我們要用chroot指令:
chroot /mnt/sysimage
然後就可以進行其他操作了,比如修改密碼,修複配置,備份檔案等。
救援執行個體
最後我們舉個救援的執行個體作為結束,之前Linux核心爆個嚴重漏洞TCP網絡資料包時候存在缺陷導緻三個漏洞, CVE-2019-11477,CVE-2019-11478和CVE-2019-11479,關于該漏洞的預警和修複方法,蟲蟲的此前發文介紹過。修複該漏洞根本方法是更新核心,Centos 6.5 需要更新核心版本到kernel-2.6.32-754.15.3版本。
用yum update kernel更新Xen虛拟機Centos 6.5後,重新開機出現故障,甚至無法進入grub菜單。
此時我們可以使用上面的提到的救援模式,在救援模式下修改/etc/grub.conf
修改配置中default=1,表示加載上一個核心。
然後reboot重新開機系統,故障恢複。
由于centos核心更新檔和Xen架構相容導緻問題,是以恢複系統後
yum remove kernel-2.6.32-754.15.3.el6.x86_64.rpm
恢複所有現場。
以上是一般情況下的救援恢複模式。由于我們的事故主機是Xen虛拟機,我們有更便捷編輯啟動選項的方法。那就是使用xe指令來直接在xen主控端上編輯虛拟機的grub.conf。
首先登陸到xen主控端上:
1、執行 xe vm-list查詢事故機器的uuid(同上面部分)。
2 在xen center關閉該機器或者用指令關機
xe vm-shutdown uuid=97f817bd-7f6b-3ea8-056b-e19fe055c800
3、通過以下指令啟動編輯:
xe-edit-bootloader -u 97f817bd-7f6b-3ea8-056b-e19fe055c800 -p 1
和救援模式一樣,修改配置中default=1,儲存。
重新開機系統,其他同救援模式操作一樣。
總結
本文介紹了Linux(centos)下系統單使用者模式以及救援模式及操作方法。并通過執行個體介紹了在核心更新失敗系統無法啟動情況下的救援恢複操作。并穿插介紹了xen虛拟化中一些xen主控端管理指令。