萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 主分區與邏輯分區關係深度解析:MBR 限制、啟動流程、GRUB 破解 446 位元組瓶頸

主分區與擴展/邏輯分區的本質差異在於 BIOS/MBR 啟動架構的物理限制。MBR 僅 512 位元組,扣除分區表 64 位元組、結束標誌 2 位元組,僅餘 446 位元組給啟動程式碼,無法直接讀取位於資料區的邏輯分區表。GRUB 利用 MBR 後續扇區 (約 8KB) 儲存核心模組,突破容量限制,實現從邏輯分區啟動。

MBR 結構與 446 位元組瓶頸

  • MBR = 446 bytes 啟動程式碼 + 64 bytes 分區表 (4×16) + 2 bytes 0x55AA。
  • 446 位元組只能容納極簡單的啟動載入器 (Stage 1),功能極受限:
    — 無法解析複雜檔案系統 (ext4, xfs, btrfs, ntfs)。
    — 無法跨越磁柱群組尋找邏輯分區表 (EBR 鏈結串列)。
    — 無法載入核心模組、驅動程式、initramfs。

主分區 vs 擴展/邏輯分區

特性主分區擴展分區/邏輯分區
數量上限4 個 (受限於 MBR 分區表 4 條目)擴展分區佔 1 條目,內含無限邏輯分區 (受限於磁碟空間)
分區表位置MBR 固定位置 (0x1BE-0x1FD)EBR (Extended Boot Record) 鏈結串列分散在擴展分區內
啟動能力BIOS 直接讀取 MBR → 啟動程式碼 → 載入作業系統標準 MBR 程式碼無法直接啟動,需進階載入器 (GRUB) 支援
Windows 安裝強制要求系統分區為主分區 (C:)不可直接安裝系統啟動分區
Linux 安裝可安裝 /boot 或 /GRUB 可安裝於 MBR+後續扇區,支援從邏輯分區啟動 /

GRUB 如何破解限制

  1. Stage 1 (MBR 446 bytes):僅載入 Stage 1.5 (core.img) 的磁區位置 (LBA 位址)。
  2. Stage 1.5 (MBR 後續扇區,~8KB~32KB):包含檔案系統驅動 (ext2/3/4, xfs, btrfs, fat, ntfs 等),能理解 /boot 分區結構。
  3. Stage 2 (/boot/grub/):完整功能載入器,讀取 grub.cfg、載入核心與 initramfs、呈現選單。

這三階段設計讓 GRUB 不受 MBR 446 位元組限制,可從任何分區 (主/邏輯、RAID、LVM、加密) 啟動 Linux。

現代 UEFI/GPT 環境

  • GPT 無分區數量限制 (預設 128 條目),無主/邏輯之分。
  • UEFI 固體直接讀取 EFI 系統分區 (ESP, FAT32) 中的 EFI/BOOT/BOOTX64.EFI 或發行版專用載入器。
  • GRUB2 作為 EFI 應用程式安裝於 ESP,完全繞過 MBR 限制。

結論

主/邏輯分區區別本質是 MBR 啟動架構的歷史包袱。BIOS/MBR 時代,Windows 必須用主分區啟動;Linux 憑藉 GRUB 多階段載入器突破限制。UEFI/GPT 時代,此區別已成歷史,新部署建議全盤 GPT + UEFI。

copyright © 萬盛學電腦網 all rights reserved