日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux文件系统启动流程 ---笔记整理

發(fā)布時(shí)間:2025/3/15 linux 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux文件系统启动流程 ---笔记整理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

下面是一張linux啟動(dòng)流程圖:

在了解啟動(dòng)流程之前,我們應(yīng)該先知道系統(tǒng)的幾個(gè)重要腳本和配置文件,他們對(duì)應(yīng)的路徑為:

1. /sbin/init

2. /etc/inittab

3. /etc/rc.d/rc.sysinit

4. /etc/rc.d/rcN.d //這是幾個(gè)文件夾N代表數(shù)字1,2,3,4..

5. /etc/fstab

1.關(guān)于/sbin/init與/etc/inittab

關(guān)于/sbin/init ,它是一個(gè)二進(jìn)制可執(zhí)行文件,為系統(tǒng)的初始化程序,而/etc/inittab是它的配置文件,我們可以通過/etc/inittab來一睹 它的功能,?里面的內(nèi)容是一種固定的文本格式,id:runlevels:action:process

我們來通過它的內(nèi)容來學(xué)習(xí)它之前,先了解寫運(yùn)行級(jí)別的分類(0-6):

0: 關(guān)機(jī) half

1: 單用戶模式 singel user

2: 多用戶模式 multi user , 不提供nfs服務(wù) without nfs

3: 完全多用戶字符模式 full multiuser text mod

4: 系統(tǒng)預(yù)留 officially undefined

5: 圖形登錄界面 graphical login

6: 重啟 reboot

[html]?view plaincopy
  • id:3:initdefault:?????????????????????????????????//這里定義linux的啟動(dòng)時(shí)的運(yùn)行級(jí)別,可以看到我的主機(jī)的啟動(dòng)級(jí)別是3??
  • #?System?initialization.??
  • si::sysinit:/etc/rc.d/rc.sysinit??????????????????//緊接著,運(yùn)行系統(tǒng)第一個(gè)腳本/etc/rc.d/rc/sysinit??????
  • ??????????????????????????????????????????????????//它的action:sysyinit指的是定義系統(tǒng)初始化過程??
  • l0:0:wait:/etc/rc.d/rc?0????????????????????????????
  • l1:1:wait:/etc/rc.d/rc?1?????????????????????????????
  • l2:2:wait:/etc/rc.d/rc?2?????????????????????????//然后就是加載服務(wù)了,他們被定義在/etc/rc.d/rcN.d??
  • l3:3:wait:/etc/rc.d/rc?3?????????????????????????//action:waite?這個(gè)進(jìn)程在在對(duì)應(yīng)級(jí)別啟動(dòng)一次,知道它結(jié)束為止,我的系統(tǒng)啟動(dòng)級(jí)別為3,所有執(zhí)行rc?3對(duì)應(yīng)的服務(wù)??
  • l4:4:wait:/etc/rc.d/rc?4??
  • l5:5:wait:/etc/rc.d/rc?5??
  • l6:6:wait:/etc/rc.d/rc?6??
  • ????????????????????????????
  • ca::ctrlaltdel:/sbin/shutdown?-t3?-r?now????????//這里定義了一個(gè)組合快捷鍵,熟悉吧,沒錯(cuò)就是重啟,你可以把它注釋掉不用?????
  • pf::powerfail:/sbin/shutdown?-f?-h?+2?"Power?Failure;?System?Shutting?Down"??//這里定義了ups電源,powerfail?指的是如果突然斷電,它對(duì)應(yīng)的process命令是,提示用戶系統(tǒng)電源失效,將要關(guān)機(jī),提醒用戶把數(shù)據(jù)都存儲(chǔ)好??
  • pr:12345:powerokwait:/sbin/shutdown?-c?"Power?Restored;?Shutdown?Cancelled"??//這里的action,powerokwaite,指的是系統(tǒng)恢復(fù)供電,關(guān)機(jī)取消...??
  • ??
  • 1:2345:respawn:/sbin/mingetty?tty1???????????//開啟終端,在系統(tǒng)準(zhǔn)備工作做好后,就會(huì)啟動(dòng)出6個(gè)終端,tty1~6?mingetyy就是終端的執(zhí)行命令??
  • 2:2345:respawn:/sbin/mingetty?tty2???????????//可以看到他們對(duì)應(yīng)的級(jí)別是2345,你也可以注釋掉幾個(gè),這樣啟動(dòng)后,就會(huì)開啟你指定個(gè)數(shù)的終端...???
  • 3:2345:respawn:/sbin/mingetty?tty3???????????//這里的動(dòng)作respawn意思是如果用戶關(guān)閉,那么這個(gè)進(jìn)程會(huì)立刻再次執(zhí)行???
  • 4:2345:respawn:/sbin/mingetty?tty4??
  • 5:2345:respawn:/sbin/mingetty?tty5??
  • 6:2345:respawn:/sbin/mingetty?tty6??
  • x:5:respawn:/etc/X11/prefdm?-nodaemon???????//當(dāng)一切準(zhǔn)備完畢,就會(huì)運(yùn)行守護(hù)進(jìn)程,它是不分運(yùn)行級(jí)別的,同樣也是respawn??
  • 2. 關(guān)于etc/rc.d/rc.sysyinit 和 /etc/rc.d/rc.Nd

    在inittab文件中,我們了解到rc.sysinit是系統(tǒng)運(yùn)行的第一個(gè)腳本,那么它的作用都有哪些呢?如果有shell腳本基礎(chǔ)的話可以用vim打開這個(gè)文件來看看,它有900多行...是linux里最牛的腳本,總結(jié)下它的作用,有如下幾點(diǎn):(一定要牢記,必要時(shí)我們要重寫它!

    1. 激活udev和selinux

    2. 通過讀取/etc/sysct1.conf來設(shè)置內(nèi)核參數(shù)

    3. 設(shè)置系統(tǒng)時(shí)鐘

    4. 設(shè)置鍵盤映射

    5. 啟動(dòng)交換分區(qū)。

    6. 設(shè)置主機(jī)名

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

    8. 激活raid和lvm設(shè)備

    9. 啟動(dòng)磁盤限額

    10 掛載其他/etc/fstab里定義的尚未被掛載的設(shè)備

    11. 清理過時(shí)的文件鎖和PID文件

    12. 啟動(dòng)服務(wù)/etc/rc.d/rcN.d

    /etc/rc.d/rcN.d 是一個(gè)存放了系統(tǒng)啟動(dòng)是加載的服務(wù)的文件夾,通過inittab,我們知道了,它的編號(hào)對(duì)應(yīng)相應(yīng)的啟動(dòng)運(yùn)行級(jí)別。

    需要說明的是,它里面的文件,以我的為例 以K開頭的代表stop,以S開頭的代表啟動(dòng)start,數(shù)字越小,有限級(jí)別越高

    [html]?view plaincopy
  • [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文件

    它定義了系統(tǒng)初始化掛載的設(shè)備,對(duì)系統(tǒng)的啟動(dòng)至關(guān)重要,rc.sysinit通過讀取它來實(shí)現(xiàn)系統(tǒng)分區(qū)的掛載

    它的內(nèi)容如何呢?我們一起來看下

    要掛載的設(shè)備 掛載點(diǎn) 文件系統(tǒng)類型 掛載選項(xiàng) 轉(zhuǎn)儲(chǔ)頻率 文件自檢次序

    [html]?view plaincopy
  • /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個(gè)系統(tǒng)啟動(dòng)時(shí)必須掛載的設(shè)備

    / 根文件目錄,由它你才可以進(jìn)入linux的世界,它在/dev/sda2里

    /boot 啟動(dòng)目錄,在/下,里面有g(shù)rub,initrd和系統(tǒng)內(nèi)核,它在/dev/sda1

    sysfs 一個(gè)虛擬的文件系統(tǒng),產(chǎn)生包含所有硬件層次視圖,和/proc類似

    proc 這是一個(gè)虛擬的目錄,它映射內(nèi)存里的信息對(duì)應(yīng)進(jìn)程信息,也就是說它對(duì)應(yīng)的是內(nèi)存而不是硬盤


    好了,了解了這些文件和目錄的作用,我們?cè)诨剡^頭來看那張流程圖:

    1. linux開機(jī)從POST加電自檢開始,當(dāng)自檢完成,讀取第一個(gè)硬盤的第0個(gè)磁頭里的前446個(gè)字節(jié),運(yùn)行里面的bootloader,linux一般?? 用的是grub。
    2. 通過grub傳遞參數(shù)給內(nèi)核,初始化加載內(nèi)核過程,內(nèi)核調(diào)用initrd(小型內(nèi)存文件系統(tǒng),五臟俱全,是一個(gè)微型linux),通過???? initrd,以只讀方式掛載根文件系統(tǒng)
    3. 當(dāng)根文件系統(tǒng)被掛載后,就會(huì)讀取并運(yùn)行/sbin/init來進(jìn)行初始化工作。
    4. 按次序依次執(zhí)行/rc/sysinit ,這個(gè)時(shí)候會(huì)重新以讀寫的方式掛載根文件系統(tǒng)
    5. 讀取/etc/rc.d/rcN.d/來啟動(dòng)以s開頭的服務(wù),停止以k開頭的服務(wù)

    6. 當(dāng)一切準(zhǔn)備完畢,打印終端,出現(xiàn)熟悉的Login界面!(當(dāng)然,如果你是以5級(jí)別啟動(dòng)的話,Linux就會(huì)啟動(dòng)圖形界~)


    轉(zhuǎn)自:?http://blog.csdn.net/haiwil/article/details/6763673

    總結(jié)

    以上是生活随笔為你收集整理的linux文件系统启动流程 ---笔记整理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。