CentOS6啓動步驟

轉自:http://www.aminglinux.com/study_v2/chapter5.html

CentOS6啓動步驟:
1、內核引導: BIOS開始自檢
                           按照BIOS中設置的啓動設備(通常是硬盤)來啓動
                           啓動設備上的grub程序開始引導linux
                           linux接管CPU的控制權
                           CPU開始執行linux的核心映像代碼(開始linux的啓動過程)
                           內核調用加載init程序

2、運行init: init進程是系統所有進程的起點(沒有這個進程,系統中任何進程都不會啓動)。
                      功能: 準備軟件執行環境。
                                   主機名
                                   網絡設定
                                   語言
                                   文件系統格式
                                   其它服務的啓動
                      /etc/inittab: init進程的所有動作都要通過配置文件/etc/inittab來規劃
                                          /etc/inittab 還設定了默認的runlevel(開機運行級別)

--查看inittab文件  vim /etc/inittab
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# 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: 

 runlevel解釋:0 關機  1單用戶   2沒有網絡的命令行級別   3命令行級別    4保留級別   5圖形化級別    6重啓

大多數服務器都用級別3

id:3:initdefault: 表示服務器跑的是3級別

3、系統初始化:執行/etc/init/下的各個配置文件

                              inittab配置文件中有這麼一行 “System initialization is started by /etc/init/rcS.conf” 也就是說系統初始化會先執行/etc/init/rcS.conf 而該配置文件中又有一行 “exec /etc/rc.d/rc.sysinit” 所以,重心又轉移到了這個rc.sysinit文件上,它會做如下工作:激活交換分區,檢查磁盤,加載硬件模塊以及其它一些需要優先執行任務。

                              當rc.sysinit程序執行完畢後,將返回init繼續下一步,又到了/etc/init/rc.conf, 在這個配置文件裏,最關鍵的一行爲 “exec /etc/rc.d/rc $RUNLEVEL” 而$RUNLEVEL是在/etc/inittab中定義的(最下面的那一行),以阿銘的/etc/inittab爲例,表示$RUNLEVE=3, 所以此時會執行 “/etc/rc.d/rc 3” 此時實際上是把/etc/rc.d/rc3.d/ 下的腳本都給執行了,隨後/etc/rc.d/rc.local也會被執行,通常我們會把開機啓動執行的命令放到這個腳本下。服務執行完,系統初始化也就完成了。接下來該建立終端了。

4、建立終端:

                         建立終端是由配置文件/etc/init/tty.conf, /etc/init/serial.conf和/etc/sysconfig/init等配置文件來完成的。在2、3、4、5的運行級別中都將以respawn方式運行mingetty程序,mingetty程序能打開終端、設置模式。同時它會顯示一個文本登錄界面,這個界面就是我們經常看到的登錄界面,在這個登錄界面中會提示用戶輸入用戶名,而用戶輸入的用戶將作爲參數傳給login程序來驗證用戶身份。

5、用戶登錄系統:

                         對於運行級別爲5的圖形方式用戶來說,他們的登錄是通過一個圖形化的登錄界面。登錄成功後可以直接進入KDE、Gnome等窗口管理器。而本文主要講的還是文本方式登錄的情況:當我們看到mingetty的登錄界面時,我們就可以輸入用戶名和密碼來登錄系統了。

                          Linux的賬號驗證程序是login,login會接收mingetty傳來的用戶名作爲用戶名參數。然後login會對用戶名進行分析:

                                          如果用戶名不是root,且存在 “/etc/nologin” 文件,login將輸出nologin文件的內容,然後退出。這通常用來系統維護時防止非root用戶登錄。

                                          只有 “/etc/securetty” 中登記了的終端才允許root用戶登錄,如果不存在這個文件,則root可以在任何終端上登錄。

                                           ”/etc/usertty” 文件用於對用戶作出附加訪問限制,如果不存在這個文件,則沒有其他限制。

                         在分析完用戶名後,login將搜索 “/etc/passwd” 以及 “/etc/shadow” 來驗證密碼以及設置賬戶的其它信息,比如:主目錄是什麼、使用何種shell。如果沒有指定主目錄,將默認爲根目錄;如果沒有指定shell,將默認爲 “/bin/bash”。

                          login程序成功後,會向對應的終端在輸出最近一次登錄的信息(在 “/var/log/lastlog” 中有記錄),並檢查用戶是否有新郵件(在 “/usr/spool/mail/” 的對應用戶名目錄下)。

                         然後開始設置各種環境變量:對於bash來說,系統首先尋找 “/etc/profile” 腳本文件,並執行它;

                         然後如果用戶的主目錄中存在 .bash_profile 文件,就執行它,在這些文件中又可能調用了其它配置文件,所有的配置文件執行後後,各種環境變量也設好了,這時會出現大家熟悉的命令行提示符,到此整個啓動過程就結束了。

----------------------------------------------

/etc/profile: 此文件爲系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行. 並從/etc/profile.d目錄的配置文件中搜集shell的設置。
~/.bash_profile: 每個用戶都可使用該文件輸入專用於自己使用的shell信息,當用戶登錄時,該文件僅僅執行一次。默認情況下,設置一些環境變量,執行用戶的.bashrc文件。

~/.bashrc: 該文件包含專用於你的bash shell的bash信息,當登錄時以及每次打開新的shell時,該該文件被讀取。

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