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