ubuntu 10 04 啟動過程

2021-06-07 05:01:42 字數 1478 閱讀 6842

我的前面的博文已經提到了linux系統的啟動過程,但是由於各distribution的差異,再具體到init程序啟動以後os啟動過程會有所差異。據了解ubuntu9.04以後不再採用/etc/inittab啟動,而是採用init和upstart相結合的方式。

標準的linux啟動順序是:

(1)init根據/etc/inittab來配置系統-->

(2)執行指令碼/etc/rc.d/rc.sysinit初始化-->

(3)然後根據啟動等級執行/etc/init.d/rc,執行等級作為引數傳入

(4)跳到/etc/rcn.d/(n為執行等級),執行裡面的檔案,其中大部分為指向/etc/init.d/下面的檔案,啟動相關服務。

這種序列的啟動機制被稱為 system v init 機制,這種機制啟動較慢,upstart機制就是其的替代機制,也就是現在ubuntu中所使用的機制。下面這兩篇文章對upstart機制做了很詳細地說明:

由於需要和第三方軟體相容,現在的ubuntu中使用的是system v init 和upstart機制結合的方式。觀察ubuntu10.04的檔案系統可以發現:

1 沒有標準init程序中的/etc/inittab以及rc.sysinit檔案。

2 沒有標準upstart中初始化用的rc-default檔案以及事件觸發目錄 /etc/event.d。

3 ubuntu已經不再嚴格區分各個啟動等級(runlevel)了。

在ubuntu中,和init有關的就是/etc/init /etc/init.d /etc/rcn.d了(n為啟動等級runlevel,s代表單使用者模式)。注意。這裡的init,指的是基於upstart的初始化程序。

ubuntu啟動順序是:

(1)init讀取/etc/init/rc-sysinit.conf檔案來確定啟動等級,關鍵內容如下:

# default runlevel, this may be overriden on the kernel command-line

# or by faking an old /etc/inittab entry

env default_runlevel=2

# check for default runlevel in /etc/inittab      ==> 說明ubuntu並沒有完全忽視inittab檔案的存在

仍然可以使用inittab檔案來自定義執行級別

if [ -r /etc/inittab ]

then

eval "$(sed -nre 's/^[^#][^:]*:([0-6ss]):initdefault:.*/default_runlevel="\1";/p' /etc/inittab || true)"

fi(2)傳遞引數給/etc/init.d/rc

(3)根據引數執行/etc/rcn.d/下面的鏈結檔案,這點跟其他的是相同的。注意,根據執行級別來裁剪服務在ubuntu中可能會失效,但是可以改寫/etc/rcn.d/下面的指令碼來實現。

參考:

ubuntu10 04啟動流程

關於linux的啟動流程已近有很多人討論過,但是很多時候都不是適合自己 這就是linux版本差異造成的,比如目前我看的10.04版本,就和很多網上的帖子論述的不一樣 所以需要自己邊看邊實驗 大致的順序就是 etc init.d rc sysinit.sh etc init.d rcs etc ini...

ubuntu 10 04以及10 10啟動流程分析

標籤 ubuntu 啟動流程 2011 02 14 15 53 ubuntu10.04以及10.10啟動流程與以前的版本相比,啟動流程有所不同。我也是初學,琢磨了乙個下午,才理清他的工作流程。至於裡面詳細的指令碼檔案,簡單的能看的懂,複雜的我也不太想去分析,我的目標是驅動程式的編寫。1.加電自檢,b...

Ubuntu 10 04禁止從桌面啟動

首先我們來說一下ubuntu的執行級別。ubuntu的預設開機的runlevel是2,可以用runlevel來檢視當前的預設執行級別。debian系 ubuntu是基於debian 的linux一直是用runlevel 2來預設啟動,並且runlevel定義也與redhat有區別。debian的ru...