1. 程式人生 > >linux 系統啟動過程分析

linux 系統啟動過程分析

系統root 密碼丟失故障

linux啟動順序

主板BIOS加電自檢 檢查硬件

--> 讀取硬盤引導扇區(MBR)

--> 啟動引導程序(grub)

--> 選擇系統

--> 加載系統內核(kernel shell)

--> 啟動系統讀取相應的默認設置(環境變量,運行級別)

--> 啟動相應的服務和進程

--> 登陸系統界面


引導程序的配置文件

/etc/grub2.cfg


查看所有的啟動級別

#cd /usr/lib/systemd/system --> ls


1.(1)查看當前開機的默認啟動級別

#systemctl get-default

修改默認啟動級別

例:3級別--》5級別

ln -sf /usr/lib/systemd/system/graphical.target /etc/systemd/system/default.target

例:5級別--》3級別

systemctl set-default multi-user.target(要修改的級別)

[註] runlevel 只能通過軟連接的方式修改



模擬事故

將修改級別啟動的0級別,系統將不能啟動

修復:

重啟進入grub開機界面

-->上下箭頭結束倒計時

-->按e鍵進入啟動參數設置

-->找到Linux16在行尾UTF-8後加入systemd.unit = rescue.target(指定進入系統的模式)

-->ctrl x (啟動參數設置)


破解root密碼

重啟進入grub開機界面

-->上下箭頭結束倒計時

-->按e鍵進入啟動參數設置

-->方法①:找到Linux16將ro修改為rw init = /systemctl/bin/sh(進root入系統默認使用的shell),躲避硬盤加載

-->方法②xd:UTF-8後加入關鍵字rd.break

-->ctrl x

:/#mount 查看掛載表,檢查根分區的掛載權限是否是rw;如果是ro,需要重新掛載,加載權限

:/#mount -o remount,rw /sysroot 重新掛載,加載權限

:/#chroot /sysroot /bin/bash 切換正常啟動的bash

:/#unset LANG 清除語言環境變量

:/#passwd 修改密碼

:/#getenforce 查看selinux狀態

如果selinux沒有關閉,需要使selinux接受新密碼

:/#touch /.autorelabel 在/下創建一個關聯標簽文件

:/#exit 退回到sh

:/#reboot 重啟驗證新密碼


linux 系統啟動過程分析