He thong quan ly tap tin NTFS - 3 - EBR

(tiếp theo của He thong quan ly tap tin NTFS - 2 - MBR)


Extended Boot Record (EBR)

Tổ chức của EBR


Quay trở lại tình huống ví dụ, do tập tin Test.txt được tạo trong ổ đĩa logic C:\ nên có thể không cần thông tin về EBR vẫn đọc được nội dung của tập tin. Tuy nhiên, nếu tập tin Test.txt được tạo trong ổ đĩa D:\ hoặc E:\ thì việc đọc nội dung của tập tin sẽ phức tạp hơn. Vì ổ đĩa D:\ và E:\ nằm trên extended partition nên cần có thông tin về tổ chức của EBR mới có thể tìm và đọc được nội dung của Test.txt.

Quan sát hình dưới đây.





Khi chia ổ đĩa, nếu có tạo extended partition, hệ thống sẽ sử dụng một entry của partition table trong MBR để chứa thông tin mô tả cho extended partition. Thông tin của entry này được xem là đầu mối để đi đến các ổ đĩa logic còn lại trên đĩa (không tính ổ đĩa C:\), và đi đến các EBR. Ví dụ, entry có đánh dấu sao trong Hình 10 là đầu mối để đi đến EBR1, từ EBR1 sẽ đến được ổ đĩa logic D:\, và từ EBR1 cũng sẽ có đầu mối để đi đến EBR2, từ EBR2 sẽ đến được ổ đĩa logic E:\...v.v.

EBR là sector nằm ngay phía trước của mỗi ổ đĩa logic trong extended partition (phân vùng mở rộng). EBR gồm 512 byte. Dựa vào EBR, hệ thống sẽ có thông tin để đi đến các ổ đĩa logic kế tiếp. Như vậy, mỗi ổ đĩa logic được tạo trong extended partition sẽ có một EBR được tạo ra.

Tổ chức của EBR được mô tả trong bảng dưới đây.

Địa chỉ (offset)
Mô tả
Số byte
Hệ 16
Hệ 8
Hệ 10
0000
0000
0
Không sử dụng
446
01BE
0676
446
Bảng thông tin về các phân vùng
(Partition table)
64
01FE
0776
510
55h
Dấu hiệu nhận biết EBR (0xAA55)
2
01FF
0777
511
AAh
Tổng kích thước:
512

Thông tin quan trọng trong EBR là Bảng thông tin về các phân vùng (partititon table), bắt đầu tại địa chỉ (offset) 0x01BE, gồm 64 byte.

Tương tự như trong MBR, partitition table tại EBR cũng được chia thành bốn entry, trong đó:

-         Entry 1: bắt đầu tại địa chỉ 0x01BE, kết thúc tại 0x01CD.

-         Entry 2: bắt đầu tại địa chỉ 0x01CE, kết thúc tại 0x01DD.

-         Entry 3: bắt đầu tại địa chỉ 0x01DE, kết thúc tại 0x01ED.

-         Entry 4: bắt đầu tại địa chỉ 0x01EE, kết thúc tại 0x01FD.

Tuy nhiên, EBR chỉ sử dụng hai entry là Entry 1 và Entry 2. Entry 1 mô tả thông tin về ổ đĩa logic nằm ngay sau EBR này. Entry 2 chứa thông tin mô tả để tới được EBR kế tiếp, trong đó có thông tin về vị trí bắt đầu. Trong trường hợp là EBR cuối cùng thì chỉ có Entry 1 được sử dụng, các entry còn lại chứa giá trị 0.

Mỗi entry có kích thước 16 byte, gồm các trường được mô tả trong bảng dưới đây.

Địa chỉ
(offset)
Số
byte
Mô tả
0x00
1
Trạng thái khởi động:
 - 0x80: có khả năng khởi động
 - 0x00: không có khả năng khởi động
 - Giá trị khác: không hợp lệ
0x01
3
Địa chỉ bắt đầu của ổ đĩa logic hoặc EBR kế tiếp. Sử dụng địa chỉ dạng CHS. Giá trị CHS được mô tả cụ thể trong ba byte dưới đây.
0x01
1
Chỉ số head của CHS, kí hiệu là H.
0x02
1
Chỉ số sector của CHS, được lưu trong sáu bit thấp (bit 5–0); hai bit: thứ 6 và thứ 7 được chuyển qua thành bit thứ 8 và thứ 9 của chỉ số cylinder.
0x03
1
Tám bit thấp của chỉ số cylinder (chỉ số của cylinder gồm 10 bit).
0x04
1
Kiểu định dạng của ổ đĩa logic (FAT32, NTFS…v.v) hoặc kiểu của partition (partition type).
0x05
3
Địa chỉ kết thúc của ổ đĩa logic hoặc vùng đĩa chứa EBR kế tiếp. Sử dụng địa chỉ dạng CHS. Giá trị CHS được mô tả cụ thể trong byte dưới đây.
0x05
1
Chỉ số head của CHS, kí hiệu là H.
0x06
1
Chỉ số sector của CHS, được lưu trong sáu bit thấp (bit 5–0); hai bit: thứ 6 và thứ 7 được chuyển qua thành bit thứ 8 và thứ 9 của chỉ số cylinder.
0x07
1
Tám bit thấp của chỉ số cylinder (chỉ số của cylinder gồm 10 bit).
0x08
4
Sector bắt đầu của ổ đĩa logic hoặc EBR kế tiếp. Lưu ý, địa chỉ này được tính từ vị trí bắt đầu của extended partition, chứ không tính từ đầu đĩa cứng vật lý. (sector được đánh số theo dạng LBA – Logical Block Address). Được lưu theo định dạng little-endian.
0x0C
4
Tổng số khối (block, sector) của ổ đĩa logic, hoặc vùng đĩa chứa EBR kế tiếp. Được lưu theo định dạng little-endian.

 

Ví dụ về EBR


Quan sát một phần MBR của đĩa cứng trong Hình 11.




Xét entry thứ ba của partition table, bắt đầu tại địa chỉ 0x01DE, kết thúc tại 0x01ED (phần tô vàng), có trường partition type mang giá trị 0x0F, giá trị này cho biết đây là entry chứa thông tin mô tả extended partition (đọc thêm về Kiểu của phân vùng).

Các trường cụ thể của entry thứ ba được mô tả trong bảng bên dưới.

Offset
Số
byte
Mô tả
0x00
1
“00”: không có khả năng khởi động.
0x01
3
“00 81 FD”: ba byte địa chỉ bắt đầu dạng CHS.
0x01
1
0 (head)
0x02
1
1 (sector)
0x03
1
765 (cylinder)
0x04
1
0x0F: extended partition.
0x05
3
“FE FE FF”: ba byte địa chỉ kết thúc dạng CHS.
0x05
1
 254(head)
0x06
1
 63(sector)
0x07
1
 1023(cylinder)
0x08
4
“BD 86 BB 00”: sector bắt đầu của extended partition là 12289725.
0x0C
4
“57 64 44 00”: tổng số sector của extended partition là 4482135; tính ra kích thước: ~2,3GB.

Từ thông tin mô tả về extended partition ở trên, có hai thông tin quan trọng là: sector bắt đầu của extended partition là 12 289 725 và kích thước của extended partition là ~2,3GB.

Vị trí bắt đầu của extended partition cũng là vị trí của EBR đầu tiên trên đĩa cứng, tạm gọi là EBR1. Nội dung của EBR1 nằm tại sector 12 289 725.

Hình 12 minh họa một phần của sector 12 289 725, trong đó có nội dung của partition table tại EBR1.



EBR1 gồm 512 byte. Trong đó, partition table bắt đầu tại địa chỉ 0x01BE, gồm 64 byte, chỉ có hai entry đầu tiên trong partition table là có dữ liệu (phần tô màu vàng và xanh). Cụ thể:

-         Entry 1 (tô màu vàng): thông tin mô tả về ổ đĩa logic D:\.

-         Entry 2 (tô màu xanh): thông tin mô tả để đi tới EBR tiếp theo (EBR2).

Bảng sau là nội dung các trường của Entry 1.

Offset
Số byte
Mô tả
0x00
1
“00”: không có khả năng khởi động.
0x01
3
“01 81 FD”: ba byte địa chỉ bắt đầu dạng CHS.
0x01
1
1 (head)
0x02
1
1 (sector)
0x03
1
765 (cylinder)
0x04
1
0x0B: FAT32
0x05
3
“FE FF 7C”: ba byte địa chỉ kết thúc dạng CHS.
0x05
1
 254(head)
0x06
1
 63(sector)
0x07
1
 892(cylinder)
0x08
4
“3F 00 00 00”: sector bắt đầu của ổ đĩa logic D:\ là 63, tính từ vị trí bắt đầu của EBR1.
0x0C
4
“41 60 1F 00”: tổng số sector của ổ đĩa logic D:\ là 2056257; tính ra kích thước là ~1GB.

Bảng sau là nội dung các trường của Entry 2, thông tin quan trọng cần quan tâm là sector bắt đầu của EBR2.

Offset
Số
byte
Mô tả
0x00
1
“00”: không có khả năng khởi động.
0x01
3
“00 C1 7D”: 3 byte địa chỉ bắt đầu dạng CHS.
0x01
1
0 (head)
0x02
1
1 (sector)
0x03
1
893 (cylinder)
0x04
1
“05”: extended partition
0x05
3
“FE FF FF”: 3 byte địa chỉ kết thúc dạng CHS.
0x05
1
 254(head)
0x06
1
 63(sector)
0x07
1
 1023(cylinder)
0x08
4
“80 60 1F 00”: vị trí của EBR2 là sector 2 056 320.
0x0C
4
“D7 03 25 00”: tổng số sector là 2 425 815; tính ra kích thước là  ~1,2GB.

Từ thông tin về EBR2, biết được EBR2 nằm tại sector 2 056 320. Đây là sector tương đối, tức là tính từ vị trí bắt đầu của extended partition, nên để đọc được EBR2, cần phải cộng thêm sector bắt đầu của extended partition: 2 056 320 + 12 289 725 = 14 346 045.

Sector 14 346 045 chứa nội dung của EBR2, Hình 13 dưới đây là nội dung partition table tại EBR2.




Partition table tại EBR2 chỉ có Entry 1 có dữ liệu (phần tô màu vàng), đây là thông tin mô tả cho ổ đĩa logic E:\. EBR2 không có thông tin mô tả cho EBR kế tiếp, nên đây là EBR cuối.

Nội dung của Entry 1 được minh họa trong bảng sau.

Offset
Số
byte
Mô tả
0x00
1
“00”: không có khả năng khởi động.
0x01
3
“01 C1 7D”: 3 byte địa chỉ bắt đầu - dạng CHS.
0x01
1
1 (head)
0x02
1
1 (sector)
0x03
1
893 (cylinder)
0x04
1
“0B”: FAT32
0x05
3
“FE FF FF”: 3 byte địa chỉ kết thúc - dạng CHS.
0x05
1
 254(head)
0x06
1
 63(sector)
0x07
1
 1023(cylinder)
0x08
4
“3F 00 00 00”: sector bắt đầu là 63, tính từ vị trí bắt đầu của EBR2.
0x0C
4
“98 03 25 00”: tổng số sector là 2 425 752; tính ra kích thước là ~1,2GB.

-----------------------------

Tài liệu đã tham khảo:
Lê Gia Công, FAT32, Khoa CNTT, Đại học Đà Lạt
Brian Carrie, File System Forensic Analysis, Addison Wesley Professional, 2005
-------------------
Cập nhật 2014/5/28
-----------------------
Đọc thêm
He thong quan ly tap tin - NTFS - 4 - VBR - BPB