Linux引導與服務控制
阿新 • • 發佈:2018-06-22
code roc process 內核 故障 配置文件 菜單 服務 centos 一、Linux引導過程
2.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引導與服務控制