硬碟為什麼可以分成不同格式的分區?

分區的具體原理是什麼?Linux系統安裝時的分區與windows的分區有什麼區別?


Linux和Windows的分區在原理上沒有區別,只是在格式上有區別。

分區的作用是把一個物理存儲設備分割成多個不同的邏輯存儲設備,對於Windows來說,表現的結果就是不同的盤符,對於Linux來說,就是不同的掛載點。分區不是一個操作系統的概念(Disk partitioning)。

分區是通過在分區表中寫入特定的數據來告訴操作系統這個設備被分割成幾個邏輯存儲區域。分區表有公共的格式(Partition table),只要在分區表中寫入正確的數據,就可以對設備分區。

至於分區內部的格式,這個由各個操作系統自己決定,NTFS/ext/FAT這些都指的是分區內部的數據結構,這個與分區表無關。

分區表格式,分為MBR格式和GPT格式兩種,MBR格式就是利用MBR記錄後邊的64個位元組,來描述磁碟的分區情況。因為MBR分區表裡只能保存4個分區記錄,所以才有了主分區只有4個的限制。而邏輯分區則是把多個分區放到一個擴展分區里,把一個擴展分區拆分成更多的分區,讓一個磁碟能劃分成超過4個的磁碟分區。

因為MBR分區表只有64個位元組,能記錄的數據非常有限,所以已經逐步被GPT格式取代,GPT分區表能保存更多的信息。

具體分區表的格式可以參見:

mbr(主引導記錄(Master Boot Record))

GPT(計算機技術)


在硬碟最早設計的時候,就引入了主引導記錄(MBR)的概念。它相當於硬碟的BIOS代碼,類似於顯卡上的初始化代碼,由BIOS在硬體初始化的時候執行。沒錯,就算你不從硬碟啟動,只要你的硬碟插上了,這塊代碼就必須被執行。

MBR是一段代碼,告訴計算機如何操作這塊硬碟。同時,它包含了一個分區表。這個分區表最多可以容納4個分區。並記錄每個分區的開始地址、結束地址、分區類型,以及是否為可引導分區(最多只能有一個)。

後來,4個分區不夠用了。這時候又出現了一種邏輯分區。

它的方案是:

1 把原來的MBR直接控制的分區,叫做主分區;

2 佔用一個主分區,設立一種分區類型叫做擴展分區;

3 在擴展分區內部,再劃分邏輯分區。

這樣,在支持邏輯分區的系統看來,硬碟上就多了不少分區。在不支持邏輯分區的環境上,硬碟上多了一個不可識別的分區。由於BIOS本身不支持邏輯分區,因此系統引導數據不能裝在邏輯分區上。

——————分割線以上部分,與操作系統無關——————

分區的類型與文件系統的類型並無關係。文件類型FAT16 FAT32 NTFS EXFAT EXT2 EXT3 SWAP什麼的,是可以放在任何分區的。分區操作,在不同系統上沒有本質不同。但是格式化分區的時候,選擇的文件格式可能不同。


給樓上補充個吧

如果不局限於是PC上的Linux的分區表的話,分區表不一定是存在存儲介質自身上的


硬碟類似一個大衣櫃,能存多少資源是物理決定的。分區類似於給衣櫃分格子,所以怎麼分都可以,但分太細了就不能存大物件。windows是分區,常見的ntfs,fat32之類的,linux講的是掛在點,所有資源都是文件,常見的格式ext4等


推薦閱讀:

ISO9001 質量管理體系如何學習理解?
為什麼電腦文件保存命名的時候不能用特殊符號,例如"/"?
ext2 和 FAT 文件系統在文件讀取和處理上,效率差別是怎樣的?產生差異的原因是因為本身的架構差別還是處理機制的不同?
新建文件夾需要佔用硬碟空間嗎?路徑長度有沒有限制?
為什麼單個大文件比總體積相同的多個小文件複製起來要快很多?

TAG:Linux | 計算機 | 硬體 | 文件系統 | 電腦硬體 |