Digital Forensics/File System

NTFS VBR(Volume Boot Record)

Noctis41 2025. 2. 4. 22:47

1. VBR이란?

VBR(Volume Boot Record)은 부팅 가능한 파티션(볼륨)의 첫 번째 섹터에 존재하는 영역으로, Boot Sector, 볼륨 크기, FAT 위치, $MFT 위치 등 볼륨과 관련된 다양한 정보를 포함하고 있다.

VBR이 손상되면 볼륨의 정상적인 인식이 불가능하며, 의도적으로 볼륨의 존재를 숨기기 위해 VBR을 훼손하는 경우도 존재한다. VBR이 손상되었을 경우 Backup VBR을 통해 복구가 가능하며, FAT32의 경우 첫 번째 볼륨에서 6번째 위치에 존재하고, NTFS의 경우 볼륨의 마지막 섹터에 위치한다.

파일 시스템 Backup VBR 위치
FAT32 볼륨의 첫 번째 섹터 + 6
NTFS 볼륨의 마지막 섹터

2. NTFS VBR 구조

NTFS 파일 시스템의 VBR은 다음과 같은 구조를 가지고 있다.

NTFS VBR 데이터 구조

Byte Range Hexadecimal Description
0 – 2 0x0000 – 0x0002 Jump command to boot code (보통 0xEB5290)
3 – 10 0x0003 – 0x000A OEM ID (일반적으로 "NTFS ")
11 – 12 0x000B – 0x000C Bytes per sector (보통 512 bytes)
13 0x000D Sectors per cluster (보통 8)
14 – 15 0x000E – 0x000F Reserved (항상 0)
24 – 25 0x0018 – 0x0019 Sectors per track
26 – 27 0x001A – 0x001B Number of heads
28 – 31 0x001C – 0x001F Hidden sectors
40 – 47 0x0028 – 0x002F Total sectors
48 – 55 0x0030 – 0x0037 Logical cluster number for the file $MFT
56 – 63 0x0038 – 0x003F Logical cluster number for the file $MFTMirr
64 – 67 0x0040 – 0x0043 Clusters per file record segment
68 – 71 0x0044 – 0x0047 Clusters per index block
72 – 79 0x0048 – 0x004F Volume serial number
80 – 83 0x0050 – 0x0053 Checksum
84 – 509 0x0054 – 0x01FD Boot code and error message
510 – 511 0x01FE – 0x01FF Signature ("0x55AA")

VBR의 첫 번째 섹터는 부트 코드(boot code)를 포함하는 부트 섹터로 구성되며, FAT 파일 시스템의 예약된 영역과 유사한 역할을 수행한다. NTFS의 경우 클러스터 크기에 따라 VBR의 크기가 달라질 수 있다.

클러스터 크기와 VBR 크기

Cluster Size (Byte) VBR Size (Sector)
512 1
1K 2
2K 4
4K 8

3. NTFS VBR 복구

VBR이 손상된 경우, NTFS에서는 Backup Boot Sector를 통해 복구할 수 있다. 복구 과정은 다음과 같다.

Backup Boot Sector를 이용한 복구 방법

  1. NTFS VBR이 손상된 경우, Backup Boot Sector(볼륨의 마지막 섹터에 위치) 를 찾아야 한다.
  2. Backup Boot Sector를 원래 VBR 위치에 복사하여 덮어씌운다.
  3. 수정된 VBR을 저장한 후, 다시 마운트하여 복구 여부를 확인한다.

VBR이 손상된 경우 복구 절차

  1. Backup Boot Sector 존재 시
    • VBR 위치 = LBA 총 섹터 수 - 1
    • Backup VBR을 원본 VBR 위치로 복사
    • 변경 사항 저장 후 볼륨을 다시 마운트
  2. Backup Boot Sector가 존재하지 않는 경우
    • 볼륨 내에서 VBR 패턴을 검색하여 복구
    • WinHex 등의 포렌식 툴을 사용하여 "EB 52 90 4E 54 46 53 20"(NTFS 서명) 검색
    • 수동으로 OEM ID, Bytes Per Sector, Sectors Per Cluster 등 주요 값을 입력하여 복구

NTFS VBR에서 중요한 복구 필드

필드명
OEM ID NTFS
Bytes Per Sector 512 (0x200)
Sectors Per Cluster 보통 8 (0x08)
Total Sectors LBA 총 섹터 수
Start Cluster for $MFT VBR 이후 "FILE" 시그니처 검색하여 확인
Start Cluster for $MFTMirr 보통 2번 클러스터 (0x02 * 8)
Clusters Per MFT Record 보통 1024 바이트 (F6)