(Tiếp theo Đĩa cứng_2)
EBR (Extended Boot Record)
Như đã đề cập ở
phần trước, có hai loại partition là: primary partition và extended partition.
Khi extended
partition được tạo, hệ thống sẽ dành một entry trong partition table của MBR để
mô tả thông tin cho extended partition. Đây được xem như chỉ dẫn để đến được
EBR đầu tiên (EBR1).
Mỗi đĩa cứng chỉ có duy nhất một extended partition. Từ extended
partition này có thể tiếp tục chia nhỏ thành nhiều logical partition.
EBR là sector chứa thông tin mô tả cho logical partition (ổ
đĩa logic) nằm trong extended partition. Như vậy, trong một đĩa cứng có thể không có EBR nào, có một EBR, hoặc có rất
nhiều EBR.
Trong các hệ thống
DOS/Windows, mỗi logical partition được gán bằng một kí tự trong bảng chữ cái
(D:\, E:\ ...v.v).
Khi tạo primary
partition, thông tin mô tả về primary partition được lưu trong partition table
tại MBR, do chỉ có bốn entry nên số lượng primary partition tạo được nhiều nhất
là bốn. Với logical partition thì khác, EBR là sector đầu tiên trong mỗi
logical partition, mô tả thông tin về logical partition đó, và nếu có logical
partition đằng sau nữa, EBR sẽ chứa một con trỏ (địa chỉ) để trỏ tới EBR kết tiếp.
Như vậy, EBR trước sẽ liên kết với EBR sau tạo thành một chuỗi các EBR. Nghĩa
là việc tạo các logical partition là không giới hạn, nó chỉ phụ thuộc vào dung
lượng của đĩa cứng cấp cho extended partition.
Hình sau minh họa
về các EBR :
Cấu trúc của
EBR
EBR đầu tiên
(EBR1) nằm tại sector bắt đầu của extended partition (logical partition đầu
tiên).
Cấu trúc của EBR
cũng tương tự như MBR, gồm 512 byte, đượ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 logical partition (partition table)
|
64
|
|
01FE
|
0776
|
510
|
55h
|
Dấu hiệu nhận dạng
boot sector (0xAA55)
|
2
|
01FF
|
0777
|
511
|
AAh
|
||
Tổng kích thước:
|
512
|
Partition table của EBR gồm 64 byte, gồm bốn entry, mỗi entry
16 byte. Cụ thể như sau:
Địa chỉ
(offset)
|
Kích thước
(byte)
|
Mô tả
|
01BE
|
16
|
Thông tin mô tả cho logical partition hiện tại
|
01CE
|
16
|
Nếu có giá trị, là liên kết tới logical partition kế tiếp
|
01DE
|
16
|
Không sử dụng
|
01EE
|
16
|
Không sử dụng
|
Ví dụ về EBR
Quan sát một phần MBR của đĩa cứng sau:
Entry thứ ba của partition table, bắt đầu tại địa chỉ
0x01DE, kết thúc tại 0x01ED, có trường “partition type” mang giá trị 0x0F, nên
đây là entry chứa thông tin về extended partition.
Các trường của entry thứ ba:
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 là: 12289725)
|
0x0C
|
4
|
“57 64 44 00” (tổng
số sector: 4482135; ~2,3GB)
|
Từ thông tin mô tả của extended partition ở trên, có hai
thông tin quan trọng: sector bắt đầu của extended partition là 12289725 và kích
thước là ~2,3GB.
Nội dung của EBR đầu tiên (EBR1) nằm tại sector 12289725.
Sector 12289725 được minh họa trong hình sau:
EBR1 gồm 512 byte, trong đó chỉ có trường partition table là
có dữ liệu. Trường partition table bắt đầu tại địa chỉ 0x01BE, gồm 64 byte. Cụ
thể:
Địa chỉ
(offset)
|
Kích thước (byte)
|
Mô tả
|
01BE
|
16
|
Thông tin mô tả về logical partition đầu tiên (ổ đĩa D:\)
|
01CE
|
16
|
Liên kết tới phần mô tả thông tin cho logical partition kế
tiếp (EBR2)
|
01DE
|
16
|
Không sử dụng
|
01EE
|
16
|
Không sử dụng
|
Entry đầu tiên của partition table, bắt đầu tại 0x01BE, kết
thúc tại 0x01CD là thông tin mô tả cho logical partition đầu tiên (ổ đĩa logic
đầu tiên của Extended partition), cụ thể:
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 là: 63)
|
0x0C
|
4
|
“41 60 1F 00” (tổng
số sector: 2056257; ~1GB)
|
Lưu ý: sector bắt đầu của ổ đĩa logic (dạng LBA) là số
sector tương đối, nghĩa là, tính từ nơi bắt đầu của extended partition.
Entry thứ hai của partition table, bắt đầu tại 0x01CE, kết
thúc tại 0x01DD là thông tin liên kết đến EBR2. Cụ thể:
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” (địa chỉ LBA, sector bắt đầu là: 2056320)
|
0x0C
|
4
|
“D7 03 25 00” (tổng
số sector: 2425815; ~1,2GB)
|
Từ thông tin về EBR2, biết được EBR2 bắt đầu tại sector: 2056320.
Đây cũng chính là sector chứa nội dung của EBR2.
Vì sector bắt đầu của EBR2 là vị trí tương đối, nên để tới
được sector vật lý của 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.
Đọc sector 14.346.045, được kết quả như hình dưới đây:
Vì trong extended partition chỉ tạo hai logical partition
(hai ổ đĩa logic), nên chỉ có 2 EBR, EBR2 không còn liên kết tới EBR nào nữa.
Dưới đây là nội
dung partition table của EBR2:
Địa chỉ dạng Hex (offset)
|
Kích thước (byte)
|
Mô tả
|
01BE
|
16
|
Thông tin mô tả cho logical partition thứ hai (ổ đĩa E:\)
|
01CE
|
16
|
Không sử dụng
|
01DE
|
16
|
Không sử dụng
|
01EE
|
16
|
Không sử dụng
|
Thông tin mô tả cho logical partition thứ hai của extended
partition (ổ đĩa E:\):
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” (địa
chỉ LBA, sector bắt đầu là: 63)
|
0x0C
|
4
|
“98 03 25 00” (tổng
số sector: 2425752; ~1,2GB)
|
----------------------
Cập nhật: 2013_3_5
----------------------
Tham khảo:
Cập nhật: 2013_3_5
----------------------
Tham khảo:
[3] FAT32_Hardware White Paper
[4] http://en.wikipedia.org