首頁 > linux教程 > Linux文件系統管理 閱讀:0更新時間:2020-03-28 01:00:31

Linux系統是如何識別硬盤設備和硬盤分區的?

linux 系統初始化時,會根據 MBR 來識別硬盤設備。

MBR,全稱 Master Boot Record,可譯為硬盤主引導記錄,占據硬盤 0 磁道的第一個扇區。MBR 中,包括用來載入操作系統的可執行代碼,實際上,此可執行代碼就是 MBR 中前 446 個字節的 boot loader 程序(引導加載程序),而在 boot loader 程序之后的 64 個(16×4)字節的空間,就是存儲的分區表(Partition table)相關信息。如圖 1 所示。
MBR結構示意圖
圖 1 MBR結構示意圖
在分區表(Partition table)中,主要存儲的值息包括分區號(Partition id)、分區的起始磁柱和分區的磁柱數量。所以 Linux 操作系統在初始化時就可以根據分區表中以上 3 種信息來識別硬盤設備。其中,常見的分區號如下:

  • 0x5(或 0xf):可擴展分區(Extended partition)。

  • 0x82:Linux 交換區(Swap partition)。

  • 0x83:普通 Linux 分區(Linux partition)。

  • 0x8e:Linux 邏輯卷管理分區(Linux LVM partition)。

  • 0xfd:Linux 的 RAID 分區(Linux RAID auto partition)。


由于 MBR 留給分區表的磁盤空間只有 64 個字節,而每個分區表的大小為 16 個字節,所以在一個硬盤上最多可以劃分出 4 個主分區。如果想要在一個硬盤上劃分出 4 個以上的分區時,可以通過在硬盤上先劃分出一個可擴展分區的方法來增加額外的分區。

不過,在 Linux 的 Kernel 中所支持的分區數量有如下限制:

  • 一個 IDE 的硬盤最多可以使用 63 個分區;

  • 一個 SCSI 的硬盤最多可以使用 15 個分區。


接下來的問題,就是為什么要將一個硬盤劃分成多個分區,而不是直接使用整個硬盤呢?其主要有如下原因:

  1. 方便管理和控制
    首先,可以將系統中的數據(也包括程序)按不同的應用分成幾類,之后將這些不同類型的數據分別存放在不同的磁盤分區中。由于在每個分區上存放的都是類似的數據或程序,這樣管理和維護就簡單多了。

  2. 提高系統的效率
    給硬盤分區,可以直接縮短系統讀寫磁盤時磁頭移動的距離,也就是說,縮小了磁頭搜尋的范圍;反之,如果不使用分區,每次在硬盤上搜尋信息時可能要搜尋整個硬盤,所以速度會很慢。另外,硬盤分區也可以減輕碎片(文件不連續存放)所造成的系統效率下降的問題。

  3. 使用磁盤配額的功能限制用戶使用的磁盤量
    由于限制用戶使用磁盤配額的功能,只能在分區一級上使用,所以,為了限制用戶使用磁盤的總量,防止用戶浪費磁盤空間(甚至將磁盤空間耗光),最好將磁盤先分區,然后在分配給一般用戶。

  4. 便于備份和恢復
    硬盤分區后,就可以只對所需的分區進行備份和恢復操作,這樣的話,備份和恢復的數據量會大大地下降,而且也更簡單和方便。

beylze編程學院,一個分享編程知識和seo優化知識的網站。跟著beylze一起學習,每天都有進步。

通俗易懂,深入淺出,一篇文章只講一個知識點。

文章不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以閱讀,隨時隨地漲姿勢。

文章不涉及代碼,不燒腦細胞,人人都可以學習。

當你決定關注beylze(公眾號:beylze),你已然超越了90%的其他從業者!

相關文章

優秀教程

国产亚洲欧美日韩