linux系统引导分区,揭秘Linux(二)——操作系统引导与硬盘分区
通過前面的介紹想必大家對(duì)Linux有了個(gè)基礎(chǔ)的了解,那么各位肯定該說是不是要裝操作系統(tǒng)了,對(duì)不起讓各位失望了,這次所講解的是Linux運(yùn)行原理與硬盤分區(qū),這是重中之重啊!請(qǐng)一定要細(xì)細(xì)品讀。
為了更好地了解Linux系統(tǒng)的運(yùn)行原理,我們非常有必要的了解下系統(tǒng)啟動(dòng)的流程。
在按開機(jī)電源后,會(huì)聽到機(jī)箱內(nèi)發(fā)出“滴”的一聲,接著屏幕上開始打印出一些字符,然后開始顯示出圖形界面,最后屏幕上會(huì)顯示需要輸入用戶名、密碼的登錄界面。這是我們用戶所能感到的,關(guān)句話說是看得見摸得著的,實(shí)際上計(jì)算機(jī)是如何啟動(dòng)到登錄界面的呢?
其實(shí),不管是Linux還是Windows,從用戶感官上的體驗(yàn)而言,順序都是基本相同的。
首先,計(jì)算機(jī)會(huì)加載BIOS,這是計(jì)算機(jī)上最接近硬件的軟件,各家主板制造商都會(huì)開發(fā)適合自己主板的BIOS,而BIOS中一項(xiàng)很重要的功能就是對(duì)自身的硬件做一次“體檢”,只有硬件沒有問題,才能運(yùn)行軟件,這種通電后開始的“體檢”的過程被稱為“加電自檢”,如果所有的硬件自檢通過,一般都會(huì)發(fā)出一次“滴”的短聲提示,說明硬件一切正常。
而如果有問題呢?當(dāng)硬件真的出現(xiàn)了問題無法通過BIOS的“體檢”將采用報(bào)警機(jī)制,這就是我們?cè)趥€(gè)人計(jì)算機(jī)(PC機(jī))中常見的長長短短的滴滴聲。在發(fā)生報(bào)警的同時(shí)屏幕打印出大致的什么問題。
機(jī)器自檢通過后,下面就要引導(dǎo)系統(tǒng)了。這個(gè)動(dòng)作是BIOS設(shè)定的,BIOS默認(rèn)會(huì)從硬盤上的第0柱面、第0磁道、第一個(gè)扇區(qū)中讀取被稱為MBR(即主引導(dǎo)記錄)的東西,即主引導(dǎo)記錄。一個(gè)扇區(qū)的大小是512字節(jié),存放的內(nèi)容是一段引導(dǎo)程序和分區(qū)信息,其中引導(dǎo)程序部分占用446字節(jié),另外64字節(jié)是磁盤分區(qū)表DPT,最后兩字節(jié)是MBR的結(jié)束位。這512字節(jié)的空間內(nèi)容 是由專門的分區(qū)程序產(chǎn)生的,比如說Windows下的fdisk,或者Linux下的fdisk命令,所以它不依賴于任何操作系統(tǒng),而MBR中的引導(dǎo)程序也是可以修改的,所以可以利用這個(gè)特性實(shí)現(xiàn)多操作系統(tǒng)共存。由于RedHat、CentOS默認(rèn)會(huì)使用Grub作為其引導(dǎo)操作系統(tǒng)的程序,而Grub本身又比較大,所以常見的方式是在MBR中寫入Grub的地址,這樣系統(tǒng)實(shí)際會(huì)載入Grub作為操作系統(tǒng)的引導(dǎo)程序。
經(jīng)過了上面的步驟,第三步就是順理成章地運(yùn)行Grub了。Grub最重要的功能就是根據(jù)其配置文件加載kernel(內(nèi)核)鏡像,并運(yùn)行內(nèi)核加載后的第一個(gè)程序/sbin/init,這個(gè)程序會(huì)根據(jù)/etc/inittab來進(jìn)行初始化的工作。其實(shí)這里最重要的就是根據(jù)文件中設(shè)定的值來確定系統(tǒng)將會(huì)運(yùn)行的runlevel(運(yùn)行級(jí)就是操作系統(tǒng)當(dāng)前正在運(yùn)行的功能級(jí)別),默認(rèn)的runlevel定義在“id:3:initdefault:”中,其中的數(shù)字3說明目前的運(yùn)行級(jí)別定義為3
第四步,Linux將根據(jù)/etc/inittab中定義的系統(tǒng)初始化配置si::sysinit:/etc/rc.d/rc.sysinit執(zhí)行/etc/rc.sysinit腳本,該腳本將會(huì)設(shè)置系統(tǒng)變量、網(wǎng)絡(luò)配置,并啟動(dòng)swap、設(shè)定/proc、加載用戶自定義模塊、加載內(nèi)核設(shè)置等。
第五步是根據(jù)第三步讀到的runlevel值來啟動(dòng)對(duì)應(yīng)的服務(wù),如果值為3,就會(huì)運(yùn)行/etc/rc3.d/下的所有腳本,如果值為5,就會(huì)運(yùn)行/etc/rc5.d/下的所有腳本。
第六步將運(yùn)行/etc/rc.local。
第七步會(huì)生成終端或X?Window來等待用戶登錄。
可以簡單總結(jié)成如下圖所示
經(jīng)過上述的一系列操作,用戶就可以來到登錄的界面,在輸入用戶名密碼后就可登錄到系統(tǒng)。
接下來我們說說Linux操作系統(tǒng)的runlevel,Linux的運(yùn)行級(jí)別分為七個(gè)級(jí)別。分別用阿拉伯?dāng)?shù)組0~6來代替。
運(yùn)行級(jí)別0:系統(tǒng)停機(jī)狀態(tài),系統(tǒng)默認(rèn)運(yùn)行級(jí)別不能設(shè)為0,否則不能正常啟動(dòng)運(yùn)行級(jí)別1:單用戶工作狀態(tài),root權(quán)限,用于系統(tǒng)維護(hù),禁止遠(yuǎn)程登陸運(yùn)行級(jí)別2:多用戶狀態(tài)(沒有NFS)運(yùn)行級(jí)別3:完全的多用戶狀態(tài)(有NFS),登陸后進(jìn)入控制臺(tái)命令行模式運(yùn)行級(jí)別4:系統(tǒng)未使用,保留運(yùn)行級(jí)別5:X11控制臺(tái),登陸后進(jìn)入圖形GUI模式運(yùn)行級(jí)別6:系統(tǒng)正常關(guān)閉并重啟,默認(rèn)運(yùn)行級(jí)別不能設(shè)為6,否則不能正常啟動(dòng)
這七個(gè)運(yùn)行級(jí)別中常用的有0、1、3,運(yùn)行級(jí)別0可將操作系統(tǒng)快速關(guān)機(jī),一般在需要馬上關(guān)機(jī),不計(jì)較數(shù)據(jù)丟失時(shí)可以使用(命令init 0)。運(yùn)行級(jí)別1是單用戶模式,常用在root密碼忘記時(shí)可登錄運(yùn)行級(jí)別1上修改密碼,另外還要說的是進(jìn)入運(yùn)行級(jí)別1不需要root密碼就可以使用root權(quán)限,而運(yùn)行級(jí)別3可以說是在日常中使用最廣泛的一個(gè)運(yùn)行級(jí)別,就是我們常說的命令行模式。
說完操作系統(tǒng)的啟動(dòng)流程,接下來就說說系統(tǒng)分區(qū)吧!
Linux跟windows在分區(qū)時(shí)最大的區(qū)別就是windows可以將硬盤分成很多個(gè)分區(qū),但我們常用的是分為“四”個(gè)分區(qū),為什么要將四引起來那,是因?yàn)檎嬲谟脖P的角度說是“三”個(gè)分區(qū),說到這很多人要犯迷糊了,你這有是四個(gè)分區(qū)又是兩個(gè)分區(qū)到底說的是什么啊?
所謂分區(qū)其實(shí)就是對(duì)硬盤的一種格式化方式,在硬盤上分區(qū)基本上有三種形式:主分區(qū)、擴(kuò)展分區(qū)、邏輯分區(qū)。
主分區(qū):一個(gè)硬盤的也就是包含啟動(dòng)所必需的文件和數(shù)據(jù)的,要在硬盤上安裝,則該硬盤必須得有一個(gè)。你可以理解為windows的C盤。一塊硬盤主分區(qū)只能有4個(gè)。
:也就是除主分區(qū)外的分區(qū),但它不能直接使用,必須再將它劃分為若干個(gè)才行。
也就是我們平常在中所看到的D、E、F等盤。
說完分區(qū)再來說說分區(qū)格式,在windows中常用的分區(qū)格式是NTFS。
Linux中的分區(qū)格式ext4以及卷標(biāo)等。
簡單介紹完什么是分區(qū)及分區(qū)的種類和格式之后,我們來看看Linux的分區(qū)。
這個(gè)是我的一臺(tái)實(shí)驗(yàn)機(jī)的分區(qū)列表,從最后一列可以看出分了三個(gè)區(qū)分別是/、/dev/shm、/boot。
/是根目錄,幾乎所有的文檔和目錄都掛載在/之下。
/boot可以理解為系統(tǒng)目錄,相當(dāng)于windows中的Program Files。
/dev/shm將在以后講解。
那么到現(xiàn)在為止我們應(yīng)該知道了Linux的啟動(dòng)流程、硬盤都有那幾種分區(qū)形式、以及硬盤分區(qū)的格式。這些都是在真正學(xué)習(xí)Linux之前要掌握的基礎(chǔ)知識(shí),不明白讀不懂沒關(guān)心,在今后的文章中還會(huì)再次提到。
今天就到這里吧!
總結(jié)
以上是生活随笔為你收集整理的linux系统引导分区,揭秘Linux(二)——操作系统引导与硬盘分区的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux qt应用程序全屏,QT在ub
- 下一篇: Linux的open函数的调用过程,Li