Linux系統啟動基本流程

Linux開機流程

如下圖

開機啟動

  1. 00×01、BISO自檢

    硬件檢查,檢查硬件完整性,之后從開機BIOS開機硬件列表選擇BOOT設備

    2. 00×02、MBR引導

    從bootloader446字節(只會讀取一個硬盤的MBR),讀取引導程序,讀取分區表4*16字節,從MBR后一部

分扇讀取數據,進入GRUBstage1.5,在這部分扇區尋找 文件系統驅動識別/boot分區

   3. 00×03、GRUB

    進入GRUBstage2階段,讀取GRUB配置文件grub.conf,確定root文件系統對應的磁盤分區,讀取/initrd

(ramfs).-version.img內核鏡像文件位置,加載內核模塊

    4. 00×4、加載kernal

    加載kernal,探測硬件設備,確定硬件設備類型,從initrd/ramfs中加載對應的驅動,以只讀readonly的方式 

掛載rootfs,啟動第一個用戶空間進程/sbin/init(cet6為upstart名字依舊叫init)

    5. 00×5、執行/sbin/init(用戶空間第一個進程

    A、  讀取/etc/inittab

    inittab中定義了系統啟動級別:0關機1單用戶2無NFS的多用戶文本界面3多用戶文本界面4未啟用5圖形界面

    6. 重啟

 id:3:initdefault: 

  • 每一行定義一種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/rc 0
l1:1:wait:/etc/rc.d/rc 1...
l6:6:wait:/etc/rc.d/rc 6 

    B、/etc/rc.d/sysinit 系統初始化腳本
    (1) 設置主機名
    (2) 設置歡迎信息
    (3) 激活udevselinux
    (4)
掛載/etc/fstab文件中定義的文件系統
    (5) 檢測根文件系統,并以讀寫方式重新掛載根文件系統
    (6) 設置系統時鐘
    (7) 激活swap設備
    (8) 根據/etc/sysctl.conf文件設置內核參數
    (9) 激活lvmsoftware raid設備
    (10) 加載額外設備的驅動程序

    (11) 清理操作

    C、根據啟動級別啟動/etc/rc.d/rc{0..6}.d/*服務腳本下指定的腳本

    rc N –> 意味著讀取/etc/rc.d/rcN.d/
    K*: K##*
##運行次序;數字越小,越先運行;數字
    越小的服務,通常為依賴到別的服務
    S*: S##*##運行次序;數字越小,越先運行;數字
    越小的服務,通常為被依賴到的服務
   

 for srv in /etc/rc.d/rcN.d/K*; do
            $srv stop
    done
    for srv in /etc/rc.d/rcN.d/S*; do
        $srv start
    done 

    D、getty(mingetty) /bin/login shell

    當我們看到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文件,就執行它,在這些文件中又可能調用了其它配置文
件,所有的配置文件執行后后,各種環境變量也設好了,這時會出現大家熟悉的命令行提示
符,到此整個啟動過程就結束了。


原創文章,作者:Az2h1丶,如若轉載,請注明出處:http://www.www58058.com/79551

(0)
Az2h1丶Az2h1丶
上一篇 2017-07-09 16:34
下一篇 2017-07-09 17:15

相關推薦

  • 自制簡易linux系統

    一、環境準備 1.筆記本電腦 2.vmware12軟件 3.CentOS 6虛擬機 4.大于5G空間的物理磁盤分區 二、分區并掛載文件系統 1.添加磁盤 在vmware中選中CentOS 6系統并右擊鼠標選擇設置,添加–>硬盤–>SCSI(推薦)–>創建新虛擬磁盤–>大小改為5G–>完成 2.分區并…

    Linux干貨 2016-09-20
  • 磁盤及文件系統管理—第二篇

    掛載配置文件 每行定義一個要掛載的文件系統及相關屬性     使用mount -a掛載/etc/fstab文件中所定義的文件系統     配置文件格式:         一共分為6個字段: &nbsp…

    Linux干貨 2016-08-30
  • 學習宣言

    人所缺乏的不是才干而是志向,不是成功的能力而是勤勞的意志。

    Linux干貨 2016-10-30
  • N25期—第一周作業

    1、描述計算機的組成及其功能 計算機五大組成部件:運算器、控制器、存儲器、輸入設備和輸出設備。 運算器和控制器統稱中央處理器(CPU)。  存儲器分成內存儲器和外存儲器兩大類。  外存儲器、輸入設備和輸出設備統稱為外部設備。  中央處理器(CPU)  計算機的中央處理器又稱為CPU,它是計算機的核心部分。主要由運算器和…

    Linux干貨 2016-12-04
  • 8.1作業

    8月1日作業 創建testuser uid 1234,主組:bin,輔助組:root,ftp,shell:/bin/csh home:/testdir/testuser [root@localhost ~]# useradd -u 1234 -g bin -G root,ftp&…

    Linux干貨 2016-08-04
  • sed基礎

    sed 是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space ),接著用sed 命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有改變,除非你使用重定向存儲輸出。Sed 主要用來自動編輯一個或多個文件, 簡化對文件的反復操…

    Linux干貨 2017-05-01
欧美性久久久久