磁碟區開機記錄 (VBR):結構、位置與開機流程

磁碟區開機記錄 (VBR) 的結構、位置與開機過程

A 磁碟區開機記錄 (VBR) 是一種儲存於檔案系統卷首的開機相關資料結構。它包含描述該卷佈局的資訊,也可能包含在傳統開機過程中使用的開機引導程式碼。雖然 VBR 通常與分區的第一個磁區相關聯,但其確切結構與作用取決於檔案系統及開機架構。.

這項區別之所以重要,是因為 VBR 與 MBR 並不相同,而且現代基於 UEFI 的 Windows 系統在啟動時,通常不會執行傳統的 VBR 引導程式碼。.

目錄

什麼是磁區開機記錄(Volume Boot Record)?

A 磁碟區開機記錄 這是磁區與初始開機相關的結構。它通常也被稱為「磁區開機扇區」,或在許多個人電腦儲存情境中,稱為「分割區開機記錄」(PBR)。.

VBR 具有兩項相關的功能:

  • 卷次識別與說明: 它儲存有助於軟體解析檔案系統的參數,例如磁區大小、簇大小、卷長度,以及特定於檔案系統的元資料位置。.
  • Bootstrap 支援: 視檔案系統與開機環境而定,該檔案可能包含可執行程式碼,用以將控制權移交給作業系統開機流程的下一階段。.

其確切內容並非通用的。FAT32 啟動區、NTFS 啟動區以及 exFAT 主啟動區,各自對其所屬的磁區描述方式皆不盡相同。.

舉例來說,FAT32 的開機區包含一個 BIOS 參數區塊(BPB),而 exFAT 的開機區則使用諸如 卷長, FatOffset, 以及 ClusterHeapOffset. 這些結構雖有相似的用途,但並不能互換使用。.

VBR、磁碟開機扇區(Volume Boot Sector)及分割區開機記錄(Partition Boot Record)

相關術語 磁碟區開機記錄, 磁碟區開機區段, 以及 分割區開機記錄 雖然不同技術來源的術語有所差異,但這兩者常被互換使用。.

一個有用的區分是:

  • 磁碟區開機區: 通常指檔案系統卷的第一个扇區。.
  • 磁碟區開機記錄: 通常指儲存在該磁區開頭的與開機相關的結構。某些檔案系統會定義一個較大的開機區域,而非單一磁區的結構。.
  • 分割區開機記錄: 通常指分區開頭處的開機扇區。.

在傳統的基本磁碟上,若某個分割區直接包含一個從相同位址開始的磁區,則 PBR 與 VBR 通常所指的都是同一個磁區。.

然而,這兩個術語所描述的儲存概念並不相同。分割區定義的是磁碟上的某個區域,而磁碟區則代表為檔案系統所組織的儲存空間。不應假設它們在每種儲存配置中都具有一對一的對應關係。.

磁碟區開機記錄位於何處?

的 VBR 位於其檔案系統卷的起始處。.

在傳統的分區磁碟上,磁碟區始於該分區的起始邏輯區塊位址(LBA)。因此,VBR 通常位於該分區的第一个邏輯磁區中。.

請參考以下這個示意性的磁碟佈局:

磁碟區域

起始 LBA

目的

MBR 或 保護性 MBR

0

磁碟層級的相容性與分割區資訊

主要 GPT 標頭

1(GPT 磁碟)

說明 GPT 的佈局

分區 1

2,048

第一個分區開始

分割區 1 VBR

2,048

第一卷的開機區段

第 2 區

另一個分區開始

第二個分區開始

分割區 2 VBR

第 2 部分開始

第二卷的開機區段

此範例假設每個分割區直接包含一個磁區,並採用 512 位元組的邏輯磁區大小。實際的起始 LBA 取決於磁碟佈局。.

對於從 LBA 2,048 開始的分區,其 VBR 位於相對於實體磁碟的 LBA 2,048 處,而非 LBA 0。.

未分割的裝置也可能包含一個檔案系統卷。在這種情況下,該卷可能從裝置的第一个邏輯扇區開始,因此未必存在獨立的 MBR 或 GPT 分割表。.

為什麼 VBR 並不總是位於磁碟的 LBA 0 處

磁碟的第一个邏輯扇區與磁區的第一个邏輯扇區是不同的位址位置。.

  • 磁碟的 LBA 0 標示著磁碟的起始位置。.
  • 相對於磁碟區的第 0 扇區標示了該磁碟區的起始位置。.
  • 在傳統的分區磁碟上,分區的起始 LBA 將這兩個位址空間連接起來。.

若將這些位置混淆,可能會導致磁碟編輯器或診斷工具檢查到錯誤的磁區。.

有關磁碟層級結構的更深入說明,請參閱 MBR 分區表.

VBR 與 MBR:兩者有何區別?

與……之間的主要差異在於 VBR 與 MBR 在於他們的儲存層級與職責範圍。.

MBR 屬於磁碟層級的分區結構。VBR 則屬於檔案系統的磁碟區。.

特點

MBR

VBR

儲存層級

磁碟層級

音量級別

典型地點

磁碟 LBA 0

本卷的第一部分

主要內容

開機載入程式碼、分區項目、磁碟簽名

檔案系統參數,以及(視格式而定)引導程式碼

主要目的

請描述舊版磁碟分割區佈局,並提供開機起始點

說明磁碟區及適用於開機程序的支援功能

檔案系統依賴性

並未定義單一檔案系統的完整佈局

其結構取決於檔案系統

備援安排

沒有標準的備份 MBR

這取決於檔案系統

在傳統的 MBR 分區磁碟上,MBR 包含四個分區條目,每個條目皆描述一個分區的位置與大小。其引導程式碼能夠定位所選的開機分區,並將控制權移交給該分區的開機扇區。.

接著,VBR 會提供與磁碟區相關的資訊,而在傳統的 BIOS 開機鏈中,可能會執行下一個開機階段。.

的 Amagicsoft MBR 分區表指南 更詳細地說明磁碟層級的分區項目。.

VBR 與 GPT 之間有何關聯?

GPT 和 VBR 分別描述儲存架構中的不同部分。.

GPT 定義了磁碟的分區佈局。它包含一個主要 GPT 標頭、一個分區條目陣列,以及相應的備用結構。GPT 磁碟通常還會在 LBA 0 處包含一個保護性 MBR。.

相較之下,VBR 則屬於分區內的檔案系統卷。.

簡化的 GPT 磁碟佈局如下:

  1. 位於 LBA 0 處的保護性 MBR。.
  2. 位於 LBA 1 處的主 GPT 標頭。.
  3. 主要 GPT 分區項目陣列。.
  4. 包含分割區的可用磁碟空間。.
  5. 將位於磁碟末端的 GPT 結構備份下來。.

檔案系統的卷始於其分割區的起點,該處即為其開機扇區或開機區域所在的位置。.

因此,GPT 磁碟可以包含 NTFS、FAT32 和 exFAT 磁區,且這些磁區各自擁有專屬的磁區啟動結構。.

GPT 並不會取代 VBR。它定義了分割區的起始與結束位置,而檔案系統則定義了卷內資料的組織方式。.

請參閱 Amagicsoft GPT 指南 如需更深入了解 GPT 標頭和分割區條目,請參閱此處。.

VBR 在 Windows 啟動流程中的作用

互動式開機路徑瀏覽器

選擇一種韌體模式,以了解 Windows 是如何存取其開機管理程式的——以及傳統的 VBR 開機代碼是否屬於該路徑的一部分。.

  1. 1
    韌體 BIOS 初始化平台並選取開機裝置。.
  2. 2
    磁碟層級開機記錄 · LBA 0 MBR 啟動程式碼 使用舊版的分區資訊來定位所選的開機分區。.
  3. 3
    磁碟區層級開機記錄 · 分割區起始位置 VBR / PBR 開機載入程式碼 在傳統的 BIOS/MBR 啟動鏈中接管控制權,並啟動下一個開機階段。. 傳統 VBR 程式碼的執行
  4. 4
    Windows 啟動管理員 bootmgr 讀取開機設定並選取 Windows 載入程式。.
  5. 5
    作業系統載入程式 winload.exe 載入 Windows 核心及必要的開機驅動程式。.
這對 VBR 意味著什麼

在傳統的 Legacy BIOS/MBR Windows 開機過程中,分割區開機記錄是開機鏈中的可執行階段。其位置位於卷宗層級,而非磁碟的 LBA 0。.

典型的 Windows 開機路徑教育示意模型。實際的開機設定可能包含復原項目、額外的開機管理程式,或廠商專屬的階段。此模組不會檢查實體磁碟。.

VBR 的作用取決於 Windows 是透過傳統 BIOS 還是原生 UEFI 啟動。.

這些環境會採用不同的機制來定位並載入 Windows 啟動管理程式。.

傳統 BIOS 與 MBR 開機順序

在採用 MBR 分區的系統磁碟,且使用傳統 Legacy BIOS 的系統中,開機過程大致遵循以下順序:

  1. BIOS 會初始化電腦並選取開機裝置。.
  2. BIOS 會從磁碟的 LBA 0 處載入 MBR。.
  3. MBR 啟動程式碼會定位所選的啟動分割區。.
  4. 分區的第一個扇區(通常稱為 VBR 或 PBR)將接管控制權。.
  5. VBR 啟動程式碼會啟動下一個啟動階段,進而進入 Windows 啟動管理員 (bootmgr).
  6. Windows 啟動管理員正在載入 winload.exe.
  7. Windows 載入程式會初始化核心以及必要的開機驅動程式。.

在此配置中,VBR 是傳統開機鏈中的可執行階段。.

分割區開機扇區並非負責定義整個磁碟的佈局。它是在磁碟層級的開機程式碼識別出開機分割區之後才開始運作的。.

UEFI 開機順序與 EFI 系統分割區

原生 UEFI Windows 安裝採用不同的開機流程。.

UEFI 韌體並非執行傳統的 MBR 和 VBR 引導程式碼,而是透過其開機管理員來定位並載入 EFI 應用程式。.

典型的 Windows UEFI 開機順序如下:

  1. UEFI 韌體負責初始化平台。.
  2. 韌體會讀取其開機選項,並識別 EFI 系統分割區 (ESP)。.
  3. 韌體會存取 ESP 的檔案系統並載入 \EFI\Microsoft\Boot\bootmgfw.efi.
  4. Windows 啟動管理員正在載入 winload.efi.
  5. Windows 載入程式會初始化核心以及必要的開機驅動程式。.

的 Microsoft Windows 啟動問題排除說明文件 區分 BIOS 與 UEFI 的啟動階段,並辨識不同的 Windows 啟動管理員與作業系統載入程式路徑。.

UEFI 規格說明中亦指出,其開機管理員會從檔案中載入 UEFI 應用程式,而非執行傳統的 MBR 開機起始程式碼。請參閱 UEFI 規格:概述 和 GPT 磁碟佈局.

UEFI 是否仍具備 VBR?

是的。UEFI 系統仍可能包含磁區開機區。.

對於標準的 Windows UEFI/GPT 安裝,EFI 系統分割區會以 FAT32 格式化。因此,它具有 FAT32 檔案系統的開機區段以及相關的檔案系統結構。.

然而,正常的 UEFI 開機流程並不會執行儲存於該 VBR 中的傳統 x86 啟動代碼。相反地,韌體會存取 FAT32 檔案系統,並將 EFI 開機管理程式作為檔案載入。.

這項區別很重要:

  • ESP 的 VBR 是 FAT32 卷結構的一部分。.
  • EFI 應用程式是原生 UEFI 啟動所使用的可執行入口點。.
  • VBR 的存在並不意味著其傳統的自舉程式碼必須執行。.

微軟的 基於 UEFI/GPT 的硬碟分割指南 指定了 Windows EFI 系統分割區必須採用 FAT32 格式。.

磁碟區開機區結構:VBR 包含哪些內容?

並沒有一種放諸四海皆準的 磁碟區開機扇區結構 每個檔案系統皆共享此特性。.

一個典型的開機區段可能包含幾種資訊:

元件

目的

跳轉指令

在適用的情況下,將執行權移交給自舉程式碼

檔案系統識別碼

識別或描述檔案系統格式

BIOS 參數區塊 (BPB) 或等效欄位

說明磁區大小、叢集大小、卷大小及其他參數

檔案系統專屬欄位

標示重要結構或其位置

Bootstrap 程式碼

提供有關相容開機環境的說明

簽名或校驗和資訊

有助於識別或驗證結構中的特定部分

具體的欄位、位元組偏移量、長度及驗證規則取決於檔案系統。.

例如,FAT 規格定義了 BPB,而 exFAT 則定義了其專屬的主開機區段(Main Boot Sector)欄位。若將這兩種格式視為相同,可能會導致對原始磁碟資料的錯誤解讀。.

BIOS 參數區塊 (BPB)

BIOS 參數區塊是一組描述基本檔案系統參數的欄位集合。.

在 FAT 檔案系統中,BPB 位於磁區的第一個扇區。它提供以下資訊:

  • 每扇區的位元組數。.
  • 每個叢集的區段數。.
  • 保留區段的數量。.
  • FAT 結構的數量與大小。.
  • 各板塊總成交量。.
  • 根目錄資訊(如適用)。.

FAT32 透過新增若干欄位來擴充 BPB,這些欄位分別用於根目錄叢集、FSInfo 磁區以及備用開機磁區。.

BPB 並非整個 VBR。它只是開機區塊結構的一部分。.

的 微軟 FAT 規格說明 提供 FAT12、FAT16 及 FAT32 的欄位定義與位元組偏移量。.

為何 55 AA Signature 無法證明 VBR 是有效的

許多傳統的開機區格式都會使用這兩個位元組 55 AA 位於偏移量 510–511 處,作為開機簽名。.

此標記在檢查一個扇區時相當有用,但僅憑此尚不足以確定整個結構是否有效。.

一個區段可能包含預期的特徵,但同時仍可能具有:

  • 磁區或簇參數不正確。.
  • 卷長度資訊無效。.
  • 檔案系統專屬欄位的數值超出其允許範圍。.
  • 對其他檔案系統結構的引用不一致。.
  • 引導程式碼已損毀或不完整。.

有效的簽名僅能確認該特定標記的存在,並不能證明該磁區可被掛載、所有元資料均完整無缺,或開機程序能夠完成。.

某些檔案系統還定義了額外的驗證機制。例如,exFAT 會對其「主開機區」和「備用開機區」使用開機校驗和。.

NTFS、FAT32 和 exFAT 中的 VBR 結構有何不同

雖然 NTFS、FAT32 和 exFAT 的卷首都包含與開機相關的結構,但它們的佈局和備份機制卻有顯著差異。.

NTFS 開機區段

NTFS 卷宗以一個 NTFS 開機扇區開頭,該扇區包含檔案系統參數及開機引導相關欄位。.

Linux-NTFS 磁碟結構定義文件中記載的常見 512 位元組 NTFS 開機區段佈局包含:

位元組偏移量

現場

尺寸

目的

0x00

跳轉指令

3 位元組

Bootstrap 輸入說明

0x03

OEM 識別碼

8 位元組

透過以下方式識別 NTFS: NTFS

0x0B

BPB

25 位元組

基本體積參數

0x28

扇區數

8 位元組

卷區段數

0x30

$MFT LCN

8 位元組

主檔案表的邏輯叢集起始編號

0x38

$MFTMirr LCN

8 位元組

MFT 鏡像的邏輯叢集起始編號

0x40

每筆 MFT 記錄的叢集數

1 位元組

定義 MFT 記錄大小的編碼方式

0x44

每個索引記錄的叢集數

1 位元組

定義索引記錄大小的編碼方式

0x48

卷次序號

8 位元組

識別磁碟區

0x50

校驗和欄位

4 位元組

開機區塊校驗和欄位

0x54

Bootstrap 區域

426 位元組

開機相關程式碼與保留空間

0x1FE

區段結束標記

2 位元組

55 AA 在磁碟上的位元組順序中

NTFS VBR 教學實驗室

開機區段與分區末尾的預留空間

示意圖 · NTFS

1 GiB 樣本 · 每扇區 512 B · 每簇 4 KiB · 分割區從磁碟 LBA 2,048 開始

偏移量 / 十六進位 / ASCII

解碼欄位

身分處理元資料誠信深色填充 = 已選取
版面配置、範例註解與來源

NTFS。. 此處傳統的 NTFS 總扇區數欄位為 2,097,151,不包含最後一個備用扇區;所屬分區則多出一個扇區。 因此,備用扇區位於卷宗扇區 2,097,151 處,而非該欄位值減去一。$Boot 被描繪為一個 16 扇區的初始區域;僅其第一個扇區會在分區末端被複製。$MFTMirr 是一個獨立的元數據鏡像。 帶符號的記錄大小位元組 F6 表示 −10 → 2¹⁰ = 1,024 位元組。未使用的位元組及未使用的傳統校驗和皆為零;引導填充碼為 F4。.

這是人工構建的教學位元組,並非磁碟擷取檔或可掛載映像檔。偏移量以磁區為單位的十六進位數表示;整數欄位採用小端序編碼。磁碟 LBA = 2,048 + 卷磁區號。所有磁區範圍均包含起始磁區;此映射圖僅供示意。 請選取某個欄位或點擊其對應的位元組;ASCII 中的點符號標示不可列印的位元組。引導程式內容僅為教學用填充資料。.

來源: NTFS3 欄位佈局 · mkntfs 的備用扇區規範.

此表格描述了 Linux-NTFS 實作所記錄的佈局。這是一份有用的磁碟上結構參考資料,但不能取代完整的 Microsoft NTFS 規格。.

其中一個特別重要的領域是 $MFT LCN。.

LCN 代表「邏輯簇號」(Logical Cluster Number)。它用以識別 NTFS 磁區中的簇,而非實體磁碟的 LBA。.

如果 $MFT 已知 LCN 後,即可利用磁區的簇大小來計算主檔案表(MFT)的起始位置:

MFT 位元組偏移量 = MFT 最左位元組 (LCN) × 每簇位元組數

這並未標示每個檔案的位置,而是標示了該檔案的起始位置。 $MFT 結構。.

的 $MFTMirr 此欄位標示了重要初始 MFT 記錄之有限鏡像的位置。這並非主檔案表(MFT)或使用者檔案的完整備份。.

若要更深入地了解這項關係,請參閱 Amagicsoft 主檔表指南.

Linux-NTFS 的磁碟佈局文件中亦記載,針對 Windows NT 4.0 及後續版本,備份開機區段位於分區的最後一個磁區;而較舊的 NT 3.51 及更早版本系統則使用不同的位置。此為實作與歷史參考;在假設備份位置之前,應先確認實際的磁碟區佈局。.

FAT32 啟動區、FSInfo 及備份啟動記錄

FAT32 在卷的「保留區域」的第一個扇區中使用一個 BPB。.

其中幾個領域尤為重要:

現場

位元組偏移量

尺寸

目的

BPB_每秒位元組數

11

2 位元組

每扇區的位元組數

BPB_SecPerClus

13

1 位元組

每個叢集的區段數

BPB_RsvdSecCnt

14

2 位元組

保留區域大小

BPB_FATSz32

36

4 位元組

由一個 FAT 佔用的區段

BPB_RootClus

44

4 位元組

根目錄的第一個叢集

BPB_FSInfo

48

2 位元組

FSInfo 區段的位置

BPB_BkBootSec

50

2 位元組

備份開機記錄的位置

FAT32 VBR 教學實驗室

BPB、FSInfo 與備份開機記錄

示意圖 · FAT32

1 GiB 樣本 · 每扇區 512 B · 每簇 4 KiB · 分割區從磁碟 LBA 2,048 開始

偏移量 / 十六進位 / ASCII

解碼欄位

身分處理元資料誠信深色填充 = 已選取
版面配置、範例註解與來源

FAT32。. 此範例採用 Microsoft 風格的三個扇區開機記錄(位於 0–2 處),並複製至 6–8 處,位於 32 個保留扇區內。第 1 個扇區為 FSInfo,第 7 個扇區為其初始副本;FSInfo 的權威位址仍為 1。開機程式碼扇區使用 F4 填充資料。其餘保留扇區皆為零。 由於有兩個各含 2,048 扇區的 FAT,資料從 4,128 處開始;floor((2,097,152 − 4,128) / 8) = 261,628 個簇,高於 FAT32 的 65,525 簇閾值。 每個 FAT 包含 262,144 個項目,足以容納所需的 261,630 個項目。FSInfo 的分配提示目前尚不清楚。.

這是人工構建的教學位元組,並非磁碟擷取檔或可掛載映像檔。偏移量以磁區為單位的十六進位數表示;整數欄位採用小端序編碼。磁碟 LBA = 2,048 + 卷磁區號。所有磁區範圍均包含起始磁區;此映射圖僅供示意。 請選取某個欄位或點擊其對應的位元組;ASCII 中的點符號標示不可列印的位元組。引導程式內容僅為教學用填充資料。.

來源: 微軟 FAT 規格 v1.03 (PDF),第 8–22 頁.

的 BPB_FSInfo 該欄位通常指向第 1 個磁區。此磁區儲存諸如最後已知的可用簇數以及下一個可用簇提示等資訊。.

的 BPB_BkBootSec 此欄位用於識別備用開機記錄的位置。根據 Microsoft FAT 規格,其值為 0 或 6。當設定為 6 時,備用結構將從卷標相對的第 6 個磁區開始。.

一個重要的細節是,FAT32 開機記錄並非單純的單一磁區副本。微軟的規格說明指出,完整的開機記錄長度為三個磁區,並附有相應的備份序列。此外,FSInfo 結構的副本也會保存在該備份序列中。.

這些結構各有不同的用途:

  • 開機區段包含 BPB 以及與開機相關的資訊。.
  • FSInfo 會儲存可用空間提示。.
  • 備份開機記錄提供了重要開機資訊的備份副本。.

FSInfo 並非第二個 VBR,且其可用簇數未必是精確且持續更新的數值。.

exFAT 的主開機區域與備用開機區域 exFAT 採用一種稱為「開機區域」的更廣泛結構。.

根據該 Microsoft exFAT 檔案系統規格, ,該磁區包含一個主開機區和一個備用開機區,各佔用 12 個磁區。.

體積相對扇區

主要開機區域

備份開機區域

0 / 12

開機磁區

備份開機區段

1–8 / 13–20

擴展開機區段

備份擴展啟動扇區

9 / 21

OEM 參數

備份 OEM 參數

10 / 22

保留

備用保留

11 / 23

開機校驗和

備份開機校驗和

主開機區段包含用於描述 exFAT 磁區的主要參數。.

重要欄位包括:

現場

位元組偏移量

尺寸

目的

JumpBoot

0

3 位元組

Bootstrap 跳轉指令

檔案系統名稱

3

8 位元組

將檔案系統識別為 exFAT

分區偏移量

64

8 位元組

相對於媒體的分區偏移量

卷長

72

8 位元組

磁區中的卷長

FatOffset

80

4 位元組

第一個 FAT 的起始區段

FatLength

84

4 位元組

每個 FAT 的長度

ClusterHeapOffset

88

4 位元組

叢集堆的起始區段

ClusterCount

92

4 位元組

叢集堆中的叢集數量

根目錄的第一個叢集

96

4 位元組

根目錄的起始叢集

VolumeFlags

106

2 位元組

檔案系統狀態標誌

每扇區位元組偏移量

108

1 位元組

扇區大小編碼

每叢集班次之區段數

109

1 位元組

簇大小編碼

脂肪數量

110

1 位元組

FAT 結構的數量

使用百分比

112

1 位元組

已分配叢集的報告百分比

exFAT VBR 教學實驗室

主開機區與備用開機區

示意圖 · exFAT

1 GiB 樣本 · 每扇區 512 B · 每簇 4 KiB · 分割區從磁碟 LBA 2,048 開始

偏移量 / 十六進位 / ASCII

解碼欄位

身分處理元資料誠信深色填充 = 已選取
版面配置、範例註解與來源

exFAT。. 區塊 0–11 和 12–23 分別構成兩個各含 12 個區塊的開機區域。 校驗和是根據每個區域前 11 個扇區計算得出,並跳過開機扇區的第 106、107 和 112 位元組,然後在該區域的校驗和扇區中重複此計算 128 次。在此範例中,主開機區與備用開機區的起始內容相同;讀取裝置會將備用標誌和已用百分比視為過期資料。 未提供引導程式:主引導程式碼位元組為 F4;延伸程式碼為零。OEM 參數為空;保留位元組為零。堆疊共有 261,632 個簇;根簇 12 預留空間供位圖及大寫元資料使用,其內容超出本實驗範圍。.

這是人工構建的教學位元組,並非磁碟擷取檔或可掛載映像檔。偏移量以磁區為單位的十六進位數表示;整數欄位採用小端序編碼。磁碟 LBA = 2,048 + 卷磁區號。所有磁區範圍均包含起始磁區;此映射圖僅供示意。 請選取某個欄位或點擊其對應的位元組;ASCII 中的點符號標示不可列印的位元組。引導程式內容僅為教學用填充資料。.

來源: 微軟 exFAT 規格,第 2–3 節.

與傳統的 FAT BPB 不同,exFAT 定義了自己的參數佈局。其 MustBeZero 該欄位亦佔用與 FAT12/16/32 BPB 區域對應的範圍,有助於防止舊版 FAT 實作錯誤地將 exFAT 磁區詮釋為 FAT 磁區。.

exFAT 開機校驗和的運作原理

exFAT 開機校驗和所提供的驗證機制,比單純檢查簽名更為嚴謹。.

本規範定義了以下流程:

  1. 讀取主開機區的前 11 個扇區。.
  2. 排除 VolumeFlags 偏移量 106–107 處的位元組以及 使用百分比 偏移量為 112 的位元組。.
  3. 依序處理剩餘的位元組。.
  4. 對於每個位元組,將當前的 32 位元校驗和向右旋轉一位元,並加上該位元組的值,同時確保結果不超過 32 位元。.
  5. 將計算出的校驗和以重複的四位元組模式儲存於整個開機校驗和區段中。.

備用開機區域有其對應的校驗和計算方式。.

將……排除在外的 VolumeFlags 和 使用百分比 這是刻意設計的。這些欄位可在無需重新計算開機校驗和的情況下進行更新。規格書中亦指出,備份開機扇區中的對應值必須視為過時。.

這意味著,對主開機區域與備用開機區域進行逐位元組比對,並非一種合適的通用驗證方法。.

相反地,必須根據各區域自身的校驗和與欄位有效性規則,分別對其進行檢查。.

如何檢查與驗證磁區開機記錄

要檢查一個 VBR,必須知道卷的起始位置,以及哪個檔案系統定義了其佈局。.

在未先確認磁碟區格式之前,不應使用通用範本來解析原始磁區。.

步驟 1:識別磁碟區的起始 LBA

利用可靠的磁碟佈局資訊,確定分割區或磁區的起始位置。.

在傳統的基本磁碟上,分割區的起始 LBA 通常就是其所包含的磁碟區的起始位置。.

請勿假設每個卷皆從 LBA 0 開始,亦請勿假設磁碟機代號代表實體磁碟的偏移量。.

步驟 2:計算位元組偏移量

若要找出原始磁碟映像中該磁碟區的第一个扇區,請使用:

位元組偏移量 = 卷起始 LBA × 邏輯扇區大小

舉例來說,若某個分割區從 LBA 2,048 開始,且該裝置採用 512 位元組的邏輯磁區:

2,048 × 512 = 1,048,576 位元組

在該示例磁碟映像中,VBR 始於位元組偏移量 1,048,576 處。.

對於 4,096 位元組的邏輯磁區,相同的 LBA 會對應到不同的位元組偏移量。請務必使用裝置的實際邏輯磁區大小,而非假設所有磁碟都使用 512 位元組的磁區。.

步驟 3:使用十六進位編輯器檢查結構

磁碟編輯器或十六進位編輯器可以顯示原始磁區位元組及其偏移量。.

若要進行唯讀檢查:

  1. 使用合適的十六進位編輯器開啟磁碟映像檔或對應的實體裝置。.
  2. 導航至計算出的位元組偏移量。.
  3. 檢查開頭的位元組及檔案系統識別碼。.
  4. 請根據相應的檔案系統規範來解讀相關欄位。.
  5. 檢查欄位值是否在內部具有一致性。.

舉例來說,NTFS 開機扇區應依據其 NTFS 欄位佈局來解析,而 FAT32 扇區則應依據 FAT32 BPB 定義來解析。.

進行檢查時,請勿編輯來源磁碟。若來源磁碟包含重要資料,建議建立唯讀映像檔。.

步驟 4:檢查檔案系統特定的一致性

評估 VBR 時,應採用多項指標,而非僅憑單一特徵。.

有用的檢查項目包括:

  • 所報告的「每扇區位元組數」值是否適用於該格式。.
  • 「每簇分區數」是否為允許的值。.
  • 卷長是否符合可用分割區或卷範圍的限制。.
  • 檔案系統專屬的偏移量是否指向合理的位置。.
  • 備份結構是否位於相關格式所指定的位置。.
  • 所需的校驗和與簽名是否通過驗證。.

對於 FAT32,請檢查 BPB 欄位,以及開機區段、FSInfo 與備用開機記錄之間的關聯。.

對於 NTFS,請檢查卷宗的磁區數以及與 MFT 相關的簇位置。一個合理的 $MFT 僅憑 LCN 本身並不能證明 MFT 完整無缺。.

對於 exFAT,請分別驗證「主開機校驗和」與「備用開機校驗和」,並確認相關欄位是否在指定範圍內。.

步驟 5:仔細解讀結果

簽名檢查成功,並不代表該卷處於正常狀態。.

同樣地,有效的備份開機結構並不能證明所有檔案系統的元資料或使用者資料都保持完整。.

妥善的評估應區分以下幾點:

  • 可讀取的開機區。.
  • 結構上有效的檔案系統參數。.
  • 一個有效的備份結構。.
  • 一個可掛載的檔案系統。.
  • 一個可執行且完整的作業系統開機鏈。.

這些是相關但不同的狀況。.

當磁碟區開機記錄受損時會發生什麼情況?

對……造成的損害 磁碟區開機記錄 可能會導致系統無法啟動,或使磁區難以識別與掛載。.

具體的影響取決於哪些欄位或結構受到影響,以及作業系統如何使用它們。.

損壞

可能的結果

Bootstrap 程式碼損壞

傳統 BIOS 啟動可能會失敗

BPB 或體積參數損傷

檔案系統可能無法被識別或無法正確掛載

NTFS 啟動資訊無效

NTFS 磁區的解析可能會失敗

FAT32 開機區損毀

FAT32 的掛載或開機操作可能會受到影響

exFAT 啟動區不一致

檔案系統的識別或驗證可能會失敗

主開機結構受損,但備份檔案有效

若採用適當的、針對特定檔案系統的程序,或許能夠進行復原

VBR 受損並不一定代表檔案會被刪除

VBR 包含結構與開機相關的資訊。它通常不會儲存一般使用者檔案的內容。.

因此,VBR 檔案受損並不一定代表照片、文件、影片或其他檔案內容已被刪除。.

舉例來說,一個 NTFS 磁區的開機區段可能已損毀,但其部分或全部 MFT 記錄及使用者資料簇仍可讀取。.

然而,資料能否成功恢復,取決於其他檔案系統結構的狀態、儲存裝置的物理可讀性,以及是否有後續的寫入操作已覆寫重要的元資料或檔案內容。.

無法開機的磁區仍可能包含可恢復的資料。反之,VBR 能夠讀取,並不代表檔案系統的其餘部分都處於正常狀態。.

VBR 損壞與 MBR 或 GPT 損壞的比較

這些故障會影響不同的儲存層。.

  • MBR 損壞: 可能會影響舊版的啟動程式碼,或儲存於磁碟 LBA 0 處的磁碟分割項目。.
  • GPT 損壞: 可能會影響分割區佈局、GPT 標頭或分割區條目陣列。.
  • VBR 損壞: 會影響特定磁區的初始開機相關結構。.
  • EFI 系統分割區損壞: 可能會導致 UEFI 韌體無法定位或載入 Windows EFI 開機管理程式。.

維修程序必須與受損的零件相符。.

例如:, bootrec /fixmbr 會重新寫入 MBR 開機程式碼;但不會重建受損的 NTFS VBR、修復 GPT 標頭,也不會還原遺失的分區項目。.

有關磁碟層級開機問題的相關說明,請參閱 Amagicsoft 的 MBR 損毀處理指南.

若無法存取重要檔案,請在嘗試執行「基於寫入的修復」之前,先保護原始資料。在取得適當的備份或映像檔之前,請避免執行格式化、初始化、重新分區,或任何會修改檔案系統的修復指令。.

vbr-損壞-與-mbr-gpt-損壞

總結

A 磁碟區開機記錄 是一種將檔案系統參數與開機相關資訊相互連結的磁區層級結構。其位置通常位於磁區的第一个邏輯扇區,而其確切的佈局則取決於檔案系統。.

MBR、GPT 與 VBR 之間的區別至關重要:MBR 和 GPT 描述的是磁碟層級的分區佈局,而 VBR 則屬於檔案系統的卷宗。傳統 BIOS 啟動程序可能會執行 VBR 的引導程式碼,而原生 UEFI 啟動程序則會從 EFI 系統分區載入 EFI 應用程式。.

了解 NTFS、FAT32 和 exFAT 啟動結構之間的差異,也有助於區分啟動記錄受損與更廣泛的檔案系統損毀,或是實際的用戶資料遺失。.

常見問題

「磁碟區開機記錄」與「分割區開機記錄」是一樣的嗎?

在許多傳統的個人電腦磁碟佈局中,這些術語指的是同一個磁區,因為磁碟區(volume)始於其分割區(partition)的起點。然而,相關術語的定義有所不同。分割區(partition)描述的是磁碟上的某個區域,而磁碟區(volume)則描述的是為檔案系統所組織的儲存空間。.

VBR 是否總是位於 LBA 0 處?

不。在已分割的磁碟上,VBR 通常位於其磁區的起始 LBA 處。磁碟的 LBA 0 屬於磁碟層級結構,例如 MBR 或保護性 MBR。未分割的磁區可能從裝置的 LBA 0 開始。.

GPT 磁碟是否有卷宗啟動記錄?

是的。GPT 定義的是磁碟的分區佈局,而非每個檔案系統的內部結構。GPT 磁碟可以包含 NTFS、FAT32 或 exFAT 磁區,每個磁區都有其專屬的開機相關結構。.

UEFI 會使用磁區開機記錄嗎?

原生 UEFI 啟動程序通常不會執行儲存於 VBR 中的傳統 x86 引導程式碼。相反地,UEFI 會從受支援的檔案系統中載入 EFI 應用程式,例如標準 Windows UEFI 安裝所使用的 FAT32 EFI 系統分割區 (ESP)。ESP 仍保有其專屬的 FAT32 啟動區。.

在開機區段中,「55 AA Signature」代表什麼意思?

這些位元組 55 AA 是多種傳統開機區格式所使用的開機簽名。其存在雖是實用的結構指標,但並不能證明 BPB、檔案系統參數、引導程式碼或備份結構均為有效。.

備份 VBR 位於何處?

並沒有通用的備份位置。FAT32 通常使用由 BPB_BkBootSec, ,通常為第 6 個磁區。在較新版本的 Windows NT 中,NTFS 佈局通常會將備用開機磁區置於磁區的最後一個磁區。exFAT 則使用一個獨立的「備用開機區域」,起始位置為磁區相對位置的第 12 個磁區。.

受損的 VBR 會導致永久性資料遺失嗎?

未必如此。VBR 損壞可能會導致磁區無法掛載或啟動,但其他檔案系統的元資料及使用者資料簇可能仍保持完整。復原結果取決於損壞程度、後續的寫入操作,以及裝置的物理狀態。.

Vasilii 是一位在該領域擁有約 10 年實務經驗的資料復原專家。在他的職業生涯中,他已成功解決數千個複雜的個案,包括刪除的檔案、格式化的硬碟機、遺失的磁碟分割和 RAW 檔案系統。他的專業知識涵蓋使用十六進位編輯器等專業工具的手動復原方法,以及使用復原軟體的進階自動解決方案。Vasilii 的使命是讓 IT 專業人士和一般使用者都能獲得可靠的資料復原知識,協助他們保護寶貴的數位資產。.