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

Linux引導與服務控制

code roc process 內核 故障 配置文件 菜單 服務 centos

一、Linux引導過程

1.引導過程

(1)開機自檢:根據主板BIOS對CPU、內存等進行檢測,成功後根據啟動順序移動系統控制權
(2)MBR引導:根據硬盤第1個扇區中MBR(主引導記錄)的設置,將系統控制權傳給包含系統的分區,
        或者根據引導信息調用啟動菜單(如GRUB)
(3)GRUB菜單:顯示啟動菜單用戶選擇,根據選項(或默認值)加載Linux內核文件,將控制權交於內核
(4)加載Linux內核:內核加載,掌控整個Linux系統運行過程;/boot存放內核文件
(5)init進程初始化:讀取/sbin/init程序加載到內存中運行,完成一系列系統初始化,等待用戶登錄

2.Linux啟動方式

(1)Centos 6:Upstart
(2)Centos 7:Systemd

二、運行級別

1.init進程

 內核第一個加載程序,PID(進程的身份標記)總為1
 RHEL 6采用Upstart啟動方式,將初始化配置分散存放,以前全部存放在/etc/inittab配置文件中
配置文件 作用
/etc/inittab 配置默認運行級別
/etc/sysconfig/init 控制tty終端的開啟數量、終端顏色方案
/etc/init/rcS.conf 加載rc.sysinit腳本,完成系統初始化任務
/etc/init/rc.conf 兼容腳本,負責各運行級別的調用處理
/etc/init/rcS-sulogin.conf 為單用戶模式啟動/sbin/sushell環境
/etc/init/control-alt-delete.conf 控制終端下的Ctrl+Alt+Del熱鍵操作
/etc/init/start-ttys.conf 配置tty終端的開啟數量、設備文件
/etc/init/tty.conf 控制tty終端的開啟

2./etc/inittab配置文件

vim /etc/inittab
id:3:initdefault:
標識名:運行級別:動作:開機需執行命令
0:關機;不要設置為默認
1:單用戶模式;一般用於維護或救援操作
2:多用戶模式;不支持網絡
3:完整的多用戶模式;大多數使用
4:未定義
5:圖形化
6:重啟;不要設置為默認

三、故障恢復

1.MBR故障

(1)備份MBR
新建硬盤,並分區掛載到/hehe/目錄下
技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片

dd if=/dev/sda of=/hehe/mbr.bak bs=512 count=1    //將系統磁盤頭部的512字節MBR引導拷貝到/hehe/mbr.bak

技術分享圖片
(2)模擬故障

dd if=/dev/zero of=/dev/sda bs=512 count=1     //使用/dev/zero文件覆蓋掉/dev/sda的512字節頭部MBR引導

技術分享圖片
(3)放入光盤,進入救援模式
技術分享圖片
(4)還原

mkdir /aa     //新建目錄/aa

技術分享圖片

mount /dev/sdb1 /aa     //掛載/dev/sdb1到/aa
dd if=/aa/mbr.bak of=/dev/sda bs=512 count=1       //將之前備份出的/aa/mbr.bak懟到/dev/sda頭部的512字節

技術分享圖片
(5)驗證結果,重啟查看是否能啟動系統
技術分享圖片

2.GRUB菜單

#Centos 7以上(Grub2)
#chroot /mnt/sysimage
#grub-mkconfig -o /boot/grub/grub.cfg

Centos 6以下(Grub1)
(1)備份Grub文件

cp /boot/grub/grub.conf /hehe/      //將grub配置文件拷貝到/hehe/

技術分享圖片
(2)模擬故障

rm -rf /boot/grub/grub.conf      //刪除grub引導

技術分享圖片
(3)放入光盤,進入救援模式
(4)還原

chroot /mnt/sysimage            //切換到原系統環境

#如不使用chroot

{
mkdir /aaa
mount /dev/sdb1 /aaa
cp /aaa/grub.conf /mnt/sysimage/boot/grub/
exit
}
mount /dev/sdb1 /hehe       //掛載/dev/sdb1到/hehe
cp /hehe/grub.conf /boot/grub/          //將之前拷貝出的文件還原到/boot/grub

技術分享圖片

exit
reboot        //退出重啟系統

技術分享圖片
技術分享圖片

3.testdisk <要恢復的磁盤> //Linux下恢復分區表命令

4.root用戶密碼恢復

(1)GRUB菜單 --> e --> kernel一行按e --> 空格1 --> 回車 --> b      //進入單用戶

技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片

(2)passwd root 或 echo "密碼" | passwd --stdin root       //重置密碼

技術分享圖片

Linux引導與服務控制