網站首頁 編程語言 正文
目錄
前言
一.linux系統引導過程
二.系統初始化進程
三.Systemd單元類型
四.修復MBR扇區故障
?五.修復GRUB菜單
六.遺忘密碼并重置
總結
前言
引導過程能以兩種方式之一初始化。其一,如果系統處于關機狀態,那么打開電源按鈕將開啟系統引導過程。其二,如果操作系統已經運行在一個本地用戶(該用戶可以是 root 或其他非特權用戶),那么用戶可以借助圖形界面或命令行界面通過編程方式發起一個重啟操作,從而觸發系統引導過程。重啟包括了一個關機和重新開始的操作。
一.linux系統引導過程
開機自檢(BIOS)→MBR引導→GRUB菜單→加載內核(kernel)→init進程初始化
開機自檢:? ? ? ? ?檢測硬件有沒有問題
MBR引導:? ? ? ? 加載系統所需要的內核
GRUB菜單:? ?? ?開啟文件或引導程序的列表,全加載出來
加載內核:? ? ? ?? 把內核相關的文件加載到內存中
init進程初始化:把系統需要的服務開啟,并加載到內存里
開機自檢
服務器主機開機以后,將根據主板BIOS中的設置對CPU(Central Processing Unit,中央處理器)、內存、顯卡、鍵盤等設備進行初步檢測,檢測成功后根據預設的啟動順序移交系統控制權,大多時候會移交給本機硬盤。
MBR引導
當從本機硬盤中啟動系統時,首先根據硬盤第一個扇區中MBR(Master Boot Record,主引導記錄)的設置,將系統控制權傳遞給包含操作系統引導文件的分區,或者直接根據MBR記錄中的引導信息調用啟動菜單(如GRUB)。
GRUB菜單
對與Linux操作系統來說,GRUB(GRand Unified Bootloader,統一啟動加載器)是使用最為廣
泛的多系統引導器程序。系統控制權傳遞給GRUB以后,將會顯示啟動菜單給用戶選擇,并根據所
選項(或采用默認值)加載Linux內核文件,然后將系統控制權轉交給內核。需要注意的CentOS 7
加載內核
Linux 內核是一個預先編譯好的特殊二進制文件,介于各種硬件資源與系統程序之間,負責資源分
配與調度。內核接過系統控制權以后,將完全等控整個 Linux 操作系統的運行過程。
init進程初始化
為了完成進一步的系統引導過程,Linux 內核首先將系統中的 “/sbin/init”程序加載到內存中運行(運行中的程序稱為進程),init 進程負責完成一系列的系統初始化過程,最后等待用戶進行登錄。
二.系統初始化進程
init進程
由Linux內核加載運行/sbin/init程序
init進程是系統中的第一個進程
init進程的PID(進程標記)號永遠為1
Systemd
Systemd是Linux操作系統的一種init軟件
CentOS 7中采用全新的Systemd啟動方式,取代傳統的SysVinit
CentOS 7中運行的第一個init進程是/lib/systemd/systemd
三.Systemd單元類型
單元類型?? ? ? ? ? ? ? ? 擴展名? ? ? ? ? ? ?說明
Service? ? ? ? ? ? ? ? ? .service? ? ? ? ? ?描述一個系統服務
Socket? ? ? ? ? ? ? ? ? ?.socket? ? ? ? ? ? 描述一個進程間通信的套接字
Device? ? ? ? ? ? ? ? ? ?.device? ? ? ? ? ? 描述一個內核識別的設備文件
Mount? ? ? ? ? ? ? ? ? ? .mount? ? ? ? ? ??描述一個文件系統的掛載點
Automoun? ? ? ? ? ? ?.automount? ??描述一個文件系統的自動掛載點
Swap? ? ? ? ? ? ? ? ? ? ? .swap? ? ? ? ? ? ?描述一個內存交換設備或交換文件
Path? ? ? ? ? ? ? ? ? ? ? ?.path? ? ? ? ? ? ? ?描述一個文件系統中文件或目錄
Timer? ? ? ? ? ? ? ? ? ? ?.timer? ? ? ? ? ? ? 描述一個定時器(用于實現類似cron的調度任務
Snapshot?? ? ? ? ? ? ?.snapshot? ? ? ?用于保存一個systemd的狀態
Scope? ? ? ? ? ? ? ? ? ? .scope? ? ? ? ? ? 使用systemd的總線接口以編程的方式創建外部進程
Slice? ? ? ? ? ? ? ? ? ? ? .slice? ? ? ? ? ? ? ?描述居于Cgroup的一組通過層次組織的管理系統進程
Target? ? ? ? ? ? ? ? ? ?.target? ? ? ? ? ? ? 描述一組systemd的單元
四.修復MBR扇區故障
MBR位于第一塊硬盤(/dev/sda)的第一個物理扇區處,總共512字節
1.備份MBR扇區數據到其他磁盤(/dev/sdb1)
mkdir?/backup
mount?/dev/sdb1 /backup
dd if=/dev/sda?of=/backup/mbr.bak bs=512 count=1
(把sda512的引導程序復制到指定地點)
模擬破壞
dd if=/dev/zero of=/dev/sda bs=512 count=1
進入急救模式
修復MBR引導
mkdir /backupdir
mount /dev/sdb1 /bak
dd if=/backupdir/grub.bak of=/dev/sda
exit
?五.修復GRUB菜單
mkdir?/bak
mount?/dev/sdb1 /bak
dd if=/dev/sda?of=/bak/grub.bak bs=446 count=1
(把sda446的GRUB復制到指定地點)
模擬破壞
dd if=/dev/zero of=/dev/sda bs=446 count=1
修復GRUB菜單
mkdir /backupdir
mount /dev/sdb1 /bak
dd if=/backupdir/grub.bak of=/dev/sda
exit
六.遺忘密碼并重置
重置root密碼
chroot /mnt/sysimage
passwd root
exit
reboot
總結
MBR引導512字節,是sda的第一個物理扇區,恢復時首先把sda備份到sdb在進急救模式,在進安全模式,創建掛載點,把備份在sdb中的mbr文件掛載到這個臨時掛載點上,在復制到sda,最后檢測查看。
原文鏈接:https://blog.csdn.net/qq_59161414/article/details/125708492
相關推薦
- 2022-06-24 python包相關知識點之包的導入、相對路徑以及絕對路徑_python
- 2022-05-11 解決Spring Boot報錯Mapped Statements collection alread
- 2023-10-30 springboot application 常用配置
- 2022-11-14 C++11新特性之右值引用與完美轉發詳解_C 語言
- 2022-12-27 Python實現ATM簡單功能的示例詳解_python
- 2023-04-07 Android開發基礎簡化Toast調用方法詳解_Android
- 2022-07-10 ENOENT讀取文件報錯(fs)
- 2022-07-12 aqs原理初探以及公平鎖和非公平鎖實現
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支