1. 程式人生 > 其它 >Linux基礎:作業系統的啟動

Linux基礎:作業系統的啟動

Centos6:

# 1.加電自檢(BIOS)
# 2.MBR引導(512k)dd </dev/zero >/dev/sda bs=1k count=400
# 3.GRUB選單(選擇系統)
# 4.執行init
- 檢查/etc/inittab(id:3:initdefault)
- 找到/etc/rc3.d/目錄下,所有以S開頭的服務,並啟動
# 5.建立終端
# 6.使用者登入
## 執行級別:
- 0:關機
- 1:單使用者模式
- 2:多使用者模式(沒有檔案系統,沒有網路)
- 3:多使用者模式(命令列)
- 4:沒有被使用
- 5:圖形化介面
- 6:重啟

Centos7:

# 1.加電自檢(BIOS)
# 2.MBR引導(512k)dd </dev/zero >/dev/sda bs=1k count=400
# 3.GRUB2選單(選擇系統)
# 4.執行systemd
- 檢查/etc/systemd/default.target -> /usr/lib/system/multi-user.target
- 檢查/etc/systemd/system/multi-user.target.wants/所有服務,並啟動
# 5.建立終端
# 6.使用者登入
## 執行級別:
- 0:關機 poweroff.target
- 1:單使用者模式 rescue.target
- 2:多使用者模式(沒有檔案系統,沒有網路) multi-user.target
- 3:多使用者模式(命令列) multi-user.target
- 4:沒有被使用 multi-user.target
- 5:圖形化介面 graphical.target
- 6:重啟 reboot.target

一、系統啟動級別

Linux分為七個啟動級別

執行級別0:系統停機狀態,系統預設執行級別不能設為0,否則不能正常啟動
執行級別1:單使用者工作狀態,root許可權,用於系統維護,禁止遠端登入
執行級別2:多使用者狀態(沒有NFS)
執行級別3:完全的多使用者狀態(有NFS),登陸後進入控制檯命令列模式
執行級別4:系統未使用,保留
執行級別5:X11控制檯,登陸後進入圖形GUI模式
執行級別6:系統正常關閉並啟動,預設執行級別不能設為6,否則不能正常啟動

現在很多Linux系統都預設啟動級別為5.如果我們想切換作業系統,可使用init命令
這樣就可以切換到多使用者狀態且帶有網路檔案系統了。這種方式對於CentOS7也適用。但想修改預設啟動級別,CentOS7同其他Linux稍顯不同了。
對於傳統的設定方法,只要修改/etc/inittab檔案即可,將預設的啟動級別改為需要改動的級別
開啟CentOS7的/etc/inittab,發現該檔案與其他Linux不同:
按照該檔案所說的,runlevels被target所取代,即CentOS7採用載入target的方式來替代之前的啟動級別。其中有兩個重要的target:multi-user.target與graphical.target。它們分別表示執行級別中的3與5級別
  通過systemctl get-default可獲得預設啟動的target

  通過systemctl set-default設定預設啟動的target

那麼,想修改為多使用者狀態只需執行:
systemctl set-default muti-user.target

修改為圖形介面執行:
systemctl set-default graphical.target

二、單使用者模式

1、開機時進入如下介面(按下方向鍵盤,阻止系統自動繼續)

按e鍵出現下面介面

按方向鍵下,定位到最後,找到“ro”一行,ro的意思是read only,將“ro”替換成rw init=/sysroot/bin/sh,如下圖

2、按ctrl x 進入單使用者模式

3、執行 chroot /sysroot chroot:切換系統 /sysroot/:原始系統

4、如要修改root密碼

passwd是修改root密碼的命令,touch /.autorelabel 執行這行命令作用是讓SELinux生效(或者乾脆關閉SELinux),如果不行,密碼不會生效。按CTRL D,執行reboot重啟生效,如下圖

5、如果因為啟動x-windows或者顯示卡驅動更新,無法進入桌面,可以修改預設啟動級別(開機進入命令列模式)

systemctl set-default multi-user.target # 設定成命令模式
init = 3 # 切換到字元模式,有時只使用上面的語句沒效果
按ctrl d 後,執行reboot

三、grub加密

centos7.2 + 中引入了新的實用程式“grub2 -setpassword“
1) 執行 grub2-setpassword 命令
# grub2-setpassword
Enter password:
Confirm password:
2)如果現在重新啟動系統並嘗試修改引導條目,系統將要求提供憑據,但是可以在沒有憑據的情況下修改引導條目。為了阻止未經授權的修改和未經授權的啟動,我們需要對 /boot/grub2/grub.cfg 檔案進行更改

開啟檔案並使用密碼搜尋需要保護的啟動條目,它以menuentry開頭。找到條目後,從中刪除 --unrestricted 引數

3) reboot 重啟驗證,只有當輸入正確的使用者名稱和密碼時,才能進入 grub 選單或者修改引導條目。