CentOS啟動流程排錯

  • grub legacy

CentOS 6啟動流程:

POST –> Boot Sequence(BIOS) –> Boot Loader –> Kernel(ramdisk) –> rootfs –> switchroot –> /sbin/init — >(/etc/inittab, /etc/init/*.conf) –> 設定默認運行級別 –> 系統 初始化腳本rc.sysinit –> 關閉或啟動對應級別的服務 –> 啟動終端

  • grub: GRand Unified Bootloader

grub 0.x: grub legacy

grub 1.x: grub2

grub legacy:

stage1: mbr

stage1_5: mbr之后的扇區,讓stage1中的bootloader 能識別stage2所在的分區上的文件系統 stage2:磁盤分區(/boot/grub/)

  • 配置文件:/boot/grub/grub.conf <– /etc/grub.conf

  • stage2及內核等通常放置于一個基本磁盤分區

  • 功用:

  • (1) 提供啟動菜單、并提供交互式接口

    • a:內核參數

    • e: 編輯模式,用于編輯菜單

    • c: 命令模式,交互式接口

  • (2) 加載用戶選擇的內核或操作系統

    • 允許傳遞參數給內核

    • 可隱藏啟動菜單

  • (3) 為菜單提供了保護機制

    • 為編輯啟動菜單進行認證

    • 為啟用內核或操作系統進行認證

  • grub的命令行接口

    • help: 獲取幫助列表

    • help KEYWORD: 詳細幫助信息

    • find (hd#,#)/PATH/TO/SOMEFILE:

    • root (hd#,#)

    • kernel /PATH/TO/KERNEL_FILE: 設定本次啟動時用 到的內核文件;額外還可添加許多內核支持使用的cmdline參數 例如:max_loop=100 selinux=0 init=/path/to/init

    • initrd /PATH/TO/INITRAMFS_FILE: 設定為選定的 內核提供額外文件的ramdisk;

    • boot: 引導啟動選定的內核  

  • 識別硬盤設備: (hd#,#)

    • hd#: 磁盤編號,用數字表示;從0開始編號

    • #: 分區編號,用數字表示; 從0開始編號

    • (hd0,0) 第一塊硬盤,第一個分區

  • 手動在grub命令行接口啟動系統:

    • grub> kernel (hd#,#)/vmlinuz-VERSION-RELEASE root=/dev/DEVICE

    • grub> initrd (hd#,#)/initramfs-VERSION-RELEASE.img

    • grub boot

  • grub legacy配置文件

    • 配置文件:/boot/grub/grub.conf

    • default=#: 設定默認啟動的菜單項;落單項(title)編號從0開始

    • timeout=#:指定菜單項等待選項選擇的時長

    • splashimage=(hd#,#)/PATH/TO/XPM_FILE:菜單背景圖片文件路徑

    • hiddenmenu:隱藏菜單

    • password [–md5] STRING: 啟動菜單編輯認證

    • title TITLE:定義菜單項“標題”, 可出現多次

    • root (hd#,#):grub查找stage2及kernel文件所在設備分區;為grub“根”

    • kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:啟動的內核

    • initrd /PATH/TO/INITRAMFS_FILE: 內核匹配的ramfs文件 password [–md5]

    • STRING: 啟動選定的內核或操作系統時進行認證

  • grub加密

  • grub-md5-crypt命令

  • 破解root口令: 啟動系統時,設置其運行級別1

  • 進入單用戶模式:

    • (1) 編輯grub菜單(選定要編輯的title,而后使用e命令);

    • (2) 在選定的kernel后附加 1, s, S或single都可以;

    • (3) 在kernel所在行,鍵入“b”命令  

  • 安裝grub:

  • (1) grub-install 安裝grub stage1和stage1_5到/dev/DISK磁盤上,并 復制GRUB相關文件到 DIR/boot目錄下

    • grub-install –root-directory=DIR /dev/DISK

  • (2) grub

    • grub> root (hd#,#)

    • grub> setup (hd#)

系統啟動第1階段被破壞修復過程

  • 為了模擬系統啟動第一階段被破壞,首先破壞第一階段MBR

CentOS啟動流程排錯blob.png

  • 進入救援模式恢復系統

blob.png

  • 切換根目錄

    blob.png

  • 調用grub工具

blob.png

  • 修復完成后重啟

blob.png

系統啟動第1.5階段被破壞修復過程

  • 光盤引導進入救援模式

CentOS啟動流程排錯blob.png

  • 使用交互式命令grub恢復系統

blob.png

grub

root  (hd0,0)

setup (hd0)

修復結束

系統啟動第2階段被破壞修復過程

blob.png

  • 切換根目錄并修復

blob.png

  • 修復完成

blob.png

  • 重新寫一份啟動文件

blob.png

grub> initrd (hd0,0)/initramfs-2.6.32-642.e16.x86_64.img

grub> boot

修復完了在重復一遍,進入系統中寫一份啟動文件

blob.png

修復完成

總結:其實把這三個啟動流程完全消化,就可以應對大多數系統不能啟動的排錯了,系統不能啟動大多是建立在這三種情況之上的,如果把這三種情況掌握并加上自己懂得的linux系統相關知識,活學活用,基本就可以解決系統不能啟動的問題。

原創文章,作者:502795641,如若轉載,請注明出處:http://www.www58058.com/46196

(0)
502795641502795641
上一篇 2016-09-13 17:01
下一篇 2016-09-13 18:33

相關推薦

  • 特殊權限及facl

    Linux系統上的特殊權限          特殊權限:SUID,  SGID,  STICKY 安全上下文:         1、進程以某用戶的身份運行,進程是發起此進程用戶的代理,因此用戶的身份和權限完成所有操作;     &…

    Linux干貨 2016-11-07
  • Linux find命令使用詳則

    find命令 find命令用來在指定目錄下查找文件。任何位于參數之前的字符串都將被視為欲查找的目錄名。如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄欲文件。并且將查找到的子目錄和文件全部進行顯示。 語法 find(選項)(參數) 選項 -amin<分鐘>:查找在指定時間曾被存取過的文件或者目錄,單位以分鐘計算; -ane…

    2017-08-03
  • linux文本編輯利器-vim

    概述 Vim是從vi發展出來的一個文本編輯器。代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用,和Emacs并列成為類Unix系統用戶最喜歡的文本編輯器。Vim強大的編輯能力中很大部分是來自于其普通模式命令。vim的設計理念是命令的組合。例如普通模式命令"dd"刪除當前行,"dj"代表刪除到下一行…

    Linux干貨 2016-08-11
  • linux —————-目錄配配置【FHS】

    linux 目錄配配置【FHS】 /根目錄的意義與內容 根目錄是整個系統最重要的一個目錄;根目錄與開機、還原、系統修復等操作有關 FHS建議標準: 根目錄所在的分區應該越小越好,且應用程序所安裝的軟件最好不要與根目錄放在同一個分區內,保持根目錄越小越好 FHS定義的目錄含義 /bin :系統存放執行文件的目錄,但是bin比較特殊【bin放置的是在單用戶維護?!?/p>

    Linux干貨 2017-04-17
  • Linux 目錄配置

    Linux 目錄配置 Linux目錄配置標準:FHS 因為利用Linux來開發產品或distributions的團隊/公司與個人實在太多了,如果每個人都用自己的想法來配置文件放置的目錄,那么將可能造成很多管理上的困擾。所以/后來就有所謂的Filesystem Hierarchy Standard (FHS)標準出爐了。 根據FHS(http://www.pa…

    Linux干貨 2017-03-26
  • 網卡相關

    ifconfig eth1 IP / ip a a IP dev eth1 修改指定網卡的IP地址   /etc/udev/rules.d/70-persistent-net.rules 設置Mac地址/網卡名配置文件,建議關機修改Mac地址,否則會造成Mac地址不匹配的情況   /etc/sysconfig/network-script…

    2017-12-18

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-14 13:14

    總結的很詳細,能看出來有具體操作過,實驗也順利的解決了,但是標題是不是要仔細斟酌一下呢。

欧美性久久久久