centos6啓動過程

前言

每次在虛擬機裏點擊開啓虛擬機後會看到屏幕不停地出現很多代碼,後面有些跟着【ok】,有些代碼後面跟着紅色的【failed】。那麼問題來了,爲啥有些啓動服務都失敗了,系統還是進去了呢?本文就此給大家詳細介紹一下,centos5和6 的啓動流程。以後遇到系統無法啓動,可以做到心中有數。

一、加電自檢POST,通過BIOS讀取cmos上的配置信息,讀取硬件的信息。並檢測能否正常運行,硬件設備初始化。

二、選擇啓動順序

    1、加載MBR,存在於0磁道0扇區前446字節;

    2、讀取位於MBR中存放的bootloader,功能是:識別、加載操作系統中的核心文件,交給內存。提供菜單信息和用戶選擇加載不同的操作系統,告訴下一階段去×××系統和grub引導。

    3、爲了打破MBR中只有446Byte存放bootloader,grub分爲三個階段

           stage1:存放於MBR中,用於加載stage1_5階段,目的是爲了識別並驅動stage2所在分區文件系統。

           stage1_5: 存放於MBR之後的扇區,讓stage1中的bootloader能識別stage2所在分區的文件系統

           stage2:存放於磁盤分區上(/boot/grub),用於加載臨時根文件ramdisk和加載內核文件

                        功能:(1)提供啓動菜單、並提供交互式接口

                                        a:內核參數

                                        e:編輯模式、用於編輯菜單

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

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

                                       允許傳遞參數給內核

                                        可隱藏啓動菜單

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

                                      爲編輯啓動菜單進行認證

                                      爲啓用內核或操作系統進行認證

            總結:stage1_5就是向grub提供文件系統的驅動的,這樣stage1就能訪問stage2及內核所在分區(/boot)

            grub的配置:/etc/grub.conf,讀取此文件的參數,準備啓動內核

三、加載系統內核kernel,執行系統初始化信息

內核存放在/boot下,是一個vmlinuz的文件,通過initramfs文件(ramdisk)虛擬一個根文件系統在內存中,來加載合適的驅動程序,並以只讀方式加載真正的根文件系統,然後運行用戶空間的第一個應用程序/sbin/init

    ramdisk:centos 5 iniCentOS 5: initrd
                                工具程序:mkinitrd
                 CentOS 6,7: initramfs
                                工具程序:mkinitrd, dracut

    製作ramdisk文件的製作:

                                (1) mkinitrd命令
                                        爲當前正在使用的內核重新制作ramdisk文件
                                        mkinitrd   /boot/initramfs-$(uname-r).img   $(uname-r)
                                (2) dracut命令
                                         爲當前正在使用的內核重新制作ramdisk文件
                                          dracut   /boot/initramfs-$(uname-r).img   $(uname-r)

四、啓動/sbin/init

   1、 init的程序的類型:

        SysV: init, CentOS 5之前            配置文件:/etc/inittab
        Upstart: init,CentOS6                 配置文件:/etc/inittab————————-僅設置設置默認運行級別

                                                            /etc/init/*.conf   ——————-Upstart將配置文件拆分存放於/etc/init下以.conf結尾
        Systemd:systemd, CentOS 7     配置文件:/usr/lib/systemd/system、/etc/systemd/system

   2、流程

        (1)初始運行級別

        (2)系統初始化腳本————–/etc/rc.d/rc.sysinit:a、設置主機名(/etc/sysconfig/network中的HOSTNAME)

                                                                                         b、歡迎信息

                                                                                         c、激活udev和selinux

                                                                                         d、 掛載/etc/fstab定義的文件系統

                                                                                         e、掛載根文件系統(讀寫方式)

                                                                                         f 、系統時鐘

                                                                                         g、根據/etc/sysctl.conf文件設置內核參數

                                                                                         h、激活swap

                                                                                         i、激活LVM和software RAID設備

                                                                                         j、加載額外的驅動程序

                                                                                         k、清理操作       

        (3)對應運行級別的腳本目錄   

                  centos 5 的/etc/inittab有類似的幾行: 13:3:wait:/etc/rc.d/rc 3 ————–讀取/etc/rc.d/rc3.d的鏈接文件來決定如何啓動或關閉赴服務:S開頭的 進行start操作,K開頭的stop。鏈接文件的源文件在/etc/init.d/目錄下服務腳本

                   例外:S99local沒有鏈接到/etc/init.d/下的服務腳本,而是鏈接到/etc/rc.d/rc.local (/etc/rc.local)。後序如果有不方便或者沒必要寫進腳本的程序,又希望開機自啓動,可以直接寫進這個腳本。

        (4)配置好組合鍵的功能

        (5)配置不斷電系統PF、PR

        (6)啓動tty6個終端

        (7)如果是3級別,啓動字符界面

五、啓動終端,登錄。

六、到這裏linux大概的過程就結束了,學習啓動過程是爲了在系統出故障時,能做到快速判斷。後面一篇文章會詳細模擬啓動故障,根據啓動所需的文件來恢復。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章