一、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:重新開機;不要設定為預設
3.運作級别控制
1.runlevel //檢視目前系統運作級别
N 3
上次運作級别 目前運作級别
N=從未切換運作級别
S=與1效果一樣,運作級别為1
2.init <運作級别> :切換運作級别;一次生效
三、Linux服務控制
1.方式一
service 服務名稱 控制類型
2.方式二
/etc/init.d/服務名稱 控制類型
控制類型:
start:啟動
stop:停止
restart:重新開機
reload:重新加載配置檔案
status:檢視服務狀态
例:
(1)service sshd start :啟動sshd遠端服務
(2)/etc/init.d/ntpd restart :重新開機ntpd時間同步服務
(3)/etc/init.d/ntpd status :檢視ntpd服務狀态;is running為正在運作、is stopped為停止狀态
四、服務的自啟動控制
1.ntsysv:互動式控制服務的自啟動狀态;批量控制較常見
ntsysv --level 35 //運作級别35設定服務的自啟動狀态;如未使用--level選項則為目前運作級别設定
2.chkconfig:非互動式控制服務的自啟動狀态;控制單個服務較常使用
chkconfig --level 35 sshd { on | off } //設定sshd服務在35運作級别為開啟|禁用;如未使用--level選項則為目前運作級别設定
3.chkconfig --list //檢視所有服務的自啟動狀态
4.chkconfig --list sshd //隻檢視sshd服務的自啟動狀态
五、故障恢複
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)放入CD光牒,進入救援模式
(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/
rm -rf /boot/grub/grub.conf //删除grub引導
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 //重置密碼