CentOS系統啟動流程

Linux系統(Centos 5、6)啟動流程

123.jpg

一、POST加電自檢

Power-On-Self-Test 
按下電源鍵以后,系統調用存儲在ROM中的BIOS和存儲在RAM中的CMOS(用來保存各項參數的設定)完成系統硬件狀態的檢查,如果硬件有問題則提示用戶問題嚴重無法開機的會發出警報聲音;硬件自檢完成后進入下一步。

二、Boot Sequence與MBR

  1. 加電自檢完成后,系統會讀取BIOS中的Boot Sequence中設置的引導順序按次序檢查。第一個有引導程序的設備既為本次啟動需要用到的設備。

  2. 尋找到啟動需要的設備后,尋找存儲與該設備MBR前446個字節中的bootloader引導加載器進入下一階段。

    1479977244939269.jpg

三、GRUB階段

  1. 1st 、 運行bootloader,由于只有446個字節這里是用來加載下一步進程而不是內核。

  2. 1.5st、加載識別文件系統,如果此步驟無法運行就無法正常識別/boot所在分區。

  3. 2nd、 讀取/boot/grub/grub.conf配置文件加載內核。

[root@CentOS6 ~]# cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda2
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0   #系統默認
timeout=5   #超時時間
splashimage=(hd0,0)/grub/splash.xpm.gz   #grub啟動壁紙
hiddenmenu  
title CentOS 6 (2.6.32-642.el6.x86_64)  #grub標題
   root (hd0,0) #指定根所在的位置
   kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=UUID=55ce0d77-cab0-4da4-bb2b-0af5adebf8d6 rd_NO_LUKS rd_NO_LVMLANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet  #指定內核位置并只讀掛載
   initrd /initramfs-2.6.32-642.el6.x86_64.img #指定init位置

四、Kernel階段

  1. 探測可識別的所有硬件設備;

  2. 加載硬件驅動程序;(有可能會借助于randdisk加載驅動)

  3. 以只讀方式掛載根文件系統;

  4. 運行用戶空間的第一個應用程序:/sbin/init

五、init初始化

(1)設置默認運行級別(配置文件:/etc/inittab)

運行級別:為了系統的運行或維護等墓地而設定的機制;

[root@C6red ~]# cat /etc/inittab

# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
id:3:initdefault:
這里默認級別是3 、 配置文件中的格式是:id:runlevel:action:process。

0-6級別定義
0:關機,shutdown
1:單用戶模式(single user),root用戶,無需認證;維護模式;
2;多用戶模式(multi user),會啟動網絡功能,但不會啟動NFS;維護模式
3;多用戶模式(multi user),完全功能模式;文本界面;
4:預留級別;目前無特別使用目的;同3
5:多用戶模式(multi user),完全功能模式,圖形界面;
6:重啟模式,reboot;

默認級別:3、5 
級別切換:init #

[root@C6red ~]# init 4
[root@C6red ~]# who -r
        run-level 4  2016-11-22 21:25                   last=3

級別查看: who -r runlevel

[root@C6red ~]# who -r
        run-level 3  2016-11-22 10:05
[root@C6red ~]# runlevel
N 3
[root@C6red ~]#

(2) 運行系統初始化腳本,完成系統初始化 (/etc/rc.d/rc.sysinit)

[root@CentOS6 ~]# cat /etc/rc.d/rc.sysinit
#!/bin/bash
#
# /etc/rc.d/rc.sysinit - run once at boot time
#
# Taken in part from Miquel van Smoorenburg's bcheckrc.
#

HOSTNAME=$(/bin/hostname)

set -m

if [ -f /etc/sysconfig/network ]; then
   . /etc/sysconfig/network
fi
if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then
   HOSTNAME=localhost
fi

if [ ! -e /proc/mounts ]; then
   mount -n -t proc /proc /proc
   mount -n -t sysfs /sys /sys >/dev/null 2>&1
fi
if [ ! -d /proc/bus/usb ]; then
   modprobe usbcore >/dev/null 2>&1 && mount -n -t usbfs /proc/bus/usb /proc/bus/usb
else
   mount -n -t usbfs /proc/bus/usb /proc/bus/usb
fi

#remount /dev/shm to set attributes from fstab #669700
mount -n -o remount /dev/shm >/dev/null 2>&1
#remount /proc to set attributes from fstab #984003
mount -n -o remount /proc >/dev/null 2>&1
#####腳本過長以下省略######
主要執行了以下操作


(1)  設置主機名
(2)  設置歡迎信息
(3)  激活udev 和selinux
(4)  掛載/etc/fstab 文件中定義的文件系統
(5)  檢測根文件系統,并以讀寫方式重新掛載根文件系統
(6)  設置系統時鐘
(7)  激活swap 設備
(8)  根據/etc/sysctl.conf 文件設置內核參數
(9)  激活lvm 及software raid 設備
(10)  加載額外設備的驅動程序
(11) 執行清理操作

(3) 關閉對應級別下需要停止的服務,啟動對應級別下需要開啟的服務; 
(4) 設置登陸終端[5級別啟動圖形界面]


至此Centos6系統啟動完成

原創文章,作者:M21-13-王振中,如若轉載,請注明出處:http://www.www58058.com/60614

(0)
M21-13-王振中M21-13-王振中
上一篇 2016-11-24 15:29
下一篇 2016-11-24 17:07

相關推薦

  • 馬哥教育網絡班22期+第1周課程練習

    1.描述計算機的組成及其功能。    組成:CPU (運算器+控制器),存諸器(內存與硬盤),輸入設備,輸出設備。    運算器:對數據進行加工處理的部件(包括算述運算與邏輯運算)。    控制器:負責從存儲器取出指令,按指令的要求發出控制信號,使各部件協調的,一步步的完成各種操作。   …

    Linux干貨 2016-08-22
  • 開篇

    正式開始學習的第一天,了解LINUX,愛上LINUX。希望在往后的日子里越戰越勇??!

    Linux干貨 2017-07-11
  • ArchSummit 2017全球架構師峰會100余位國內外技術專家北京等你!

    ArchSummit全球架構師峰會是InfoQ中國團隊推出的面向高端技術管理者、架構師的技術大會,參會者中超過50%擁有8年以上的工作經驗。

    2017-11-13
  • 馬哥教育網絡21期+第十二周練習博客上

    1、請描述一次完整的http請求處理過程; (1)建立或處理連接:接受請求或拒絕請求 (2)如果接受請求:     并發訪問響應模型:         單進程I/O結構:啟動一個進程處理用戶請求,而且一次只處理一個,多個請求被串行響應; &…

    Linux干貨 2016-10-17
  • 分區管理和文件系統

    管理分區:        lsblk           列出塊設備        fdisk          創建MBR 分區      &nbs…

    Linux干貨 2017-03-11
  • Linux學習總結及練習&day08-sed文本處理工具

    第一部分、Linux文本處理三劍客之sed(Stream EDitor)文本編輯工具     一、sed的基本功能工作原理     sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令…

    Linux干貨 2016-08-10
欧美性久久久久