磁盤
-
磁盤必須先能被識別,其次是分區,然后再格式化寫入文件系統,最后才能被讀寫,寫入和讀取文件.
- 扇區,磁道,磁柱.扇區的最小單位為4KB或512B,磁柱是N個磁面相同半徑磁道的累加,磁柱是分區的最小單位.
- 分區有兩種方式,MBR(MSDOS)和GUID 分區是以磁柱為基本單位的連續磁盤空間.分區可以隔離數據,保證數據獨立和安全,分區可以提升效能,將同一文件集中存放在相鄰的磁道,助於效能提升.
- 不同的分區方式,對系統啟動有着一定的影響.此處區分GPT和MBR方式.
- 磁盤是有個別扇區不在文件系統之內的,這個扇區叫做MBR或LBA(0-33).在MBR分區方式下,MBR不在文件系統之內,在GPT分區方式下,有34*2個扇區不在磁盤的文件系統之內.這些不在文件系統的扇區用於存儲磁盤的啟動信息.
- 每個分區都有自己的boot sector,該boot sector存儲操作系統的boot loader,這個boot loader是安裝操作系統時安裝進去的.
MBR
- 舊時硬盤第一個扇區通常有512字節byte,在MBR方式下,其中的446B是MBR(major boot record),內容是開機管理程序;還有64B是分區表(partition table),分區表最多支持4個記錄,每個記錄 是該分區的起始和結束磁柱號.分區的操作其實就是對64B的分區表進行操作,系統寫入磁盤時,肯定會根據分區表來決定寫入的磁柱位置.
- 分區表的四項決定只能最多有4個主分區,此外,為了增加分區個數,提出了擴展分區的概念,擴展分區最多只能有1個,在擴展分區內可以增加邏輯分區,邏輯分區的編號是從5開始的,不管前面有幾個分區,邏輯分區的編號從5開始,
- 邏輯分區的分區表在每個分區表的前幾個扇區內
GPT(GUID Parted table)
- 發展成了4K的扇區,但是為了避免兼容問題,提出了邏輯區塊地址LBA(logical block address)的概念,每個LBA預設為512byte.GPT使用磁盤最早的34個LBA塊來記錄分區信息.此外,還用磁盤最后的34個GPT做了備份
- LBA0存儲的是開機程序+GPT標識,這個標識告訴系統這是一個GPT硬盤
- LBA1(GPT表頭記錄)記錄了GPT的分區表的位置大小,備份分區表(最后34個LBA)的位置
-
從LBA2開始,每個LBA都有4個分區記錄項,整個磁盤共有4*32個分區記錄項,每個記錄項可作為一個分區,共有4乘32個分區.由於每個LBA是512byte,每個分區記錄項分到128byte,每個記錄項的128byte中,有64bit位記錄了該分區的起始扇區地址,,因此一個分區可以有2的64次方個扇區,每個扇區是512byte,那么每個分區大小可達2的64次方乘以512byte.
- fdisk不認識GPT,grub不認識GPT,只有grub2才認識.