Linux系統啟動流程,linux啟動流程

來源:互聯網
上載者:User

Linux系統啟動流程,linux啟動流程

一、系統啟動流程簡介

啟動過程每個不同的Linux發行版有些許的不同:RHEL 5為SysVinit,RHEL 6為Upstart,RHEL 7為Systemd,為更好地解釋這個問題,以下選取RHEL 5.x進行說明。

如流程圖所示,RHEL的啟動過程按步驟大致可以分為:
POST加電自檢-->BIOS(Boot Sequence)-->載入對應引導上的MBR(bootloader) -->主引導設定載入其BootLoader-->Kernel初始化-->initrd—>/etc/init進程載入/etc/inittab
從載入BootLoader(RHEL下為Grub)開始,會發生以下事情.
1. 藉由Grub的管理,讀取Kernel核心檔案(/boot/vmlinuz),解壓至主記憶體,利用核心的功能,進行第二次硬體檢測(第一次發生在POST開機自我測試 (POST)時)
2. 載入Initial RAM Disk(/boot/initrd),使之在記憶體中解壓縮為根目錄,kernel藉此完成驅動程式的載入,,最終釋放虛擬檔案系統,並掛載實際的根目錄檔案系統.
3. 在核心載入完畢,進行完硬體偵測與驅動程式載入後,核心會啟動第一個進程/sbin/init, init進程將會讀取/etc/inittab,在/etc/inittab中,大致規定了以下動作:
/sbin/init 最主要的功能就是準備軟體啟動並執行環境,包括系統的主機名稱、網路設定、語系處理、檔案系統格式及其他服務的啟動等,而所有的動作都根據在/etc/inittab中的配置.
/etc/rc.d, 裡面存放了rc.local, rc.sysinit, init.d, rcX.d (X包括0-6對應相對runlevel)
/etc/rc.d/init.d, 存放了各種系統服務的啟動關閉的管理指令碼,/etc/init.d是他的一個目錄連結.
/etc/rc.d/rcX.d, 裡面存放了一些指令碼,指令碼名字以K開頭的,表示STOP動作,名字以S開頭,表示Start動作,名稱中的數字表示執行次序,數字越小表示越先執行.
/etc/rcX.d是他的目錄連結,但事實上rcX.d下檔案本身就是指向/etc/rc.d/init.d下指令碼的連結檔案.
/etc/rc.d/rc.local, 有一個連結檔案,路徑在/etc/rc.local,
系統根據runlevel啟動完rcX.d中的指令碼之後,會調用rc.local指令碼,如果你有一個指令碼命令不論在3和5都想開機啟動,那麼就添加於此,免去rc3.d和rc5.d分別增加啟動指令碼工作量.

 

二、linux添加開機自啟動指令碼樣本

參考:http://blog.chinaunix.net/uid-26000296-id-3986914.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.