linux系統啟動流程

  • linux系統啟動流程

CentOS(5、6)系統啟動流程

具體流程:

  1. 加載BIOS的硬件信息與進行自我測試,并依據設置取得第一個可啟動的設備;

  2. 讀取并執行第一個啟動設備內MBR的boot Loader

  3. 依據boot Loader的設置加載Kernel,Kernel會開始檢測硬件與加載驅動程序

  4. 硬件驅動成功后,Kernel會主動調用init進程,而init會取得run-level信息;

  5. init執行/etc/rc.d/rc.sysinit文件來準備軟件執行的操作環境。

  6. init執行run-level的每個服務啟動;

  7. init執行/etc/rc.d/rc.local文件;

  8. init執行終端模擬程序啟動login程序,等待用戶登錄

blob.png

  • Linux內核特點:

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

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

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

  • 組成部分:

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

      • ramdisk:輔助的偽根系統

      • CentOS 5: /boot/initrd-VERSION-release.img

      • CentOS6,7: /boot/initramfs-VERSION-release.img

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

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

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

    • RAM:CMOS互補金屬氧化物半導體,保存各項參數的設定 按次序查找引導設備,第一個有引導程序的設備為本次啟動設備

  • bootloader: 引導加載器,引導程序

    • 功能:

      • 提供菜單:用戶可以選擇不同的啟動選項。

      • 加載內核文件:直接向可啟動的程序區段來開始操作系統。

      • 轉交其他loader:將引導裝載功能轉交給其他loder負責。

  • 加載內核檢測硬件與initrd功能

    • 內核會以自己的功能重新檢測硬件。

blob.png

config-2.6.32-642.el6.x86_64←內核被編譯時選擇的功能與模塊配置文件

grub←引導裝載程序grub相關數據目錄

initrd-2.6.32-642.el6.x86_64kdump.img←虛擬文件系統文件

System.map-2.6.32-642.el6.x86_64←內核功能放置到內存地址的對應表

vmlinuz-2.6.32-642.el6.x86_64←內核文件

  • init程序的類型:

    • SysV: init, CentOS 5之前

      • 配置文件:/etc/inittab

    • Upstart: init,CentOS 6

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

    • Systemd:systemd, CentOS 7

      • 配置文件:/usr/lib/systemd/system /etc/systemd/system

  • 第一個進程與配置文件/etc/inittab

    • /sbin/init CentOS 5

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

    • 默認級別: 3, 5

    • 切換級別:init #

    • 查看級別:runlevel ; who -r

  • init啟動后所做的事情:

  1. 讀取/etc/inittab來讀取默認級別 

  2. 執行初始化系統腳本 /etc/rc.d/rc.sysinit 來初始化腳本

  3. 然后執行 /etc/rc.d/rc 腳本

  • /etc/inittab的內容與用法

    • 0:關機

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

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

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

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

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

    • 6:重啟

    • 格式如id:5:initdefault: 

blob.png

  • 執行初始化系統腳本 /etc/rc.d/rc.sysinit 來初始化腳本

  • /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. 清理操作

blob.png

  • 說明: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

  • 執行/etc/rc.d/rc.local腳本,此腳本是啟動過程中最后啟動的一個腳本。最后會執行 /bin/login 登錄用戶。至此系統啟動過程完成。

  • 總結:/sbin/init –> (/etc/inittab) –> 設置默認運行級 別 –> 運行系統初始腳本、完成系統初始化 –> (關閉對應 下需要關閉的服務)啟動需要啟動服務 –> 設置登錄終端

  • CentOS 6 init程序為: upstart, 其配置文件: /etc/inittab, /etc/init/*.conf,配置文件的語法遵循upstart配置文件語法格式,和CentOS5不同。

  • 根據系統啟動原理破解密碼

  • CentOS6

1重啟

2敲任意鍵

blob.png

3按a鍵,修改內核參數

blob.png

4輸入1 | S | s | single 進入單用戶模式

5進入系統后修改密碼

  • 計劃任務練習

1 、每周2, 4, 7備份/var/log/messages文件至/logs目錄中,文件名形如“messages-yyyymmdd”

10 0 * * 0,2,4 root /bin/cp /log/message /logs/messages-`date %F`

2 、每兩小時取出當前系統/proc/meminfo文件中以S或M開頭的信息追加至/tmp/meminfo.txt文件中

0 2 * * * root /bin/cat /proc/meminfo | /bin/grep '^[S|M].*' >> /tmp/meminfo.txt

blob.png

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

(0)
502795641502795641
上一篇 2016-09-11 14:56
下一篇 2016-09-11 15:42

相關推薦

  • 搭建屬于自己的DNS

    1、搭建主renzituo.com服務器     ①、在192.168.10.4主機上安裝bind程序             yum -y install bind   &nbs…

    2017-04-16
  • Linux的用戶,組及文件權限管理

    Linux用戶與組的創建,刪除,屬性修改,文件權限管理

    Linux干貨 2018-02-24
  • linux用戶與用戶組詳解

    LINUX用戶與用戶組詳解     1,用戶和用戶組文件   在linux中,用戶帳號,用戶密碼,用戶組信息和用戶組密碼均是存放在不同的配置文件中的。分別是 passed gpassd shadow group 中。   在linux系統中,所創建的用戶帳號和其相關信息(密碼除外)均是存放在/etc…

    Linux干貨 2017-07-22
  • 馬哥教育網絡班22期+第八周課程練習

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。    網橋:工作在OSI模型的數據鏈路層,將兩個局域網連起來,根據MAC地址來轉發幀,可以看作是一個“低層的路由器”(路由器工作在OSI模型的網絡層,根據網絡地址如IP地址進行轉發)。它可以有效地聯接兩個LAN,使本地通信限制在本網段內,并…

    Linux干貨 2016-11-17
  • N25-第12周博客作業

    1、請描述一次完整的http請求處理過程;   1)客戶端和服務器端建立連接。服務器接收或者拒絕請求。   2)服務器端接收客戶端請求。接收來自于網絡的請求報文中對某資源的一次請求。對請求的處理響應,可分為單進程(啟動一個進程處理請求,一次只處理一個)和多進程(并行啟動多個進程,每個進程處理一個請求)。  &…

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