linux磁盘第一个扇区分析,Linux磁盘分区
一、磁盤連接方式與設(shè)備文件名的關(guān)系
計算機(jī)常見的磁盤接口有兩種,分別是IDE與SATA接口,目前主流接口已經(jīng)是SATA接口了。
一個IDE扁平電纜可以連接兩個IDE設(shè)備,通常主機(jī)又都會提供兩個IDE接口,因此最多可以接到四個IDE設(shè)備。也就是說,如果已經(jīng)有了一個光盤設(shè)備了,那么最多就只能再接三塊IDE接口的磁盤。這兩個IDE接口通常被稱為IDE1(primary)和IDE2(secondary),而每條扁平電纜上的IDE設(shè)備可以被區(qū)分為Master(主設(shè)備)和Slave(從設(shè)備)。
IDE/Jumper
Master
Slave
IDE1(Primary)
/dev/hda
/dev/hdb
IDE2(Secondary)
/dev/hdc
/dev/hdd
再說SATA接口,由于SATA/USB/SCSI等磁盤接口都是使用SCSI模塊來驅(qū)動的,因此這些接口的磁盤設(shè)備文件名都是/dev/sd[a-p]的格式。但是與IDE接口不同的是,SATA/USB接口的磁盤根本就沒有一定的順序,要根據(jù)LInux內(nèi)核檢測到的磁盤的順序來決定它的設(shè)備文件名。例如:
如果PC上面有兩個SATA磁盤以及一個USB磁盤,而主板上有留個SATA插槽。這兩個SATA磁盤分別安插在主板上的SATA1和SATA5插槽上。由于是使用檢測到的順序來決定設(shè)備文件名,并非與實(shí)際插槽代號有關(guān),因此設(shè)別文件名如下:
SATA1插槽上的文件名:/dev/sda
SATA5插槽上的文件名:/dev/sdb
USB磁盤(開機(jī)完成后才被系統(tǒng)識別):/dev/sdc 二、磁盤的第一個扇區(qū)
盤片上可細(xì)分出扇區(qū)與柱面兩種單位,其中每個扇區(qū)的大小為512bytes。磁盤的第一個扇區(qū)特別重要,因?yàn)樗涗浟苏麎K磁盤的重要信息。磁盤的第一個扇區(qū)主要記錄了兩個重要信息,分別是
主引導(dǎo)分區(qū)(Master Boot Record,MBR):可以安裝引導(dǎo)假造程序的地方,有446bytes.
分區(qū)表(partition table):記錄整塊磁盤分區(qū)的狀態(tài),有64bytes. MBR是很重要的,因?yàn)楫?dāng)系統(tǒng)在開機(jī)的時候會主動去讀取這個區(qū)塊的內(nèi)容,這樣系統(tǒng)才會知道程序放在那里并且該如何進(jìn)行開機(jī)。
三、磁盤分區(qū)表
在分區(qū)表所在的64bytes容量中,總共分為四組記錄區(qū),每組記錄區(qū)記錄了該區(qū)段的啟示與結(jié)束。假設(shè)硬盤設(shè)備文件名為/dev/hda,那么這這個分區(qū)在linux系統(tǒng)中的設(shè)備文件名分別為:/dev/hda1,/dev/hda2,/dev/hda3,/dev/hda4.當(dāng)操作系統(tǒng)為Windows時,那么第一個到第四個分區(qū)的代號應(yīng)該就是C,D,E,F。由于分區(qū)表就只有64bytes而已,最多只能容納四個分區(qū),這四個分區(qū)被稱為主(Primary)或擴(kuò)展(Extend)分區(qū)。
所謂的“分區(qū)”只是針對哪個64bytes的分區(qū)表進(jìn)行設(shè)置而已
硬盤默認(rèn)的分區(qū)表僅能寫入四組分區(qū)信息
這四組分區(qū)信息稱為主或擴(kuò)展分區(qū)
分區(qū)的最小單位為柱面 分區(qū)表只有記錄四組數(shù)據(jù)的空間,并不意味著一塊磁盤最多只能分區(qū)出四個分區(qū)。可以利用額外的扇區(qū)來記錄更多的分區(qū)信息。擴(kuò)展分區(qū)的目的是使用額外的扇區(qū)來記錄分區(qū)信息,擴(kuò)展分區(qū)本身并不能被拿來格式化。hda1-hda4前面四個號碼都是保留給主或擴(kuò)展分區(qū)用的,所以邏輯分區(qū)的設(shè)備名稱號就只能從5號開始。
主分區(qū)和擴(kuò)展分區(qū)最多可以有四個(硬盤限制)
擴(kuò)展分區(qū)最多只能有一個(操作系統(tǒng)限制)
邏輯分區(qū)是由擴(kuò)展分區(qū)持續(xù)切割出來的分區(qū)
能夠被格式化后作為數(shù)據(jù)訪問的分區(qū)為主分區(qū)與邏輯分區(qū)。擴(kuò)展分區(qū)無法被格式化
邏輯分區(qū)的數(shù)量由操作系統(tǒng)決定。Linux系統(tǒng)中,IDE硬盤做多有59個邏輯分區(qū)(5號-63號),SATA硬盤則有11個邏輯分區(qū)(5號-15號) 四、開機(jī)流程與主引導(dǎo)分區(qū)(MBR)
開機(jī)涉及到CMOS與BIOS,CMOS是記錄各項(xiàng)硬件且嵌入在主板上面的存儲器,BIOS則是一個寫入到主板的韌體(韌體就是寫入到硬件上的一個軟件程序)。BIOS就是在開機(jī)的時候計算機(jī)系統(tǒng)會主動執(zhí)行的第一個程序。BIOS會去分析計算機(jī)里面有哪些存儲設(shè)備,以硬盤為例,BIOS會一句用戶的設(shè)置去取得能夠開機(jī)的硬盤,并且到該硬盤里面去讀取第一個扇區(qū)的MBR位置。MBR這個僅有446bytes的硬盤容量里面會放置最近本的引導(dǎo)加載程序,此后就是MBR內(nèi)的引導(dǎo)加載程序的工作了。
引導(dǎo)加載程序的目的是加載內(nèi)核文件,由于引導(dǎo)加載程序是操作系統(tǒng)在安裝的時候所提供的,所以它會識別硬盤里的文件系統(tǒng)格式,因此就能夠讀取內(nèi)核文件,再接下來就是內(nèi)核文件的工作。
BIOS->MBR->引導(dǎo)加載程序(Boot loader)->內(nèi)核文件。這就是開機(jī)流程了。
BIOS和MBR都是硬件本身會支持的功能,Boot loader則是操作系統(tǒng)安裝在MBR上面的一套軟件,MBR一共才446bytes,所以boot loader非常小,它的主要任務(wù)是:
提供菜單:用戶可以選擇不同的開機(jī)選項(xiàng),這也是多重引導(dǎo)的功能
載入內(nèi)核文件:直接指向可開機(jī)的程序區(qū)段來開始操作系統(tǒng)
轉(zhuǎn)交其他loader:將引導(dǎo)加載功能轉(zhuǎn)交給其他loader負(fù)責(zé) 引導(dǎo)加載程序除了可以安裝在MBR之外,還可以安裝在每個分區(qū)的引導(dǎo)扇區(qū)(boot sector)。多系統(tǒng)的根據(jù)可以說就在這里。如果想要安裝多重引導(dǎo),最好先安裝windows再安裝linux。因?yàn)?#xff1a;
Linux在安裝的時候,可以選擇將引導(dǎo)家在程序安裝在MBR或個別分區(qū)的啟動扇區(qū),而且Linux的loader可以手動設(shè)置菜單,所以可以再Linux的boot loader里面加如windows的開機(jī)選項(xiàng)
Windows在安裝的時候,它的安裝程序會主動覆蓋掉MBR以及自己所在分區(qū)的啟動扇區(qū),沒有選擇的機(jī)會,而且它沒有讓用戶自己選擇菜單的功能。 五、Linux磁盤分區(qū)的選擇
整個Linux最重要的地方就是在于目錄樹結(jié)構(gòu),以根目錄為主,然后向下呈現(xiàn)分支狀的目錄結(jié)構(gòu)的一種文件結(jié)構(gòu)。使用掛載(mount)結(jié)合目錄樹結(jié)構(gòu)域磁盤內(nèi)的數(shù)據(jù)。所謂掛載就是利用一個目錄當(dāng)成進(jìn)入點(diǎn),將磁盤分區(qū)的數(shù)據(jù)放置在該目錄下;也就是說,進(jìn)入該目錄就可以讀取該分區(qū)的意思。
所以開始分區(qū)的時候,只要分出根目錄“/"和”Swap"即可,swap最好為物理內(nèi)存的1.5-2倍之間。
總結(jié)
以上是生活随笔為你收集整理的linux磁盘第一个扇区分析,Linux磁盘分区的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 嵌入式开发linux工具,嵌入式Linu
- 下一篇: linux命令行设置编码,编码样式-Li