linux 引導過程和服務控制

来源:https://www.cnblogs.com/zhende/archive/2023/05/10/17387627.html
-Advertisement-
Play Games

目錄 一、引導分區 二、服務控制 三、運行級別 四、systemd初始化 五、模擬錯誤 一、引導分區 原理:引導分區是指在開機啟動到進入系統這之間的過程 引導分區的過程:1.開機自檢 自檢順序:BIOS,cup,記憶體,顯卡,鍵盤 根據預設的順序控制權交給硬碟(第一個硬碟或者光碟機) 2.mbr引導 機 ...


目錄

一、引導分區

二、服務控制

三、運行級別

四、systemd初始化

五、模擬錯誤

 

 

 

 

 

 

 

 

一、引導分區

  原理:引導分區是指在開機啟動到進入系統這之間的過程

  引導分區的過程:1.開機自檢

            自檢順序:BIOS,cup,記憶體,顯卡,鍵盤

                  根據預設的順序控制權交給硬碟(第一個硬碟或者光碟機)

          2.mbr引導

            機器的硬碟啟動系統,從第一個硬碟扇區的mbr主引導分區的位置開始

              主引導分區512位元組,記錄硬碟分區,是進入文件系統,設備,配置文件

                  硬碟結束交給grub分區

          3.grub菜單啟動

            位置/boot/grub2/grub.cfg

            主要是顯示系統選擇

 

 

          4.載入內核

            目錄位置:/boot/vmlinuz-3.10.0-693.e17.x8664

            編譯好的特殊二進位文件,是硬碟和系統之間的連接,將內核和相關的系統鏡像文件載入到內                           存中,交給進程初始化

          5.進程初始化

            目錄位置:/sbin/init

             將/sbin/init中的程式(內核和硬體文件)載入到記憶體中,完成初始化

              完成初試化後可以進入系統

二、服務控制

  使用systemctl命令管理服務類型

    服務的目錄:/user/lib/systemd

    服務命令:systemctl start開啟服務

         systemctl stop關閉服務

         systemctl restart 重啟服務

         systemctl reload重新載入服務配置文件

         systemctl status 查看服務狀態

         systemctl enable開機自啟

         systemctl disable 關閉開機自啟

      

    systemctl status firewalld.service 查看防火牆的狀態

     關閉防火牆

    命令:systemctl stop firewalld.service

       可以看到actice已經是dead了

     打開防火牆

    可以看到active已經是running了

       

三、運行級別

   原理:是指現在的系統頁面是什麼類型,可以是單用戶,字元型用戶

   使用runlevel查看當前運行級別和之前運行級別

    N代表之前沒有改變,3表示當前運行級別是3字元界面

 

   運行級別分類:0:關機(target)

          1:單用戶,在生產中只有系統維護時會進入單用戶模式(rescue.target)

          2,3,4相當於字元頁面(multi-user.target)

          5:圖形化界面(graphical.target)

          6:  重啟(reboot.target)

          

   便捷操作:init +數字

    可以看到init 5將當前頁面改為5圖形化界面

     

    預設級別:表示開機時預設進入哪個級別

        查看預設級別:systemctl get-defaults

        可以看到當前預設級別時字元界面,所以開機時自動進入字元頁面

         修改預設級別過程:

          1.查看預設級別:systemctl get-default

           2.修改預設級別:systemctl set-default

            將其預設級別改為圖形化界面(在這裡必須使用graphical.target格式)

           3.關機重啟

            查看預設級別,可以看到已經修改完成

 

四、進程初始化

    初試化區別:兩種init和systemd

       init現在已經基本淘汰,init是串列啟動,速度較慢

       systemd是centos中一種init軟體,是並行啟動,速度較快

  init:目錄文件/sbin/init

  systemd:目錄文件/lib/systemd/systemd

  systemd單元類型:

    1.service:啟動管理系統服務

    2.target:系統運行級別狀態

    3.socket:埠服務,提供網路套接字,為端到端之類的服務提供通信

    4.device:硬體管理服務

    5.path:管理文件和目錄狀態

 

五、模擬錯誤

  前提必須勾選,否則無法進入急救模式

 

  1.主分區引導錯誤

    假設sda主分區丟失或者誤刪

    一、用lsblk看一下磁碟狀態

 

  二、計劃故意將sda的主分區刪除,所以提起將sda的主分區備份給一個正在掛載的sdb1

   首先將sdb5掛載

 

     通過dd if=/dev/sda of=/backup/mbr.bak bs=512 count=1

      從sda中到backup複製一個mbr.bak文件,大小512次數1次

      必須要在文件夾外輸入命令,否則不能寫入

 

 

      

 現在已經備份好,接下來讓sda主分區文件損壞

      看一下要損壞512大小文件

       將一份512空文件寫入sda,損壞文件

   重啟後發現沒有系統了,找不到了

  選擇troubleshooting模式

     進入急救模式rescue a centos system

    

   選擇continue(繼續)

  1,回車在回車進入sh-4.2shell模式

     創建文件夾backupdir,並將備份文件所在硬碟掛載

   可以看到有文件,將這個文件

   重新寫入sda,exit退出

   可以看到grup菜單又出來了,說明sda找到主分區了

 

  2.grup菜單錯誤

    刪除grub文件,導致找不到系統

   重新進入會發現grup找不到

   重新啟動,進入梣centos頁面就點exc鍵,一定要速度快,否則無法選中。

 

   選從cd進入

     再次進入模式troubleshooting

     進入急救模式rescue

       切換到光碟映像根目錄

       重新將grub引導程式文件安裝到sda的mrb扇區

     重新構建grup的配置文件

   退出根目錄,重啟

   可以看到又進入了grup菜單

 

  3.修改root密碼

  修改之前要關閉安全

  setenforce 0關閉安全機制

  同樣進入sh-4.2#

     進入cd根目錄,之間passwd ,將123456改為123

   直接可以重啟,新密碼進入

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、創建WEBAPI 1 using Dapper; 2 using MesErp.Models; 3 using Microsoft.AspNetCore.Mvc; 4 using Microsoft.Extensions.Configuration; 5 using Newtonsoft.Jso ...
  • C#是一種強類型語言,可以捕獲和處理各種異常,從而幫助我們發現程式中出現的錯誤。在程式開發過程中,如果需要找到特定的錯誤情況並處理,這時就需要創建自定義異常。本文將介紹如何在C#中創建和使用自定義異常。 1、什麼是異常? 異常是指在程式執行期間發生的錯誤或異常情況,例如除法中除以0、文件不存在、記憶體 ...
  • 一:背景 1. 講故事 最近在分析一個 linux 上的 dump,最後的誘因是大量的lock鎖誘發的高頻上下文切換,雖然問題告一段落,但我還想知道一點信息,所謂的高頻到底有多高頻?鎖競爭到底是一個怎樣的鎖競爭? 如果瞭解這些信息對我們後續分析此類問題非常有幫助。 要想獲取此類信息,看 dump 肯 ...
  • 本文屬於OData系列文章 Intro 前面寫了很多有關OData使用的文章,很多讀者會有疑問,直接將實體對象暴露給最終用戶會不會有風險?$expand在預設配置的情況下,數據會不會有泄露風險? 答案是肯定的,由於OData的特性,提供給我們便捷同時也會帶來一些風險。很多地方推薦使用DTO模式來隔離 ...
  • 一、安裝 Mailx Ubuntu sudo apt-get install bsd-mailx CentOS7 yum -y install mailx 二、獲取郵箱授權碼 (解決報錯問題 535 Error: authentication failed, system busy) 以騰訊企業郵箱 ...
  • 在Linux平臺找出某個目錄下創建時間最早的文件,測試驗證腳本結果是否準確的過程中發現一個很有意思的現象,stat命令在一些平臺下Birth欄位有值,而在一些平臺則為空值,如下所示: RHEL 8.7下, XFS文件系統 [mysql@mysqlu02 ~]$ more /etc/redhat-re ...
  • Ubuntu中恢復rm命令誤刪文件(轉) 電腦系統:Ubuntu 16.04 1 背景 在做項目的時候,本來想使用rm命令刪除以14開頭的文件,結果寫成如下形式: rm 14 * 註意,本來14和*之間不應該有空格的,但是誤寫了一個空格,結果導致所有文件都被刪除了!為了找回被誤刪的文件,根據網上的 ...
  • Scala 只是學習無基本理論 安裝Scala 裝前必須有jdk windows安裝 解壓縮 D:dev/scala 配置環境變數 SCALA_HONE path cmd檢查 Scala -version 直接輸入Scala 控制台運行 idea安裝與運行Scala idea-->插件-->scal ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...