Linux CentOS 5/6啓動流程

CentOS 5/6啓動流程linux

1.加電自檢(post)
 按開機電源後經過CMOS芯片的BIOS系統檢測系統硬件是否正常centos

2.查找系統引導
2.1 經過BIOS中的引導設置BOOT Sequence按次序查找引導程序,經過第一個有引導程序的設備啓動;安全

2.2 加載bootloader,經過bootloader選擇須要加載的內核版本,將用戶選擇的內核版本加載到內存中特定的位置,解壓展開,而後將控制全轉交給內核
 (1)MBR引導程序
  446字節:bootloader
  64字節:分區表
  2:結束標示 55AA
 (2)GRUB:多操做系統管理器
  bootloader:1st stage
  disk:2nd stage服務器

3.啓動內核
3.1 內核的功能:進程管理、內存管理、網絡管理、驅動管理、文件系統、安全功能網絡

3.2 linux內核特色:
 (1)模塊化設計,並且各模塊能夠動態卸載和加載;
 (2)內核核心文件有 /boot/vmlinuz-VERSION-release 和ramdisk。ramdisk在CentOS 5中的路徑爲 /boot/initrd.VERSION-release.img,在CentOS 6中的路徑爲 /boot/initramfs-VERSION-release.img
 (3)模塊文件存在路徑 /lib/modules/VERSION-release
 
3.3 kenel自身初始化過程
 (1)探測可識別的全部硬件設備;
 (2)加載硬件驅動程序;(有可能會藉助於ramdisk加載驅動)
 (3)以只讀的方式掛載跟文件系統
 (4)運行用戶空間第一個應用程序/sbin/init
 
3.4 init程序類型根據系統不一樣有如下幾種:
 (1)centos 5使用的是Sysv,配置文件路徑 /etc/inittab
 (2)centos 6使用的是Upstart,配置文件路徑/etc/inittab /etc/init/*.conf
 (3)centos 7使用的是systemd,配置文件路徑 /usr/lib/systemd/system  /etc/systemd/system
 
3.5 CentOS 5/6運行級別
 分爲0-6,七個級別
  0:關機,
  1:單用戶模式(登陸即爲root用戶,無需用戶密碼驗證),可輸入命令1或single進入,也可稱爲維護模式
  2:多用戶模式,會啓動網絡功能,但不會啓動NFS,也可稱爲維護模式
  3:多用戶模式,3屬於正常模式,僅啓動文本界面
  4:預留級別,同3;
  5:多用戶模式,可啓動圖形界面;
  6:重啓
  
3.6 init 的切換命令和配置解析
 (1)init #:通常模式級別爲3,5,#爲級別編號;
 (2)runlevel:查看當前運行級別與最近一次切換前的級別
 (5)who -r:相似與runlevel
 
3.7 /etc/inittab 配置文件解析
 id:runlevel:action:process
  id:每一登記項的惟一表示符
  runlevel:對應0-6,7個運行級別
  action:表示對應登記項在必定條件下運行process的條件
   wait:當進入指定runlevel後process會運行一次且在離開此runlevel時process停止
   respawn:當process終止後,馬上啓動一個新的
   initdefault:設定默認運行級別,process省略
   sysinit:系統初始化,只有系統開機或重啓的時候纔會運行一次,此處通常爲指定/etc/rc.d/rc.sysinit
 分析:
  id:3:initdefault:   ------->表示開機後默認會進入3模式(即命令行模式)
  si::sysinit:/etc/rc.d/rc.sysinit  ----->在全部的運行級別下init都會依賴/etc/rc.d/rc.sysinit這個腳本對系統進行初始化
   /etc/rc.d/rc.sysinit的做用以下:
    1,激活udev和selinux
    2,根據/etc/sysctl.conf文件設定內核參數
    3,設定系統時鐘
    4,鍵盤的鍵映射,即識別鍵盤
    5,啓用swap分區
    6,設定主機名
    7,根文件系統檢測及從新以讀寫方式掛載
    8,激活RAID和LVM設備
    9,啓用磁盤配額
    10,檢測及掛載其餘文件系統(掛載/etc/fstab中定義的設備)
    11,清除過時的鎖和PID文件
  l0:0:wait:/etc/rc.d/rc 0
  l1:1:wait:/etc/rc.d/rc 1
  l2:2:wait:/etc/rc.d/rc 2
  l3:3:wait:/etc/rc.d/rc 3
  l4:4:wait:/etc/rc.d/rc 4
  l5:5:wait:/etc/rc.d/rc 5
  l6:6:wait:/etc/rc.d/rc 6
   上述10-16表示當進入n級別時將 /etc/rc.d/rc*.d下的S*文件啓用,K*文件禁用,並且僅針對於對應的級別執行一次,退出此級別失效。每一個/etc/rc.d/rc*.d
    K*:K##:##表示關閉次序,數字越大越先運行,數字越小的服務,一般爲依賴比人的服務
    S*:S##:##表示啓動次序,數字越小越先運行,數字越小的服務,一般爲被別人依賴的服務。ide

3.8 chkconfig命令
 用途:用於查看服務所在級別出於啓動或關閉的狀態,和設置各服務在各啓動級別時的狀態
 
 使用場景1:
  (1)chkconfig --list:查看全部服務器在各級別時狀態,頂部的數字表示啓動級別,on表示啓動,off表示關閉
  (2)chkconfig --list name:表示查看此項服務在各級別時的狀態。
  (3)chkconfig --level # name <on,off,reset>:修改服務在指定級別#時的狀態,當#號省略時表示2345。
  (4)添加新服務和刪除服務的方法:
   先將增長的腳本放置於/etc/rc.d/(/etc/init.d),編輯腳本在各級別中的狀態 chkconfig :LLLL NN NN
   使用chkconfig --add name 添加腳本
   使用chkconfig --del name 刪除腳本
 
 注:正常級別下,最後啓動一個服務S99local沒有連接至/etc/rc.d/init.d一個服務腳本,而是指向了/etc/rc.d/rc.local腳本;所以,不便或不需寫爲服務腳本放置於/etc/rc.d/init.d/目錄,且又想開機時自動運行的命令,可直接放置於/etc/rc.d/rc.local文件中;模塊化

相關文章
相關標籤/搜索