ボリューム・ブート・レコード(VBR):構造、位置、および起動プロセス

ボリューム・ブート・レコード(VBR)の構造、位置、および起動プロセス

A ボリューム・ブート・レコード(VBR) ファイルシステムのボリュームの先頭に格納される、ブートに関連するデータ構造です。これには、ボリュームのレイアウトを記述する情報が含まれており、レガシー起動時に使用されるブートストラップコードが含まれる場合もあります。VBRは一般的にパーティションの最初のセクタに関連付けられていますが、その正確な構造や役割は、ファイルシステムやブートアーキテクチャによって異なります。.

この区別が重要なのは、VBRはMBRとは異なるものであり、最新のUEFIベースのWindowsシステムでは、通常、起動時に従来のVBRブートストラップコードを実行しないためです。.

目次

ボリューム・ブート・レコードとは何ですか?

A ボリューム・ブート・レコード これは、ボリュームの起動に関連する初期構造です。一般に「ボリューム・ブートセクタ」とも呼ばれ、多くのPCストレージの文脈では「パーティション・ブートレコード(PBR)」とも呼ばれます。.

VBRには、2つの関連する目的があります:

  • 巻の特定および説明: このファイルには、セクタサイズ、クラスタサイズ、ボリューム長、ファイルシステム固有のメタデータの保存場所など、ソフトウェアがファイルシステムを解釈するのに役立つパラメータが格納されています。.
  • Bootstrap のサポート: ファイルシステムや起動環境によっては、オペレーティングシステムの起動プロセスの次の段階へ制御を移す実行可能コードが含まれている場合があります。.

具体的な内容は一様ではありません。FAT32のブートセクタ、NTFSのブートセクタ、およびexFATのメインブートセクタは、それぞれ独自の方法でボリュームを記述しています。.

たとえば、FAT32のブートセクタにはBIOSパラメータブロック(BPB)が含まれていますが、exFATのブートセクタでは次のようなフィールドが使用されます。 巻数・長さ, FatOffset, そして ClusterHeapOffset. これらの構造は関連する目的を果たしますが、互いに置き換え可能というわけではありません。.

VBR、ボリューム・ブート・セクタ、およびパーティション・ブート・レコード

用語 ボリューム・ブート・レコード, ボリューム・ブートセクタ, そして パーティション・ブート・レコード 技術的な資料によって用語の定義は異なるものの、これらはしばしば同じ意味で使用される。.

ここで役立つ区別は次の通りです:

  • ボリューム・ブートセクタ: 通常、ファイルシステムのボリュームの最初のセクタを指します。.
  • ボリューム・ブート・レコード: 多くの場合、そのボリュームの先頭に格納されているブート関連の構造体を指します。ファイルシステムによっては、単一のセクタ構造体ではなく、より大きなブート領域を定義しているものもあります。.
  • パーティション・ブート・レコード: 通常、パーティションの先頭にあるブートセクタを指します。.

パーティションが、同じアドレスから始まるボリュームを直接含む従来のベーシックディスクでは、PBRとVBRは通常、同じセクタを指します。.

ただし、これらの用語は異なるストレージの概念を表しています。パーティションはディスク上の領域を定義するのに対し、ボリュームはファイルシステム用に構成されたストレージ領域を表します。すべてのストレージ構成において、これらに一対一の関係があるとは限らないことに留意する必要があります。.

ボリューム・ブート・レコードはどこにあるのか?

について VBR そのファイルシステムボリュームの先頭に位置しています。.

従来のパーティション分割されたディスクでは、ボリュームはパーティションの開始論理ブロックアドレス(LBA)から始まります。したがって、VBRは通常、そのパーティションの最初の論理セクタに位置しています。.

例として、次のようなディスクレイアウトを考えてみましょう:

ディスク領域

LBAの開始位置

目的

MBR または 保護型 MBR

0

ディスクレベルの互換性とパーティション情報

メインのGPTヘッダー

1 (GPTディスク)

GPTのレイアウトについて説明します

パーティション 1

2,048

最初のパーティションの作成を開始します

パーティション 1 の VBR

2,048

第1巻のブートセクタ

パーティション 2

別のパーティションの開始

第2の分割が始まる

パーティション 2 VBR

パーティション 2 の開始

第2巻のブートセクタ

この例では、各パーティションが直接ボリュームを含み、論理セクタサイズが 512 バイトであると仮定しています。実際の開始 LBA は、ディスクのレイアウトによって異なります。.

LBA 2,048 から始まるパーティションの場合、VBR は物理ディスクを基準として LBA 2,048 にあり、LBA 0 にはありません。.

パーティションが割り当てられていないデバイスにも、ファイルシステムのボリュームが含まれている場合があります。その場合、ボリュームはデバイスの最初の論理セクタから始まる可能性があるため、必ずしも個別のMBRやGPTパーティションテーブルが存在するとは限りません。.

VBRが必ずしもディスクのLBA 0にあるとは限らない理由

ディスクの最初の論理セクタと、ボリュームの最初の論理セクタは、異なるアドレス位置にあります。.

  • ディスクのLBA 0は、ディスクの先頭を指します。.
  • ボリューム相対セクタ 0 は、ボリュームの先頭を識別します。.
  • 従来のパーティション分割されたディスクでは、パーティションの開始LBAがこれら2つのアドレス空間を結びつけます。.

これらの場所を混同すると、ディスクエディタや診断ツールが誤ったセクタを検査してしまう原因となります。.

ディスクレベルの構造についてより詳しく知りたい場合は、 MBRパーティションテーブル.

VBRとMBR:その違いとは?

ととのいの主な違いは、 VBRとMBR それは、それぞれの保管レベルと責任の範囲です。.

MBRはディスクレベルのパーティション構造に属します。VBRはファイルシステムのボリュームに属します。.

特徴

マスタブートレコード

VBR

ストレージレベル

ディスクレベル

音量レベル

代表的な設置場所

ディスク LBA 0

この巻の第1セクター

主な内容

ブートストラップコード、パーティションエントリ、ディスクシグネチャ

ファイルシステムパラメータ、およびフォーマットによってはブートストラップコード

主な目的

レガシーディスクのパーティション構成を説明し、ブートエントリポイントを提示してください

適用可能なブートプロセスのボリュームとサポートについて説明してください

ファイルシステムの依存関係

個々のファイルシステムのレイアウト全体を定義するものではない

その構造はファイルシステムによって異なります

バックアップ体制

標準のバックアップMBRがない

ファイルシステムによって異なります

従来のMBRパーティション方式のディスクでは、MBRには4つのパーティションエントリが含まれており、それぞれがパーティションの位置とサイズを記述しています。そのブートストラップコードは、選択されたブートパーティションを特定し、そのパーティションのブートセクタに制御を移すことができます。.

その後、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に代わるものではありません。GPTはパーティションの開始位置と終了位置を定義するものであり、一方、ファイルシステムはボリューム内のデータがどのように構成されるかを定義するものです。.

「」を参照してください 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にとって何を意味するのか

従来のレガシー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ブートマネージャーとOSローダーの異なるパスを特定します。.

また、UEFI仕様書では、そのブートマネージャが、従来のレガシーMBRブートストラップコードを実行するのではなく、ファイルからUEFIアプリケーションをロードすることも説明されています。詳しくは、 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では独自のメインブートセクタフィールドが定義されています。これらのフォーマットを同一のものとして扱うと、ディスクの生データが誤って解釈される恐れがあります。.

BIOSパラメータブロック(BPB)

BIOSパラメータブロックは、ファイルシステムの基本的なパラメータを記述するフィールドの集合です。.

FATファイルシステムでは、BPBはボリュームの最初のセクタに配置されています。これには、次のような情報が含まれています:

  • 1セクタあたりのバイト数。.
  • クラスタごとのセクター数。.
  • 予約済みセクタの数。.
  • FAT構造体の数とサイズ。.
  • セクターごとの総量。.
  • 該当する場合、ルートディレクトリに関する情報。.

FAT32では、ルートディレクトリクラスタ、FSInfoセクタ、およびバックアップブートセクタ用の追加フィールドがBPBに追加されています。.

BPBはVBR全体ではありません。これはブートセクタの構造の一部に過ぎません。.

について Microsoft FAT 仕様書 FAT12、FAT16、およびFAT32のフィールド定義とバイトオフセットを記載しています。.

なぜ「55 AA Signature」ではVBRの有効性が証明されないのか

多くの従来のブートセクタ形式では、2バイトの 55 AA オフセット 510~511 の位置に、ブート署名として格納されています。.

このマーカーはセクターを検査する際に役立ちますが、構造全体が有効であることを確認するには不十分です。.

あるセクターには、期待されるシグネチャが含まれているにもかかわらず、次のような状態にある場合があります:

  • セクタまたはクラスタのパラメータが正しくありません。.
  • ボリュームの長さの情報が不正です。.
  • ファイルシステム固有のフィールドが、許容範囲外となっています。.
  • 他のファイルシステム構造への参照に一貫性がない。.
  • ブートストラップコードが破損しているか、不完全です。.

有効な署名は、その特定のマーカーが存在することを確認するにすぎません。それだけでは、そのボリュームがマウント可能であること、すべてのメタデータが完全であること、あるいは起動プロセスが完了できることを証明するものではありません。.

一部のファイルシステムでは、追加の検証メカニズムも定義されています。たとえば、exFATでは、メインブート領域とバックアップブート領域に対してブートチェックサムを使用しています。.

NTFS、FAT32、exFATにおけるVBR構造の違い

NTFS、FAT32、exFATはいずれもボリュームの先頭にブート関連の構造体を持っていますが、そのレイアウトやバックアップの仕組みは大きく異なります。.

NTFSブートセクタ

NTFSボリュームは、ファイルシステムパラメータやブートストラップ関連のフィールドを含むNTFSブートセクタから始まります。.

Linux-NTFSのディスク上の構造定義に記載されている、一般的な512バイトのNTFSブートセクタのレイアウトには、以下のものが含まれます:

バイトオフセット

フィールド

サイズ

目的

0x00

ジャンプ命令

3バイト

Bootstrap の開始手順

0x03

OEM ID

8バイト

以下を使用して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 から始まる

オフセット / 16進数 / ASCII

デコードされたフィールド

アイデンティティ対応についてメタデータ誠実さ暗い塗りつぶし = 選択済み
レイアウト、サンプルノート、およびソース

NTFS。. ここでの従来の NTFS の「総セクタ数」フィールドは、最後の予備セクタを除いて 2,097,151 であり、このパーティションにはさらに 1 セクタが追加されています。 したがって、スペアセクタはフィールド値から1を引いた位置ではなく、ボリュームセクタ2,097,151に位置します。$Bootは16セクタからなる初期領域として示されており、パーティションの末尾ではその最初のセクタのみが複製されます。$MFTMirrは独立したメタデータミラーです。 符号付きレコードサイズバイト F6 は、−10 → 2¹⁰ = 1,024 バイトを意味します。未使用のバイトおよび未使用のレガシーチェックサムは 0 であり、ブートストラップフィラーは F4 です。.

ディスクのキャプチャやマウント可能なイメージではなく、人工的に作成されたティーチングバイトです。オフセットはセクタ単位の16進数で、整数フィールドはリトルエンディアン形式でエンコードされています。ディスクLBA = 2,048 + ボリュームセクタ。すべてのセクタ範囲は端数を含むものとし、マップは概略図です。 フィールドを選択するか、そのバイトをクリックしてください。ASCIIのドットは、印刷不可能なバイトを示しています。ブートストラップの内容は、教育用の埋め草です。.

出典: NTFSの3フィールドのレイアウト · mkntfs のスペアセクタの規則.

この表は、Linux-NTFS実装によって文書化されたレイアウトを説明したものです。これはディスク上の構造に関する有用な参考資料ですが、Microsoft NTFS仕様の完全な代替となるものではありません。.

特に重要な分野の一つは $MFT LCN。.

LCNとは、Logical Cluster Number(論理クラスタ番号)の略です。これは、物理ディスクのLBAではなく、NTFSボリュームに対するクラスタを識別するものです。.

もし $MFT LCNがわかっている場合、マスターファイルテーブルの開始位置は、ボリュームのクラスタサイズを用いて計算することができます:

MFTのバイトオフセット = MFTのLCN × クラスタあたりのバイト数

これは、すべてのファイルの場所を特定するものではありません。これは、 $MFT 構造になっている。.

について $MFTMirr このフィールドは、重要な初期MFTレコードの限定的なミラーの保存場所を示します。これは、マスターファイルテーブルやユーザーファイルの完全なバックアップではありません。.

この関係についてより詳しく知りたい場合は、以下の Amagicsoft マスターファイルテーブルガイド.

Linux-NTFSのディスク上のレイアウトに関する文書によると、Windows NT 4.0以降ではパーティションの最終セクタにバックアップブートセクタが配置されていますが、それ以前のNT 3.51などのシステムでは別の場所に配置されていました。これは実装および歴史的な参考情報であり、バックアップの場所を想定する前に、実際のボリュームレイアウトを確認する必要があります。.

FAT32 ブートセクタ、FSInfo、およびバックアップ・ブートレコード

FAT32では、ボリュームの「予約領域」の最初のセクタにBPBが配置されます。.

特に重要な項目がいくつかあります:

フィールド

バイトオフセット

サイズ

目的

BPB_BytsPerSec

11

2バイト

1セクタあたりのバイト数

BPB_SecPerClus

13

1バイト

クラスタあたりのセクター数

BPB_RsvdSecCnt

14

2バイト

予約領域のサイズ

BPB_FATSz32

36

4バイト

1つの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 から始まる

オフセット / 16進数 / ASCII

デコードされたフィールド

アイデンティティ対応についてメタデータ誠実さ暗い塗りつぶし = 選択済み
レイアウト、サンプルノート、およびソース

FAT32。. このサンプルでは、0~2セクターにあるMicrosoft形式の3セクター構成のブートレコードを、32個の予約セクター内の6~8セクターにコピーしています。セクター1はFSInfo、セクター7はその初期コピーです。正規のFSInfoアドレスは1のままです。ブートコードセクターにはF4フィラーが使用されています。残りの予約セクターはゼロで埋まっています。 2,048セクタからなる2つのFATがあり、データは4,128から始まります。floor((2,097,152 − 4,128) / 8) = 261,628クラスタとなり、FAT32のしきい値である65,525を上回っています。 各FATは262,144エントリを保持しており、必要な261,630エントリを十分に収容できる。FSInfoの割り当てヒントについては、明確に不明である。.

ディスクのキャプチャやマウント可能なイメージではなく、人工的に作成されたティーチングバイトです。オフセットはセクタ単位の16進数で、整数フィールドはリトルエンディアン形式でエンコードされています。ディスクLBA = 2,048 + ボリュームセクタ。すべてのセクタ範囲は端数を含むものとし、マップは概略図です。 フィールドを選択するか、そのバイトをクリックしてください。ASCIIのドットは、印刷不可能なバイトを示しています。ブートストラップの内容は、教育用の埋め草です。.

出典: Microsoft FAT仕様書 v1.03 (PDF)、8~22ページ.

について BPB_FSInfo このフィールドは通常、セクタ 1 を指します。このセクタには、最後に確認された空きクラスタ数や、次の空きクラスタのヒントなどの情報が格納されています。.

について BPB_BkBootSec このフィールドは、バックアップブートレコードの位置を指定します。Microsoft FAT仕様では、その値は0または6です。6に設定された場合、バックアップ構造はボリューム相対セクター6から始まります。.

重要な点として、FAT32のブートレコードは単なる1セクタのコピーではないということです。マイクロソフトの仕様書によると、ブートレコード全体は3セクタの長さであり、それに対応するバックアップシーケンスが存在します。また、FSInfo構造体のコピーもバックアップシーケンス内に保持されています。.

これらの構造は、それぞれ異なる目的を果たしています:

  • ブートセクタには、BPBおよびブート関連情報が格納されています。.
  • FSInfoには空き領域のヒントが保存されます。.
  • バックアップブートレコードは、重要なブート情報の代替コピーを提供します。.

FSInfoは2つ目のVBRではなく、その空きクラスタ数は必ずしも正確で、継続的に更新される値とは限りません。.

exFATのメインおよびバックアップブート領域exFATでは、「ブート領域」と呼ばれる、より広範な構造を採用しています。.

によると、 Microsoft exFAT ファイルシステム仕様, 、このボリュームにはメイン・ブート領域とバックアップ・ブート領域が含まれており、それぞれ12セクタを占めています。.

体積相対セクター

メインブート領域

バックアップブート領域

0 / 12

ブートセクター

ブートセクタのバックアップ

1–8 / 13–20

拡張ブートセクタ

拡張ブートセクタのバックアップ

9 / 21

OEMパラメータ

OEMパラメータのバックアップ

10 / 22

予約

バックアップ用(予約済み)

11 / 23

ブートチェックサム

バックアップブートチェックサム

メインブートセクタには、exFATボリュームを記述するために使用される主要なパラメータが含まれています。.

重要な項目には、以下のものが含まれます:

フィールド

バイトオフセット

サイズ

目的

JumpBoot

0

3バイト

ブートストラップ・ジャンプ命令

ファイルシステム名

3

8バイト

ファイルシステムを exFAT として識別します

パーティションオフセット

64

8バイト

メディア相対のパーティションオフセット

巻数・長さ

72

8バイト

セクタ単位のボリューム長

FatOffset

80

4バイト

最初のFATの開始セクタ

FatLength

84

4バイト

各FATの長さ

ClusterHeapOffset

88

4バイト

クラスターヒープの開始セクタ

クラスター数

92

4バイト

クラスタ・ヒープ内のクラスタ数

ルートディレクトリの最初のクラスター

96

4バイト

ルートディレクトリの初期クラスタ

VolumeFlags

106

2バイト

ファイルシステムのステータスフラグ

1セクタあたりのバイト数シフト

108

1バイト

セクタサイズエンコーディング

クラスターごとのセクター数(シフトあたり)

109

1バイト

クラスタサイズの符号化

脂肪の数

110

1バイト

FAT構造体の数

使用率

112

1バイト

割り当てられたクラスタの報告された割合

exFAT VBR 実習

メインおよびバックアップのブート領域

参考画像 · exFAT

1 GiB のサンプル · 512 B/セクタ · 4 KiB/クラスタ · パーティションはディスクの LBA 2,048 から始まる

オフセット / 16進数 / ASCII

デコードされたフィールド

アイデンティティ対応についてメタデータ誠実さ暗い塗りつぶし = 選択済み
レイアウト、サンプルノート、およびソース

exFAT。. セクタ0~11および12~23は、それぞれ独立した12セクタからなるブート領域を形成しています。 チェックサムは、各領域の直前の11セクタから、ブートセクタのバイト106、107、および112をスキップして計算され、そのチェックサムセクタ内で128回繰り返される。このサンプルでは、メインとバックアップの開始部分は同一である。バックアップフラグおよび使用率は、リーダーによって古いデータとして扱われる。 ブートストラップは提供されていません。メインのブートコードのバイトは F4、拡張コードは 0 です。OEM パラメータは null、予約バイトは 0 です。ヒープには 261,632 クラスタがあり、ルートクラスタ 12 にはビットマップおよび大文字メタデータ用の領域が確保されていますが、その内容については本実習の範囲外です。.

ディスクのキャプチャやマウント可能なイメージではなく、人工的に作成されたティーチングバイトです。オフセットはセクタ単位の16進数で、整数フィールドはリトルエンディアン形式でエンコードされています。ディスクLBA = 2,048 + ボリュームセクタ。すべてのセクタ範囲は端数を含むものとし、マップは概略図です。 フィールドを選択するか、そのバイトをクリックしてください。ASCIIのドットは、印刷不可能なバイトを示しています。ブートストラップの内容は、教育用の埋め草です。.

出典: Microsoft 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ビットのチェックサムを1ビット分右回転させ、そのバイトの値を加算します。この際、結果は32ビット以内に収まるようにします。.
  5. 算出されたチェックサムを、ブートチェックサムセクタ全体にわたって繰り返される4バイトのパターンとして格納します。.

バックアップ・ブート領域には、それに対応する独自のチェックサム計算が設けられています。.

の除外 VolumeFlags そして 使用率 これは意図的な仕様です。これらのフィールドは、ブートチェックサムの再計算を行わずに更新することができます。また、仕様書では、バックアップブートセクタ内の対応する値は、古いものとして扱う必要があると規定されています。.

つまり、メイン・ブート領域とバックアップ・ブート領域をバイト単位で比較することは、普遍的な検証方法としては適切ではないということです。.

その代わりに、各領域は、それぞれ固有のチェックサムおよびフィールドの妥当性に関するルールに従って検証されなければなりません。.

ボリューム・ブート・レコードの検査と検証方法

VBRを検査するには、ボリュームがどこから始まるか、またそのレイアウトを定義しているファイルシステムがどれかを把握しておく必要があります。.

RAWセクタは、まずボリュームのフォーマットを特定せずに、汎用テンプレートを使用して解釈すべきではありません。.

手順 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:16 進エディタを使用して構造を確認する

ディスクエディタや16進エディタを使用すると、セクターの生のバイトデータとそのオフセットを表示することができます。.

読み取り専用の検査を行う場合は:

  1. 適切な16進エディタを使用して、ディスクイメージまたは該当する物理デバイスを開きます。.
  2. 計算されたバイトオフセットの位置に移動します。.
  3. 先頭のバイトとファイルシステム識別子を確認してください。.
  4. 対応するファイルシステム仕様を用いて、関連するフィールドを解釈してください。.
  5. フィールドの値に内部的な整合性があるかどうかを確認してください。.

たとえば、NTFSのブートセクタはNTFSのフィールドレイアウトに基づいて解釈すべきであり、FAT32のセクタはFAT32のBPB定義に基づいて解釈すべきです。.

検査中は、ソースディスクを編集しないでください。ソースに重要なデータが含まれている場合は、読み取り専用のイメージを使用することをお勧めします。.

ステップ 4: ファイルシステム固有の一貫性を確認する

VBRは、単一の指標ではなく、複数の指標を用いて評価すべきである。.

確認すべき事項としては、次のようなものがあります:

  • 報告された「1セクターあたりのバイト数」の値が、そのフォーマットに対して有効であるかどうか。.
  • 「クラスターあたりのセクター数」が有効な値であるかどうか。.
  • ボリュームの長さが、利用可能なパーティションまたはボリュームエクステントの範囲内に収まるかどうか。.
  • ファイルシステム固有のオフセットが、妥当な場所を指しているかどうか。.
  • バックアップ構造が、関連するフォーマットで指定された場所に配置されているかどうか。.
  • 必要なチェックサムおよび署名が有効かどうか。.

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のブート構造の違いを理解しておくことは、ブートレコードの破損と、より広範囲にわたるファイルシステムの破損や実際のユーザーデータの損失とを区別する上でも役立ちます。.

よくあるご質問

ボリューム・ブート・レコードとパーティション・ブート・レコードは同じものですか?

多くの従来のPCディスク構成では、ボリュームはパーティションの先頭から始まるため、これらの用語は同じセクタを指します。ただし、用語の定義は状況によって異なります。パーティションはディスク上の領域を指すのに対し、ボリュームはファイルシステム用に構成されたストレージ領域を指します。.

VBRは常にLBA 0に位置するのでしょうか?

いいえ。パーティションが作成されたディスクでは、VBRは通常、そのボリュームの開始LBAに位置しています。ディスクのLBA 0は、MBRやプロテクティブMBRなどのディスクレベルの構造に属します。パーティションが作成されていないボリュームは、デバイスのLBA 0から始まる場合があります。.

GPTディスクにはボリュームブートレコードがありますか?

はい。GPTはディスクのパーティション構成を定義するものであり、個々のファイルシステムの内部構造を定義するものではありません。GPTディスクには、NTFS、FAT32、またはexFATのボリュームを含めることができ、それぞれが独自のブート関連構造を持っています。.

UEFIはボリューム・ブート・レコードを使用しますか?

ネイティブUEFI起動では、通常、VBRに格納されている従来のx86ブートストラップコードは実行されません。その代わりに、UEFIは、標準的なWindows UEFIインストールで使用されるFAT32 EFIシステムパーティションなど、サポートされているファイルシステムからEFIアプリケーションを読み込みます。ESPには、依然として独自のFAT32ブートセクタが存在します。.

ブートセクタにおける「55 AA Signature」とは何を意味するのでしょうか?

バイト 55 AA いくつかの従来のブートセクタ形式で使用されるブート署名です。これが存在することは構造上の有用な指標となりますが、BPB、ファイルシステムパラメータ、ブートストラップコード、またはバックアップ構造が有効であることを証明するものではありません。.

バックアップVBRはどこにあるのですか?

普遍的なバックアップ先というものは存在しません。FAT32では通常、以下の識別子で指定されるセクタが使用されます。 BPB_BkBootSec, 、多くの場合セクター6です。Windows NTの新しいバージョンでは、NTFSのレイアウトにおいて、バックアップブートセクタが通常、ボリュームの最終セクタに配置されます。exFATでは、ボリューム相対セクタ12から始まる独立した「バックアップブート領域」が使用されます。.

VBRの破損により、データが永久に失われることはありますか?

必ずしもそうとは限りません。VBRの破損により、ボリュームのマウントや起動ができなくなる場合がありますが、その他のファイルシステムのメタデータやユーザーデータのクラスタは無傷のまま残っていることもあります。復旧の結果は、破損の程度、その後の書き込み、およびデバイスの物理的な状態によって異なります。.

バシリイは、この分野で約10年の実務経験を持つデータ復元のスペシャリストです。そのキャリアを通じて、彼は削除されたファイル、フォーマットされたドライブ、失われたパーティション、RAWファイルシステムを含む何千もの複雑なケースの解決に成功してきました。彼の専門知識は、16進エディタなどの専門ツールを使用した手動復元方法と、復元ソフトウェアを使用した高度な自動化ソリューションの両方をカバーしています。バシリの使命は、信頼できるデータ復元知識をITプロフェッショナルと一般ユーザーの双方が利用できるようにし、貴重なデジタル資産を保護できるようにすることです。.