Centos6啟動流程詳解

一、名詞解釋

POST: Power-On-Self-Test,加電自檢,是BIOS功能的一個主要部分。負責完成對CPU、主板、內存、硬盤子系統、顯示子系統、串并行接口、鍵盤、CD-ROM光驅等硬件情況的檢測。

BIOS:Basic Input and
Output System
,保存著有關計算機系統最重要的基本輸入輸出程序,系統信息設置、開機加電自檢程序和系統啟動自舉程序等,為ROM(只讀)。

CMOS:互補金屬氧化物半導體,保存各項參數的設定,其儲存的信息RAM(可讀寫),按次序查找引導設備,是第一個有引導程序的設備為本次啟動設備

MBR:主引導記錄(Main
Boot Record
)是位于磁盤最前邊的一段引導(Loader)代碼。446: bootloader,64: 分區表, 2: 55AA; bootloader:
引導加載器,引導程序

二、啟動流程

 第一階段:

 POST加電自檢,加載BIOS的硬件信息,獲取第一個啟動設備MBR,讀取第一個啟動設備MBR的引導bootloader加載程序(grub)的啟動信息。

下圖為MBR引導信息:

       Centos6啟動流程詳解

       第1.5階段:

在后續扇區的首部存放有其它引導信息
這些信息能夠幫助識別到
boot分區。

       第二階段:

 發生在boot分區上,通過程序引導找到內核文件/boot/grub。

       第三階段:

 加載啟動內核,boot分區的/grub/grub.conf中找到引導根/的驅動,即initramfs-2.6.32-642.el6.x86_64.img(虛擬內存盤[主要用來模擬文件系統],ramdisk),進而加載內核,從而把根/所在分區進行掛載,初次是以只讀方式掛載根,然后內核自動啟動根下/sbin/init進程,內核最終啟動之后再以讀寫方式掛載根。

       第四階段:

 啟動核心的外掛模塊,init執行運行的各個批處理文件(scripts),init執行/etc/rc.d/rc.local

內核啟動init進程后會首先運行/etc/rc.d/rc.sysinit腳本讀取fstab[含有掛載關系]文件,然后再讀取/etc/inittab[運行級別]文件,執行/bin/login程序,等待用戶登錄,用戶登錄之后開始以Shell控制主機。

     Centos6啟動流程詳解

三、Centos6 啟動流程圖

   Centos6啟動流程詳解

四、誤刪恢復

1、打開/boot/目錄,保持vmlinuz-2.6.32-642.el6.x86_64(出廠時存在,與硬件相關)文件不動,刪除initramfs-2.6.32-642.el6.x86_64.img(安裝系統時候制作生成)文件,則不能掛載根/,內核不能完全啟動,導致機器打不開。

解決方法:

進入救援模式

切到根:chroot
/mnt/sysimage/

          cd /boot

使用命令生成:mkinitrd
/boot/initramfs-`uname
r[只是為文件命名]`.img  `uname -r`[告訴mkinitrd生成那個版本的內核

cat /boot/grub/grub.conf 檢查文件中的內核名稱是否與新生成的內核文件一致

最后,退出并重新啟動。 

2、如果把vmlinuz-2.6.32-642.el6.x86_64文件破壞了,則機器也打不開。

解決方法:

進入救援模式

方法一:重裝內核文件

方法二:掛載光盤,mkdir
/mnt/cdrom
;mount /dev/sr0 /mnt/cdrom

        cp
/mnt/cdrom/Packages/kernel-2.6.32-642.el6.x86_64.rpm /mnt/sysimage/root[
由于沒切換根,/mnt/sysimage/root為自己的根]

        cd /mnt/sysimage/root

        rpm2cpio
kernel-2.6.32-642.el6.x86_64.rpm |cpio
tv|less 用于查找要解壓的文件

        rpm2cpio kernel-2.6.32-642.el6.x86_64.rpm |cpio –id ./boot/
vmlinuz-2.6.32-642.el6.x86_64

        cp
vmlinuz-2.6.32-642.el6.x86_64 /mnt/sysimage/boot/

         退出,重啟

方法三:掛載光盤,mkdir
/mnt/cdrom
;mount /dev/sr0 /mnt/cdrom

         cd /mnt/cdrom

         cd isolinux   可以查看里面有個vmlinuz文件

         cp /mnt/cdrom/isolinux/vmlinuz
/mnt/sysimage/boot/ vmlinuz-2.6.32-642.el6.x86_64

         chroot /mnt/sysimage

         ls /boot ;cat
/boot/grub/grub.conf 
進行文件對比,確保生成文件沒問題。 

         退出,重啟

原創文章,作者:chenxu@magedu.com,如若轉載,請注明出處:http://www.www58058.com/72085

(0)
chenxu@magedu.comchenxu@magedu.com
上一篇 2017-03-28
下一篇 2017-03-28

相關推薦

  • linux常用的文件,目錄管理命令總結和文件元數據信息含義

    常用的文件管理類命令及其具體用法 1.rmdir刪除空目錄 -p 遞歸刪除多級空目錄 這個命令不能刪除非空目錄 例如 [root@dxlcentOS ~]# rmdir /tmp/we rmdir: 刪除 “/tmp/we” 失敗: 目錄非空 [root@dxlcentOS ~]# rmdir /tmp/we2 2.mkdir創建目錄 常用選項-p 自動遞歸…

    Linux干貨 2017-10-05
  • vim文本編輯器簡單用法

    vim最基礎的用法

    2017-09-09
  • 8月5日課堂筆記

    bash基礎及shell編程初步 bash的特性及bash腳本編程初步    操作系統硬件, 內核把底層硬件的復雜性給隱藏起來,統一輸出為一種系統調用,系統調用非常底層,把系統調用封裝成了庫。讓程序運行起來。用戶在創建時有一個默認shell。終點設備用來當做標準輸入和輸出。  要想與主機交互,需要一個【終端】,附著在終端接口程序:  &n…

    Linux干貨 2016-08-07
  • 使用keepalive實現nginx反向代理高可用

    簡介: 在網站架構中,為了分散客戶端對服務器的訪問壓力,可以使用nginx作為反向代理。但是使用一個nginx作為代理服務器必定會面對單點故障的情況,所以一般使用多臺nginx反代服務器,而使用多臺nginx服務器還要面對如何協調調度的問題。在此,我給大家介紹使用keepalive協調調度nginx反代服務器的方法。   keepalive簡介 說…

    2017-05-15
  • 在CentOS中獲取命令幫助

    在CentOS中獲取命令幫助    在使用和學習CentOS系統中,當我們遇上不熟悉的命令卻又需要了解它的詳細用法的時候,我們需要獲取幫助。除了借助他人和搜索引擎之外,自己通過查看系統幫助文檔來解決問題是很重要的。下面就來介紹如何獲取幫助以及簡單的解決思路:    一、如何獲取命令幫助 Linux提供多層次的命令幫助:…

    Linux干貨 2016-07-27
欧美性久久久久