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
下一篇 2016-09-11

相關推薦

  • N25期—第二周作業

    1、  Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。   一、文件權限管理類命令  chown:改變文件所有者  chown [OPTION]… [OWNER][:[GROUP]] FILE…  常用參數 -R:遞歸修改(改目錄就改目錄中的目錄及文件) &n…

    Linux干貨 2016-12-11
  • 永遠不要讓自己停下

    曾幾何時,我還是剛出象牙塔的小男孩。想想現在,經過4年的洗禮,我不再是小男孩了??墒?,我卻發現自己變得越來越懶,守著那丁點的知識。 我早已坐吃山空而不自知,早已落后于時代的趨勢而不自知。時代需要一個勤奮而專注的我,需要一個不懈怠的我。 如果,我不繼續前進,等待我的只有墮落。逆水行舟不進則退,不逼自己一把,永遠不知道自己的潛力有多大。 我希望說,再見,懈怠而懶…

    Linux干貨 2016-10-07
  • N25第一周博客作業

    本周加班很多,視頻未看完,下周補上

    Linux干貨 2016-12-04
  • raid5創建

    創建分區并改類型 創建raid5   創建把文件系統 生成配置文件    

    2017-12-17
  • screen命令

    安裝SCREEN[root@centos6 ~]# dfFilesystem     1K-blocks    Used Available Use% Mounted on/dev/sda2       51475068 5052580  43801048  11% /…

    2017-07-22
  • shell腳本之批量添加用戶

        沒錯,這是一個簡單的腳本,不寫不知道,寫了才發現自己多垃圾。     我是一名普通的公司網絡管理,接觸linux不長,一直理想都是和馬哥學習linux,可惜因為拖家帶口的原因,沒辦法交學費和馬哥學習,心里小小遺憾吧。每天看著馬哥的文章以及百度搜索的視頻文章學習,感覺自己學…

    Linux干貨 2016-07-07
欧美性久久久久