開機啟動流程

語言: CN / TW / HK

開機啟動流程

Centos6

1.核心引導

  • BIOS加電自檢,檢測主機板上的硬體裝置,然後根據BIOS設定啟動系統(進系統之前的管理介面)
  • 讀取/boot分割槽下,所有核心檔案

2.執行init 所有程序的父程序 pid為1,只有init執行起來,其他程序才能執行起來。 init型別

init: sysV:CentOS5之前使用的pid為1的程序 
Upstart:CentOS6使用的init程序 
Systemd:CentOS7

## 載入init,涉及到Linux系統中7個執行級別 
# 檢視Linux系統當前的執行級別
[[email protected] ~]# runlevel 
N(上一次沒有) 3
[[email protected] boot]# init 5 切換執行級別
[[email protected] boot]# runlevel
3 5


0:關機執行級別 
1:單使用者執行級別 
2:多使用者執行級別,沒有檔案系統 
3:多使用者執行級別,有檔案系統(命令列模式)(我們現在使用的)
4:CentOS6和7 保留,未使用
5:多使用者,圖形化執行級別 
6:重啟執行級別

# 執行init,首先會讀取 /etc/inittab配置檔案
# 讀取配置檔案中的預設執行級別 
## 獲取當前系統的執行級別
C6是
id:3:initdefault: 
C7是
[[email protected] boot]# systemctl get-default
multi-user.target
切換執行級別
 systemctl set-default TARGET.target
TARGET: 
 multi-user
 graphical


啟動init程序。

/etc/inittab配置檔案 如下圖

3.系統初始化

## 根據執行級別中設定了開機自啟動服務來啟動對應服務 
C6 檢視開機自啟動服務來啟動對應服務 
[[email protected] ~]# chkconfig --list


C7 檢視開機自啟動服務來啟動對應服務 
方式一:#systemctl list-unit-files 
方式二:# ll /etc/systemd/system/multi-user.target.wants/



執行級別為3時,開機預設啟動的服務。如下圖

Centos7

1.系統韌體初始化

  • BIOS加電自檢,檢測主機板上的硬體裝置(顯示卡、記憶體、磁碟),根據BIOS設定查詢啟動介質(磁碟、U盤等),啟動系統。
  • 讀取/boot分割槽下,

2.MBR ( Master Boot Record 主引導記錄)。 3.GRUB2 Bootloader(引導選單)載入grub2選單,選擇要進入的系統 4.Kernel(核心引導) 讀取/boot目錄下所有核心檔案 5.Systemd管理執行級別(不再使用init,改成了systemd)

runlevel0.target -> poweroff.target
runlevel1.target -> rescue.target 
runlevel2.target -> multi-user.target
runlevel3.target -> multi-user.target 
runlevel4.target -> multi-user.target 
runlevel5.target -> graphical.target 
runlevel6.target -> reboot.target 
#2.3.4是同一個級別
根據不同的級別啟動開機自啟動服務

建立服務開機自啟動命令

systemctl enabled nginx
取消服務開機自啟動命令
systemctl disable nginx

6.Runlevel-Target

Centos-7 單使用者模式的用法

解決忘記root密碼

1、關機 2、開機 3、進入gurb2選單

1、在linux16行中 將ro改成rw (將/目錄改成可讀可寫狀態)
2、在linux16行末寫入: seliux=disabled init=/bin/bash 如下圖
#如果第一步忘記 則在進入系統後,在命令列輸入
mount -o rw,remount /  
3、按ctrl + x 退出編輯介面

4、修改密碼

echo 1 |passwd --stdin root

## 重新載入init 
exec /sbin/init

修改預設執行級別

1.關機 2.進入grub2選單 3.按e編輯grub2選單的核心引數

1、在linux16行中 將ro改成rw (將/目錄改成可讀可寫狀態)
2、在linux16行末寫入: rd.break 如下圖
3、修改後,按Ctrl + x

1.重新掛載root許可權目錄 mount -o rw,remount /sysroot 
2.獲取root許可權 chroot /sysroot 
3.修改預設執行級別 systemctl set-default multi-user.target 
4.退出 exit # 5.重啟 reboot

這兩種用法只可單獨寫,不可混合寫。