開機啟動流程
開機啟動流程
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
這兩種用法只可單獨寫,不可混合寫。
「其他文章」
- 設計模式之狀態模式
- 如何實現資料庫讀一致性
- 我是怎麼入行做風控的
- C 11精要:部分語言特性
- 吳恩達來信:人工智慧領域的求職小 tips
- EasyCV帶你復現更好更快的自監督演算法-FastConvMAE
- 某車聯網App 通訊協議加密分析(四) Trace Code
- 帶你瞭解CANN的目標檢測與識別一站式方案
- EasyNLP玩轉文字摘要(新聞標題)生成
- PostgreSQL邏輯複製解密
- 基於 CoreDNS 和 K8s 構建雲原生場景下的企業級 DNS
- 迴圈神經網路(RNN)可是在語音識別、自然語言處理等其他領域中引起了變革!
- 技術分享| 分散式系統中服務註冊發現元件的原理及比較
- 利用谷歌地圖採集外貿客戶的電話和手機號碼
- 跟我學Python影象處理丨關於影象金字塔的影象向下取樣和向上取樣
- 帶你掌握如何使用CANN 運算元ST測試工具msopst
- 一招教你如何高效批量匯入與更新資料
- 一步步搞懂MySQL元資料鎖(MDL)
- 你知道如何用 PHP 實現多程序嗎?
- KubeSphere 閘道器的設計與實現(解讀)