電腦知識:磁盤分區相關知識筆記!


磁盤的分區

裝過系統的人都知道必須要分區後才能安裝系統,形象點的說比如windows裏C:、D:之類的東西;如果你要問硬盤爲什麼要分區,我也說不上來很嚴格的原因,首先從使用習慣上來講,我們不希望數據雜亂無章堆積在一起,其次,如果不分區,如何才能在一塊硬盤上使用不同的文件系統(下面講到)呢,學院派的說法是:數據安全和性能考慮。

先要說硬盤中最最重要的第一扇區,因爲整塊硬盤的重要信息都在這裏:

MBR(Master Boot Record 主啓動記錄):開機引導程序就在安裝在此,佔用446byte

  

DPT(Disk Partition table 硬盤分區表):記錄硬盤上的分區元信息,佔用64byte


MBR是如何工作的呢,不用深究,反正就是系統開始時會主動讀取數據的地方,這樣才能引導進行操作系統的啓動;DPT要仔細的講講,分區的大致意思就如同搶地盤,不過人家比較規矩,按照柱面(最小的分區單位)分配,比如第一個分區從柱面1-200,第二個分區201-500,但三個分區501-1000...(省略並非可以無限分配下去哦)


圖1

    

圖2

 

爲啥說不能一直分配下去呢,技術柱面數量足夠,因爲上面說到硬盤分區表只有64個字節,每條分區記錄需要佔用16字節,最多隻能分4個。疑問在此:我的電腦怎麼分了5個(c\d\e\f\g)?

  

其實我說的4個分區是所謂的主分區,爲了能支持很多分區引入了擴展分區的概念, 也就是說,可以使用DPT中一條記錄來記錄擴展分區的信息,然後在擴展分區中再繼續劃分邏輯分區,而邏輯分區的分區信息則記錄在擴展分區的第一個扇區中,如此則可以像鏈表一樣劃分出很多分區來。但注意,一個分區表中可以有1~4條主分區,但是最多隻能有1個擴展分區。

    

圖3

    

圖4

 

分區表之間是如何關聯的,詳細講一下,分區表是一個單向鏈表,第一個分區表,也就是位於硬盤第一個扇區中的DPT,可以有一項記錄擴展分區的起始位置柱面,類似於指針的概念,指向擴展分區(圖3),根據這項記錄我們可以找到擴展分區的某柱面0磁頭1扇區(CHS),而這個扇區中又存放了第二個分區表,第二個分區表第一項記錄一般表述了當前所在的邏輯分區的起始/終止柱面,第二項記錄表述了下一個邏輯分區所在的0磁頭1扇區(CHS),第三、第四項記錄不存任何信息(圖4)。


請看下圖,主引導記錄/分區表所在的是硬盤第一個分區,基本分區1、基本分2、基本分區3都是主分區、擴展分區內有2個邏輯分區,每個邏輯分區的第一個扇區都是分區表。


分區後的系統啓動

之前提到MBR中安裝的引導加載程序,他的作用是什麼?

① 提供開機菜單選項:可以供用戶選擇啓動哪個操作系統,這是多重引導功能。

② 加載操作系統內核:每個操作系統都有自己的內核,需要引導程序來加載 

③ 轉交給其他引導程序:可以將工作移交給其他引導程序來進行上述操作。

其實引導加載程序除了可以安裝在MBR中,還可以直接安裝在每個分區的引導扇區(DBR)中,注意下,每個分區(主分區、邏輯分區)都有一個自己的啓動扇區,專門用來安裝引導加載程序,如上圖左邊“圖表3分區結構”。



系統啓動過程


① 首先,BIOS啓動後,讀取硬盤第一個扇區MBR中的引導加載程序(可能是windows或者linux的grub) 

② MBR中的引導程序提供開機菜單,你可以選擇1)直接加載windows 內核 2)將工作轉交給windows 分區內的引導扇區中的加載程序,讓他自己去加載內核 3)轉交給linux分區內引導扇區,讓他去加載linux. 

③ 根據用戶選擇的選項和引導加載程序中記錄的分區,到分區表找對應的分區柱面號等分區信息,啓動內核或者分區加載程序。

Window安裝時默認會自動將MBR和windows所在分區的引導扇區都裝上引導程序,而不會提供任何選項給用戶選擇,因此如果之前裝過其他操作系統,然後再另外裝一個windows時,會把公用的MBR覆蓋掉,如此,原來的操作系統就無法啓動了。

如果先裝windows,然後裝linux,linux 會覆蓋MBR,然後讓用戶選擇是否將windows等其他操作系統的啓動項添加進來,如果你選擇了添加進來,那麼你在開機時就會有兩個選項讓用戶進行選擇了。


文件系統

文件系統也是很大很複雜的話題,我們仍然以比較通俗、粗顆粒度來講解,試想一下,我們的文件如何對應到磁盤的扇區上呢,所以光有底層的概念 磁道 扇區是沒有用的,需要更加抽象的數據類型或結構來抽象底層的細節。


文件系統是一套實現了數據的存儲、分級組織、訪問和獲取等操作的抽象數據類型(Abstract data type)。文件系統是一種用於向用戶提供底層數據訪問的機制。它將設備中的空間劃分爲特定大小的塊(扇區),一般每塊512字節。


數據存儲在這些塊中,大小被修正爲佔用整數個塊。由文件系統軟件來負責將這些塊組織爲文件和目錄,並記錄哪些塊被分配給了哪個文件,以及哪些塊沒有被使用。


不過,文件系統並不一定只在特定存儲設備上出現。它是數據的組織者和提供者,至於它的底層,可以是磁盤,也可以是其它動態生成數據的設備(比如網絡設備)。


IT技術分享社區


個人博客網站:https://programmerblog.xyz


文章推薦 程序員效率:畫流程圖常用的工具 程序員效率:整理常用的在線筆記軟件 遠程辦公:常用的遠程協助軟件,你都知道嗎? 51單片機程序下載、ISP及串口基礎知識 硬件:斷路器、接觸器、繼電器基礎知識






本文分享自微信公衆號 - IT技術分享社區(gh_a27c0758eb03)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

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