日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CentOS 5和6的启动流程

發布時間:2023/12/18 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CentOS 5和6的启动流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Linux組成

????1. linux:kernel+rootfs

????????kernrl的作用:進程管理、內存管理、網絡管理、驅動程序、文件系統、安全功能

????????rootfs:程序和glibc

????????庫:函數集合,function,調用接口(頭文件負責描述)

????????????過程調用:procedure ,無返回值

????????????函數調用:function

????????程序:二進制執行文件

????2.內核設計流派:

????????單內核(monolithic kernel):Linux

????????????把所有功能集成于一個程序

????????微內核(micro kernel):Windows,Solaris

????????????每種功能使用一個單獨子系統實現? ??

????3.內核特點:

????????支持模塊化:.ko(內核對象)

????????????如:文件系統,硬件驅動,網絡協議等

????????支持內核模塊的動態裝載和卸載

? ? ?4.內核組成部分:

????????核心文件:/boot/vmlinuz-VERSION-release

????????????ramdisk:輔助的偽根系統

????????????????CentOS 5:/booot/initrd-VERSION-release

????????????????CentOS 6,7:/boot/initramfs-VERSION-release.img

????????????模塊文件:/lib/modules/VERSION-release

二、圖文簡述系統啟動流程

????1.加載BIOS的硬件信息,獲取第一個啟動設備。

????2.讀取第一個啟動設備MBR的引導加載程序(grub)的啟動信息

????3.加載核心操作系統的核心信息,核心開始解壓縮,并嘗試驅動所有的硬件設備。

????4.核型執行init程序并獲取運行信息。

????5.Init執行/etc/rc.d/rc.sysinit文件。

????6.啟動核心的外掛模塊(/etc/modprobe.conf)。

????7.Init執行運行的各個批處理文件(scripts).

????8.Init執行/etc/rc.d/rc.local.

????9.執行/bin/login程序,等待用戶登錄。

????10.登錄之后開始以Shell控制主機。

三、啟動中部分過程詳解

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

????

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

????????2) RAM:CMOS互補金屬氧化物半導體,保存各項參數的設定

按次序查找引導設備,第一個有引導程序的設備為本次啟動設備

????2.bootloader: 引導加載器,引導程序

????????1)windows: ntloader,僅是啟動OS

????????2)Linux:功能豐富,提供菜單,允許用戶選擇要啟動系統或不同的內核版本;把用戶選定的內核裝載到內存中的特定空間中,解壓、展開,并把系統控制權移交給內核

????????????LILO:LInuxLOader

????????????

????????????GRUB: GRandUnified Bootloader

????????????????GRUB 0.X: GRUB Legacy,GRUB2

????2.MBR:

????????446: bootloader,64: 分區表, 2: 55AA

????3.GRUB:

????????primary boot loader : 1st stage,1.5 stage

????????secondary boot loader :2nd stage,分區文件

????4.kernel:

????????自身初始化:

????????????

????????????探測可識別到的所有硬件設備

????????????加載硬件驅動程序(可能借助于ramdisk加載驅動)

????????????以只讀方式掛載根文件系統

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

????5.init程序的類型:

????????? ??

????? ? ?1)SysV: init, CentOS 5之前

????????????配置文件:/etc/inittab

????????2)Upstart: init,CentOS6

????????????配置文件:/etc/inittab, /etc/init/*.conf

????????3)Systemd:systemd, CentOS 7

????????????配置文件:/usr/lib/systemd/system

?????????????????/etc/systemd/system???

????????

????6.ramdisk:

????????內核中的特性之一:使用緩沖和緩存來加速對磁盤上的文件訪問

????????ramdisk--> ramfs提高速度

????????CentOS 5: initrd, 工具程序:mkinitrd

????????CentOS 6: initramfs,工具程序:mkinitrd, dracut

????7.系統初始化

????????POST --> BootSequence(BIOS) --> Bootloader(MBR) --> kernel(ramdisk) --> rootfs(只讀) --> init(systemd)

????????1.系統運行級別:為系統運行或維護等目的而設定;0-6:7個級別

???????????

????????????0:關機

????????????1:單用戶模式(root自動登錄), single, 維護模式

????????????2: 多用戶模式,啟動網絡功能,但不會啟動NFS;維護模式

????????????3:多用戶模式,正常模式;文本界面

????????????4:預留級別;可同3級別

????????????5:多用戶模式,正常模式;圖形界面

????????????6:重啟

?????

????????????

????????????默認級別:3, 5

??? ????????切換級別:init#

????????????查看級別:runlevel; who -r


????????2.init初始化

????????????

????????????初始運行級別(RUN LEVEL)

????????????系統初始化腳本

????????????對應運行級別的腳本目錄

????????????捕獲某個關鍵字順序

????????????定義UPS電源終端/恢復腳本

????????????在虛擬控制臺生成getty

????????????在運行級別5初始化X


四、系統啟動相關的配置文件和腳本

????1.配置文件:/etc/inittab

????????每一行定義一種action以及與之對應的process

????????id:runlevel:action:process

????????action:

????????????wait: 切換至此級別運行一次

????????????respawn:此process終止,就重新啟動之

????????????initdefault:設定默認運行級別;process省略

????????????sysinit:設定系統初始化方式,此處一般為指定

????????????????/etc/rc.d/rc.sysinit

????????????

????????????ca::ctrlaltdel:/sbin/shutdown -t3 -r now

????????id:3:initdefault:

????????si::sysinit:/etc/rc.d/rc.sysinit

????????l0:0:wait:/etc/rc.d/rc0

????????l1:1:wait:/etc/rc.d/rc1...

????????l6:6:wait:/etc/rc.d/rc6

????2.其它相關配置文件

????????

????????/etc/inittab:設置系統默認的運行級別

????????????id:3:initdefault:

????????/etc/init/control-alt-delete.conf:設備Ctrl+ALT+delete鍵的動作

?????????????cat /etc/init/control-alt-delete.conf中控制Ctrl+ALT+del重啟,把其關閉比較好

????????/etc/init/tty.conf:設備終端相關的信息

????????/etc/init/start-ttys.conf:設備啟動終端相關的信息

????????/etc/init/rc.conf:設備啟動文件相關的信息

????????/etc/init/prefdm.conf

????3.系統初始化腳本:

????????/etc/rc.d/rc.sysinit: 系統初始化腳本

????????

????????????(1) 設置主機名

????????????(2) 設置歡迎信息

????????????(3) 激活udev和selinux

????????????(4) 掛載/etc/fstab文件中定義的文件系統

????????????(5) 檢測根文件系統,并以讀寫方式重新掛載根文件系統

????????????(6) 設置系統時鐘

????????????(7) 激活swap設備

????????????(8) 根據/etc/sysctl.conf文件設置內核參數

????????????(9) 激活lvm及software raid設備

????????????(10) 加載額外設備的驅動程序

????????????(11) 清理操作


????4.關于啟動腳本的一些說明

? ?????

????????說明:rcN --> 意味著讀取/etc/rc.d/rcN.d/

????????????K*: K##*:##運行次序;數字越小,越先運行;數字越小的服務,通常為依賴到別的服務

????????????S*: S##*:##運行次序;數字越小,越先運行;數字越小的服務,通常為被依賴到的服務

????????for srvin /etc/rc.d/rcN.d/K*; do

????????????$srvstop

????????done

????????for srvin /etc/rc.d/rcN.d/S*; do

????????????$srvstart

????????done

五、程序啟動關閉相關命令及服務? ??

????1.chkconfig命令

????????查看服務在所有級別的啟動或關閉設定情形:

????????????chkconfig[--list] [name]

????????添加:

????????????SysV的服務腳本放置于/etc/rc.d/init.d(/etc/init.d)

????????????chkconfig--add name

????????????????#!/bin/bash

????????????????#LLLL 表示初始在哪個級別下啟動,-表示都不啟動

????????????????# chkconfig: LLLL nnnn

????????刪除:

????????????chkconfig--del name

????????修改指定的鏈接類型:

????????????chkconfig[--level levels] name <on|off|reset>

????????????????--level LLLL: 指定要設置的級別;省略時表示2345

????????????

? ? 2.ntsysv命令:圖形化設置系統服務啟動的命令

????

????3.xinetd管理的服務

????????service命令:手動管理服務

????????????service服務:start|stop|restart|

????????????service --status-all

????????瞬態(Transient)服務被xinetd進程所管理

????????進入的請求首先被xinetd代理

????????配置文件:/etc/xinetd.conf、/etc/xinetd.d/<service>

????????與libwrap.so文件鏈接

????????用chkconfig控制的服務:

????????????chkconfig tftp on

????4.其它一些說明:

????????注意:正常級別下,最后啟動一個服務S99local沒有鏈接至/etc/rc.d/init.d一個服務腳本,而是指向了/etc/rc.d/rc.local腳本

????????不便或不需寫為服務腳本放置于/etc/rc.d/init.d/目錄,且又想開機時自動運行的命令,可直接放置于/etc/rc.d/rc.local文件中

????????/etc/rc.d/rc.local在指定運行級別腳本后運行

????????可以根據情況,進行自定義修改

????????

????????1:2345:respawn:/usr/sbin/mingettytty1

????????2:2345:respawn:/usr/sbin/mingettytty2

????????...

????????6:2345:respawn:/usr/sbin/mingettytty6

????????mingetty會自動調用login程序

????????x:5:respawn:/etc/X11/prefdm -nodaemon

?

?

六、GRUB legacy

? ??1.CentOS 6啟動流程

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

????2.grub: GRandUnified Bootloader

????????

????????grub 0.x: grub legacy

????????grub 1.x: grub2

????????grub legacy:

????????????stage1: mbr

????????????stage1_5: mbr之后的扇區,讓stage1中的bootloader

????????能識別stage2所在的分區上的文件系統

????????????stage2:磁盤分區(/boot/grub/)

????3.配置文件:/boot/grub/grub.conf<--/etc/grub.conf

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

????5.grub的功用:

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

????????????a:內核參數

????????????b: 編輯模式,用于編輯菜單

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

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

????????????允許傳遞參數給內核

????????????可隱藏啟動菜單

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

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

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

????6.grub的命令行接口

????

????????help: 獲取幫助列表

????????help KEYWORD: 詳細幫助信息

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

????????root (hd#,#)

????????kernel /PATH/TO/KERNEL_FILE: 設定本次啟動時用到的內核文件;額外還可添加許多內核支持使用的cmdline參數

????????例如:max_loop=100 selinux=0init=/path/to/init

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

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

????7.cat /proc/cmdline 查看內核參數

????8.內核參數文檔:/usr/share/doc/kernel-doc-2.6.32/Documentation/kernel-parameters.txt

? ?? 9.配置文件說明:/boot/grub/grub.conf

????????

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

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

????????splashp_w_picpath=(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: 啟動選定的內核或操作系統時進行認證

????10.密碼生成工具:grub-md5-crypt命令

????11.破解root口令:

????????啟動系統時,設置其運行級別1

????????進入單用戶模式:

????????????

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

????????????(2) 在選定的kernel后附加

????????????????1, s, S或single都可以;

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

????????????(4)進行密碼的重新設置


????12.安裝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#)

???

轉載于:https://blog.51cto.com/sauce/1853768

總結

以上是生活随笔為你收集整理的CentOS 5和6的启动流程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。