深入淺出:linux的啓動流程刨析(二)

2. 關於etc/rc.d/rc.sysyinit 和 /etc/rc.d/rc.Nd

在inittab文件中,我們瞭解到rc.sysinit是系統運行的第一個腳本,那麼它的作用都有哪些呢?如果有shell腳本基礎的話可以用vim打開這個文件來看看,它有900多行...是linux裏最牛的腳本,總結下它的作用,有如下幾點:(一定要牢記,必要時我們要重寫它!

1. 激活udev和selinux

2. 通過讀取/etc/sysct1.conf來設置內核參數

3. 設置系統時鐘

4. 設置鍵盤映射

5. 啓動交換分區。

6. 設置主機名

7. 檢查跟文件系統,並且如果沒有錯誤,以讀寫的方式來重新掛載文件系統 (重要)

8. 激活raid和lvm設備

9. 啓動磁盤限額

10 掛載其他/etc/fstab裏定義的尚未被掛載的設備

11. 清理過時的文件鎖和PID文件

12. 啓動服務/etc/rc.d/rcN.d


/etc/rc.d/rcN.d 是一個存放了系統啓動是加載的服務的文件夾,通過inittab,我們知道了,它的編號對應相應的啓動運行級別。

需要說明的是,它裏面的文件,以我的爲例 以K開頭的代表stop,以S開頭的代表啓動start,數字越小,有限級別越高

[root@server69 rc.d]# cd rc3.d
[root@server69 rc3.d]# ls
K01dnsmasq         K74nscd             S08ip6tables    S25bluetooth   S85gpm
K02avahi-dnsconfd  K85mdmpd            S08iptables     S25netfs       S90crond
K02NetworkManager  K87multipathd       S08mcstrans     S25pcscd       S90xfs
K05conman          K88wpa_supplicant   S10network      S26acpid       S95anacron
K05saslauthd       K89dund             S11auditd       S26apmd        S95atd
K10psacct          K89netplugd         S12restorecond  S26haldaemon   S97rhnsd
K20nfs             K89pand             S12syslog       S26hidd        S97yum-updatesd
K24irda            K89rdisc            S13irqbalance   S28autofs      S98avahi-daemon
K35vncserver       K99readahead_later  S13portmap      S50hplip       S99firstboot
K35winbind         S00microcode_ctl    S14nfslock      S55sshd        S99local
K50ibmasm          S02lvm2-monitor     S15mdmonitor    S56cups        S99smartd
K50netconsole      S04readahead_early  S18rpcidmapd    S56rawdevices
K69rpcsvcgssd      S05kudzu            S19rpcgssd      S58ntpd
K73ypbind          S06cpuspeed         S22messagebus   S80sendmail


3./etc/fstab文件

它定義了系統初始化掛載的設備,對系統的啓動至關重要,rc.sysinit通過讀取它來實現系統分區的掛載

它的內容如何呢?我們一起來看下

要掛載的設備 掛載點 文件系統類型 掛載選項 轉儲頻率 文件自檢次序

/dev/sda2               /                       ext3    defaults        0 0
/dev/sda1               /boot                   ext3    defaults        0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

我截取了4個系統啓動時必須掛載的設備

/ 根文件目錄,由它你纔可以進入linux的世界,它在/dev/sda2裏

/boot 啓動目錄,在/下,裏面有grub,initrd和系統內核,它在/dev/sda1

sysfs 一個虛擬的文件系統,產生包含所有硬件層次視圖,和/proc類似

proc 這是一個虛擬的目錄,它映射內存裏的信息對應進程信息,也就是說它對應的是內存而不是硬盤

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章