Tải bản đầy đủ (.doc) (23 trang)

BÁO CÁO THỰC TẬP-Đề tài Mạng riêng ảo VPN trên nền công nghệ MPLS

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (308.56 KB, 23 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO TẬP ĐOÀN BƯU CHÍNH VIỄN THÔNG VIỆT NAM
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

TIỂU LUẬN – MẠNG THẾ HỆ SAU
Đề tài: Mạng riêng ảo VPN trên nền công nghệ
MPLS
NGƯỜI HƯỚNG DẪN: TS LÊ NGỌC GIAO
HỌC VIÊN: NGUYỄN HOÀNG ANH – CH09CNT4
NGUYỄN THỊ TUYẾT MAI – CH09CNT4
LƯU THỊ THU HÀ – CH09CNT4
GIANG NGUYÊN VIỆT – CH09CNT4
ĐÀO NGỌC THÀNH – CH09CNT4
HÀ NỘI 6/2010
Mục lục
1 Tổng quan về FAT 12 5
1.1 Tổ chức đĩa 5
1.2 Boot Sector 6
1.3 FAT (File Allocation Table) 8
1.4 Thư mục (Directories) 9
1.5 Tại sao cần bảng FAT 11
1.6 Đóng gói FAT 12
2 Giới thiệu về FAT 16 13
2.1 Định nghĩa FAT16: 13
2.2 Master Boot Record (MBR) 13
2.3 Sự phân vùng ổ cứng 15
3 Tổng quan về FAT32 17
3.1 Giới thiệu FAT32 17
3.2 Cấu trúc hệ thống file FAT32 18
3.2.1 Boot Sector và BPB 18
3.2.2 Cấu trúc vùng dữ liệu của FAT32 20
3.2.3 Cấu trúc thư mục FAT32 21


Danh sách các hình vẽ
Hình 1Tổ chức đĩa của hệ thống file FAT 12 5
Hình 2Ví dụ về việc sử dụng bảng FAT 12

Danh các các bảng biểu
Bảng 1Tổng kết tổ chức của đĩa 6
Bảng 2 Boot sector cho đĩa mềm định dạng DOS 7
Bảng 3 Các giá trị danh mục FAT 8
Bảng 4 Danh mục thư mục (Directory entry) 9
Bảng 5 Bảng thuộc tính chi tiết 10
Bảng 6 Bảng thông tin chi tiết về MBR 14
Bảng 7 Partition Entry 14
Bảng 8 Danh sách các kiểu bảng FAT thông dụng trên
Hệ điều hành của MS 15
Bảng 9 Bản ghi khởi động của FAT16 16
Bảng 10 Thông tin đĩa trên FAT16 16
Bảng 11 Kích thước của cluster so với ổ cứng 17
Bảng 12 Kích thước cluster mặc định cho FAT32 18
Bảng 13 Bảng cấu trúc của Boot Sector và BPB 19
Bảng 14 Cấu trúc FAT32 Root Directory 22
1 Tổng quan về FAT 12
File Allocation Table (FAT) – bảng định vị tệp là một bảng chứa trong đĩa cứng
hoặc đĩa mềm mà chỉ định trạng thái và vị trí của các cluster dữ liệu trong đĩa.
FAT có thể được coi là “mục lục” của một đĩa. Nếu FAT bị phá hủy hoặc mất, đĩa
sẽ không thể đọc được. Fat 12 là hệ thống file trong một đĩa mềm. Số 12 được suy
từ thực tế là bảng FAT gồm các danh mục 12 bit (12 bit entries).
Không gian chứa trong một đĩa mềm được phần chia thành các đơn vị được gọi là
sector. Trong những thiết bị chứa lớn hơn, một bó các sectors tạo thành một
cluster. Tuy nhiên, đối với một đĩa mềm, số lượng các sector trong một cluster là
một. Cũng như thế, kích cỡ của một sector ( và cũng là một cluster) là 512 bytes

cho một đĩa mềm.
1.1 Tổ chức đĩa
Một đĩa mềm FAT 12 gồm 4 phần chính như sau: boot sector, các bảng FAT, root
directory (thư mục gốc), và vùng dữ liệu
Hình 1Tổ chức đĩa của hệ thống file FAT 12
• Boot sector bao gồm sector đầu tiên (sector 0) trong dung lượng đĩa. Boot
sector chứa thông tin đặc tả về phần của tổ chức của file hệ thống, kể cả
cách các bản sao của bản FAT được thể hiện, độ lớn của một sector, số
lượng sector có trong một cluster…
• FAT tables -Các bảng FAT chứa con trỏ tới tất cả các cluster trong đĩa, và
chỉ định số của cluster tiếp theo trong chuỗi cluster hiện tại, chỉ ra một
cluster trống hoặc có lỗi. Các bảng FAT là cách duy nhất để tìm vị trí của
các file và thư mục trong phần còn lại của đĩa. Có hai bản sao thừa đặc
trưng của bảng FAT trong đĩa cho an toàn dkữ liệu và mục đích khôi phục.
Trong một đĩa mềm, do một cluster chỉ gồm một sector, có một danh mục
FAT trỏ đến tất cả các sector trong đĩa.
• Root directory-thư mục gốc: là thư mục chính trong đĩa. Không giống các
thư mục khác định vị trong vùng dữ liệu của đĩa, root directory có một kích
cỡ giới hạn ( với FAT 12, 14 sector * 16 danh mục thư mục cho mỗi sector
=224 mục có thể), giới hạn tổng số lượng file hoặc thư mục có thể tạo ra
trong đó.
• Data Area- Vùng dữ liệu: sector hay cluster đầu tiên của vùng dữ liệu
tương ứng với cluster 2 của file hệ thống(cluster đầu tiên luôn luôn là
cluster 2). Vùng dữ liệu bao gồm file và thư mục dữ liệu và mở rộng trên
các sector còn lại của đĩa.
Tổ chức đĩa được tổng kết ở bảng dưới
Logical
Sector
Nội dung
0 Boot Sector

1 Sector đầu tiên trong FAT đầu tiên
10 Sector đầu tiên trong FAT thứ hai
19 Sector đầu tiên trong root directory của đĩa mềm
XX
Sector cuối cùng trong root directory (xem bytes 17 và 18 trong
boot sector)
XX + 1 Khởi đầu của vùng dữ liệu cho đĩa mềm
Bảng 1Tổng kết tổ chức của đĩa
Với FAT 12, XX =32 và 14 (32-19+1) sectors được dành cho thư mục gốc (root
directory)
1.2 Boot Sector
Boot sector tồn tại ở sector 0 trong đĩa và chứa hình học cơ bản của đĩa: là một tập
thông tin cần có cho hệ điều hành sử dụng đĩa một cách đúng đắn. Bất cứ khi nào
đĩa được sử dụng, thông tin từ boot sector được đọc và bất kỳ thông tin cần thiết
đều lấy ra từ đó. Boot sector trong đĩa định dạng DOS là một chuỗi bytes dạng
như sau:
Byte bắt
đầu
Độ dài (đơn vị
bytes)
Dữ liệu chứa
0 11 Bỏ qua
11 2 Số bytes cho mỗi sector
13 1 Số sectors trên một cluster
14 2 Số sector dành riêng
16 1 Số lượng FATs
17 2 Số lượng tối đa của mục root directory
19 2
Tổng số lượng sector
a

21 1 Bỏ qua
22 2 Sectors trên mỗi FAT
24 2 Sectors trên mỗi track
26 2 Số lượng heads
28 4 Bỏ qua
32 4
Tổng số Sector cho FAT32 (0 for FAT12 and
FAT16)
36 2 Bỏ qua
38 1
Boot signature
b
39 4 Volume id
c
43 11
Volume label
d
54 8 Loại file hệ thống (ví dụ. FAT12, FAT16)
e
62 - Phần còn lại của boot sector (bỏ qua)
Bảng 2 Boot sector cho đĩa mềm định dạng DOS
a. Tổng số đếm sector- đây là trường 16 bit là số lượng sector trong volume.
Số đếm này gồm cả số của tất cả các sector trong 4 vùng của đĩa. Với FAT
12 và FAT 16, trường này thể hiện số sector. Với FAT 32, tổng số sector
được thể hiện trong trường từ byte 32 đến 35.
b. Boot signature: boot signature mở rộng. Đây là chữ ký byte chỉ rõ 3 trường
sau trong boot sector sẽ hiện diện. Giá trị nên là 0x29 để chỉ rõ điều đó.
c. Volume id- Cũng là Volume Serial number. Trường này, cùng với Volume
label, hỗ trợ theo dõi đĩa. Những giá trị đó cho phép hệ thống file FAT phát
hiện ra việc đưa đĩa sai vào ổ mềm. ID này luôn được sinh bởi kết hợp của

ngày và thời gian trong một giá trị 32 bit.
d. Volume lable- Trường này hợp với trường 11 byte ghi volume label trong
root directory. Ghi chú: hệ thống file FAT phải chắc rằng việc cập nhật
trường này khi trường volume label trong root directory đổi tên hay được
tạo ra. Việc thiết lập cho trường này khi không có volume label là chuỗi
“NO NAME ”.
e. File system type. Một trong những chuỗi “FAT12 ”, “FAT16 ”, “FAT ”.
Ghi chú: nhiều người nghĩ rằng chuỗi trong trường này để xác định loại
FAT nào nhưng điều đó không đúng. Chuỗi này chỉ là thông tin và không
được hệ Microsoft xác định loại FAT bởi nó thường không được thiết lập
hoặc không thể hiện. Chuỗi này nên được thiết lập dựa trên loại FAT do
một số hệ thống đọc file không phải của Microsoft đọc nó.
1.3 FAT (File Allocation Table)
Như đã đề cập, FAT là cấu trúc dữ liệu ánh xạ các sectors dữ liệu trong thiết bị lưu
trữ. Nó tương tự như một mảng và mỗi mục trong FAT tương ứng với một cluster
dữ liệu trong đĩa. Giá trị của mỗi mục trong FAT được quan tâm là những giá trị.
• Một giá trị chỉ rằng cluster dữ liệu này có là cluster cuối cùng của file
• Một giá trị chỉ rằng cluster dữ liệu này đang chưa sử dụng
• Một giá trị chỉ lúc cluster dữ liệu tiếp theo của file hiện tại được sắp xếp vị
trí.
Giá trị của mục FAT được mô tả rõ dưới đây:
Giá trị Ý nghĩa
0x00 Không sử dụng
0xFF0-
0xFF6
Cluster đã dùng
0xFF7 Cluster xấu
0xFF8-
0xFFF
Cluster cuối cùng trong một file

(giá trị
khác)
Số của cluster tiếp theo trong
file
Bảng 3 Các giá trị danh mục FAT
Chuyển từ số sector vật lý sang số sector logic.
FAT không làm việc với các giá trị sector dữ liệu logic. Với hệ thống FAT 12,
trong khi xác định số sector logic từ số sector vật lý, 2 yêu tố sau cần phải xem
xét:
• Từ việc tổ chức đĩa: coi như 33 sectors đầu tiên được định nghĩa
trước. Sector dữ liệu hiện thời mà giữ dữ liệu người dùng không tồn
tại trong 33 sectors đầu tiên và được bắt đầu bởi sector 33 ( bắt đầu
từ 0).
• Các mục (entries) tại vị trí 0 hoặc 1 của bảng FAT được chiếm. Do
đó chính entry 2 của bảng FAT chứa phần mô tả cho sector vật lý số
33.
Do đó, số sector vật lý = 33 + số mục FAT (FAT entry number) – 2.
Ví dụ, entry 5 của FAT tham chiếu tới sector dữ liệu vật lý số 36.
1.4 Thư mục (Directories)
Các thư mục ( như thư mục gốc) tồn tại như các tệp trong đĩa mà trong đó, nó
chiếm giữ một hoặc nhiều sectors. Mỗi sector (512 bytes) của một thư mục chứa
16 entries thư mục ( mỗi cái dài 32 bit). Mỗi entry thư mục mô tả và trỏ tới vài file
hoặc thư mục con trong đĩa. Do đó, tập hợp các danh mục thư mục cho một thư
mục chỉ định các file và các thư mục con của thư mục đó.
Mỗi danh mục thư mục chứa thông tin sau đây về file và thư mục con mà nó trỏ
tới.
Vị trí (đơn vị
byte bytes)
Độ dài (in
bytes)

Mô tả
0 8
Tên tệp (xem các ghi chú dưới đây về byte
đầu tiên trong trường này)
8 3 Mở rộng
11 1 Thuộc tính (chi tiết bên dưới)
12 2 Chiếm
14 2 Giờ tạo
16 2 Ngày tạo
18 2 Ngày truy cập gần nhất
20 2 FAT12 không dùng
22 2 Giờ ghi file gần nhất
24 2 Ngày ghi file gần nhất
26 2 Cluster logic đầu tiên
28 4 Cỡ của file (tính bằng bytes)
Bảng 4 Danh mục thư mục (Directory entry)
Ghi chú: Chúng ta đã biết rằng trong hệ thống FAT 12, một cluster chỉ có một
sector. Do đó, ta có thể dùng sector thay cluster trong tài liệu này.
Ghi chú về các mục của thư mục:
1. Trường cluster logic đàu tiên chỉ rõ điểm bắt đầu của file hoặc thư mục
con. Do đó, mục vào thư mục trỏ tới một file hoặc một thư mục con.
Ghi nhớ rằng nó cho giá trị của danh mục FAT. Ví dụ, nếu Cluster logic
đầu tiên có giá trị là 2 thì nó chỉ định rằng danh mục tới mảng FAT sẽ là
2, mà cluster vật lý sẽ là 33 trong hệ thống FAT 12. Nếu giá trị của
Cluster logic đầu tiên là 0, nó tham chiếu tới cluster đầu tiên của thư
mục gốc và danh mục thư mục do đó mô tả thư mục gốc. ( Nhớ rằng thư
mục gốc được liệt kê dưới dạng danh mục “ ”, nó là thư mục cha của tất
cả các thư mục trong nó.
2. Nếu byte đầu tiên của trường Filenam là 0xE5, danh mục thư mục là
free (là đang không sử dụng) và do đó không có file nào hoặc thư mục

con nằm trong danh mục thư mục này.
3. Nếu byte đầu tiên của trường filenam là 0x00 thì danh mục thư mục là
rỗi và tất cả các danh mục thư mục còn lại trong thư mục này đều là rỗi.
4. Trường thuộc tính của một danh mục thư mục có 8 bit mà mỗi bit cho
một thuộc tính của file hoặc thư mục được trỏ bởi danh mục thư mục
này, như sau:
Bit Mask Thuộc tính
0 0x01 Read-only
1 0x02 Hidden
2 0x04 System
3 0x08 Volume label
4 0x10 Subdirectory
5 0x20 Archive
6 0x40 Unused
7 0x80 Unused
Bảng 5 Bảng thuộc tính chi tiết
a. Nếu một bit trong trường thuộc tính được thiết lập (ví dụ 1), có nghĩa là file
hoặc thư mục con mà danh mục thư mục trỏ tới có thuộc tính tương ứng với
bit đó. Ví dụ, nếu trường thuộc tính là 0001 0010, có nghĩa là file/thư mục
con được trỏ là một thư mục được giấu. ( Bit 1 được bật, chỉ định rằng nó
được giấu, bit 4 được bận, chỉ định nó là một thư mục con, không phải là
một file. Nhớ rằng bit được đánh số từ phải sang trái.
b. Nếu byte thuộc tính có giá trị là 0x0F, có nghĩa là danh mục thư mục là một
phần của tên file dài và có thể được bỏ qua do mục đính của việc gán này. (
5. Các định dạng cho trường thời gian và dữ liệu được đặc tả trong white
paper của Microsoft cho hệ thống FAT.
6. Danh mục thư mục chỉ định nơi mà file hoặc thư mục con bắt đầu
(trường Cluster logic đầu tiên) và độ dài của file hoặc thư mục con
(trường File size). Tuy nhiên, file hoặc thư mục con nói chung không
được lưu một cách liên tục. Đối với một file dài hơn một cluster, ta phải

sử dụng FAT để tìm các cluster còn lại mà file được lưu trong đó
FAT 12 – biểu diễn tên file và phần mở rộng.
Các tên file trong DOS truyền thống giới hạn 8 ký tự cho tên và 3 ký tự cho phần
mở rộng. Có một vài điều để nhận biết:
• Các tên File/thư mục và các mở rộng không kết thúc null trong danh
mục thư mục
• Tên của File/thư mục luôn luôn chiếm 8 bytes- nếu chúng ngắn hơn
8 bytes (ký tự), các bytes còn lại được chèn bởi ký tự trống (mã
ASCII là 32 hoặc Hex là 0x20). Điều này cũng được áp dụng cho
phần mở rộng 3 ký tự
• Các tên file/thư mục và phần mở rộng luôn luôn là chữ hoa. Các tên
file/thư mục luôn được chuyển thành chữ hoa.
• Các tên của thư mục có thể cũng có phần mở rộng.
• “FILE1” và “FILE1.TXT” là duy nhất (mở rộng quan trọng).
• Các file và thư mục không thể có tên giống nhau ( kể cả các thuộc
tính có khác nhau)
Dưới đây là ví dụ cách tên file được chuyên thành 11 bytes cho tên file/thư mục và
phần mở rộng trong danh mục thư mục:
• Tên file được cung cấp [0123456789012]
• “foo.bar”  “FOO BAR”
• “FOO.BAR”  “FOO BAR”
• “Foo.Bar”  “FOO BAR”
• “foo”  “FOO ”
• “PICKLE.A”  “PICKLE A ”
• “prettybg.big”  “PRETTYBGBIG”
• “.big”  không hợp lệ! tên file/thư mục không thể bắt đầu
với ký tự “.”
1.5 Tại sao cần bảng FAT
Directory entry có một trường gọi là First Logical Cluster-Cluster logic đầu tiên
chỉ ra file hoặc thư mục con bắt đầu. Do các file và thư mục có thể lớn hơn một

sector, một thư mục hay file có thể được chứa qua nhiều hơn một sector. Các
sector dữ liệu thuộc về một file hoặc một thư mục không phải luôn luôn có vị trí
gần cạnh nhau trong bộ nhớ. Một FAT do đó được sử dụng để duy trì việc theo dõi
các sector được cấp phát, định vị cho file nào.
Để lấy ra toàn bộ nội dung của một file, ví dụ, Cluster logic đầu tiên phải trỏ đến
số sector mà giữ 512 byte dữ liệu đầu tiên. Dữ liệu của sector này cần được đọc.
Để xác định xem còn dữ liệu hay không, ta phải xem mục FAT mà tương ứng với
Cluster logic đầu tiên. Bằng việc kiểm tra giá trị của mục FAT, ta có thể xác định
được có sector khác được cấp phát cho file hay không. Nếu có, giá trị sector logic
sẽ được chuyển thành giá trị sector vật lý và dữ liệu trong sector đó được đọc.
Tiếp theo, mục FAT của sector dữ liệu thứ hai được kiểm tra xem đã hết file chưa,
nếu không lại làm tiếp.
Do đó, FAT cho phép truy cập dữ liệu chứa trong các sector không liên tục của
thiết bị lưu trữ.
Trong hình dưới, File1.txt được chứa trong sector logic 2,4,6 và 7. Trường thư
mục “Start Cluster” i.e Cluster logic đầu tiên trỏ vào sector số 2 là sector dữ liệu
đầu tiên. Trong FAT, giá trị của mục FAT 2 là 4, chỉ rõ là sector dữ liệu tiếp theo
của file 1.txt được chứa trong sector 4. Sector cuối cùng là 7, đương nhiên giữ giá
trị EOC (End of C)
Hình 2Ví dụ về việc sử dụng bảng FAT
1.6 Đóng gói FAT
Trong phần này mô tả cách giá trị 12 bit được chứa trong bảng FAT
Không gian đĩa mềm là 1.44 Mbytes
Số lượng byte trong một sector =512
Số lượng sector trong 1.44 M = x xấp xỉ 2812.
Do đó, số lượng các bit cần có đánh địa chỉ cho “x” sector là 12 bits (2
11
<2812
<2
12

)
Vậy 12 bit là số bit tối thiểu cần cho truy cập không gian 1.44M của đĩa mềm
Vấn đề của 12 bit chính là việc máy tính lưu trữ tất cả mọi thứ dưới dạng 8 bit (1
byte). Do đó, khi lưu 12 bit, lựa chọn sử dụng 16 bit để lưu 12 bit là không thỏa
đáng bởi việc để lãng phí 4 bit không sử dụng cho mỗi danh mục FAT. Do không
gian đĩa đối với đĩa mềm nên một giải pháp khác đã được thiết kế. Giải pháp này
gói 2 danh mục FAT (tổng 24 bit) vào 3 vị trí 8 bits. Việc đó rất hiệu quả, tuy
nhiên cần phải thực hiện một ít động tác để tách danh mục đơn ra. Để minh họa, ta
xem xét ví dụ sau:
Vị trí của byte:
0 76543210
1 54321098
2 32109876
Không gian 3 bytes này giữ 2 danh mục FAT. Danh mục đầu tiên là
109876543210 mà 4 bit đầu đến từ vị trí byte 1. Danh mục FAT thứ hai là
321098765432 mà 4 bit cuối cũng đến từ vị trí byte1.
Vậy cách thức mà chúng ta làm việc với FAT như thế nào? Trước tiên, chúng ta
phải coi FAT là một mảng các bytes gồm 8 bit bởi vì đó chính là cách biểu diễn
duy nhất trên C. Bây giờ, chúng ta muốn truy cập danh mục FAT thứ n thì chúng
ta phải chuyển giữa giá trị 8 bit và 12 bit.
2 Giới thiệu về FAT 16
2.1 Định nghĩa FAT16:
Với HĐH MS-DOS, hệ thống tập tin FAT (FAT16-để phân biệt với FAT32)
được công bố vào năm 1981 đưa ra một cách thức mới về việc tổ chức và quản lý
tập tin trên đĩa cứng, đĩa mềm. Tuy nhiên, khi dung lượng đĩa cứng ngày càng
tăng nhanh, FAT16 đã bộc lộ nhiều hạn chế. Với không gian địa chỉ 16 bit, FAT16
chỉ hỗ trợ đến 65.536 liên cung (clusters) trên một partition, gây ra sự lãng phí
dung lượng đáng kể (đến 50% dung lượng đối với những ổ đĩa cứng trên 2 GB).
2.2 Master Boot Record (MBR)
MBR là giống nhau trên mọi Hệ điều hành, nó được lưu trữ tại Sector đầu

tiên trên đĩa cứng, đó là Cylinder 0, Head 0, Sector 1. Đây là những lệnh đầu tiên
được chạy trên máy tính sau quá trình kiểm tra toàn bộ phần cứng của máy
(POST) và điều khiển quá trình chạy các phần mềm tiếp theo trên đĩa cứng. MBR
cũng bao gồm hệ thống tập tin chứa đựng các thông tin về các section khác trên
đĩa cứng. Đương nhiên nếu có bất kỳ điều gì xảy ra đối với section chỉ có 512 byte
này, ổ cứng của bạn sẽ không hoạt động được.
Offset Mô tả Size
000h Executable Code (Boots Computer) 446 Bytes
1BEh 1st Partition Entry (See Next Table) 16 Bytes
1CEh 2nd Partition Entry 16 Bytes
1DEh 3rd Partition Entry 16 Bytes
1EEh 4th Partition Entry 16 Bytes
1FEh Executable Marker (55h AAh) 2 Bytes
Bảng 6 Bảng thông tin chi tiết về MBR
Offset Mô tả Size
00h Current State of Partition (00h=Inactive, 80h=Active) 1 Byte
01h Beginning of Partition – Head 1 Byte
02h Beginning of Partition - Cylinder/Sector (See Below) 1 Word
04h Type of Partition (See List Below) 1 Byte
05h End of Partition – Head 1 Byte
06h End of Partition - Cylinder/Sector 1 Word
08h
Number of Sectors Between the MBR and the First Sector
in the Partition
1
Double
Word
0Ch Number of Sectors in the Partition
1
Double

Word
Bảng 7 Partition Entry
Giá trị Mô tả
00h Unknown or Nothing
01h 12-bit FAT
04h 16-bit FAT (Partition Smaller than 32MB)
05h Extended MS-DOS Partition
06h 16-bit FAT (Partition Larger than 32MB)
0Bh 32-bit FAT (Partition Up to 2048GB)
0Ch Same as 0BH, but uses LBA
1
13h Extensions
0Eh Same as 06H, but uses LBA
1
13h Extensions
0Fh Same as 05H, but uses LBA
1
13h Extensions
Bảng 8 Danh sách các kiểu bảng FAT thông dụng trên Hệ điều hành của MS
2.3 Sự phân vùng ổ cứng
Do FAT16 chỉ hỗ trợ tối đa 2GB cho mỗi phân vùng, vì vậy các ổ cứng có
dung lượng lớn phải chia thành nhiều phân vùng khác nhau. Phân vùng đầu tiên là
phân vùng chính (Primary Partition), và tất cả các phân vùng khác được gọi là
phân vùng mở rộng (Extended Partition), điều này giúp cho chúng ta tránh được
những rắc rối khi đọc các thông tin từ các phân vùng khác nhau. Bản ghi đầu tiên
trên bảng FAT chứa các thông tin về phân vùng chính như độ lớn, điểm bắt đầu,
điểm kết thúc. Bản ghi thứ hai trên bảng FAT chứa thông tin về các phân vùng mở
rộng, muốn đọc thông tin này, đầu đọc phải di chuyển đến sector đầu tiên của
phân vùng mở rộng, sector này tương tự như MBR, nếu nó rỗng thì chỉ có một
phân vùng mở rộng trong trường hợp ngược lại nó chứa thông tin chỉ đến phân

vùng tiếp theo.
Bản ghi khởi động của FAT16
Các thông tin này được định vị tại sector đầu tiên của mỗi phân vùng
Offset Mô tả Size
00h Jump Code + NOP 3 Bytes
03h OEM Name 8 Bytes
0Bh Bytes Per Sector 1 Word
0Dh Sectors Per Cluster 1 Byte
0Eh Reserved Sectors 1 Word
10h Number of Copies of FAT 1 Byte
11h Maximum Root Directory Entries 1 Word
13h Number of Sectors in Partition Smaller than 32MB 1 Word
15h Media Descriptor (F8h for Hard Disks) 1 Byte
16h Sectors Per FAT 1 Word
18h Sectors Per Track 1 Word
1Ah Number of Heads 1 Word
1Ch Number of Hidden Sectors in Partition
1 Double
Word
20h Number of Sectors in Partition
1 Double
Word
24h Logical Drive Number of Partition 1 Word
26h Extended Signature (29h) 1 Byte
27h Serial Number of Partition
1 Double
Word
2Bh Volume Name of Partition 11 Bytes
36h FAT Name (FAT16) 8 Bytes
3Eh Executable Code 448 Bytes

1Feh Executable Marker (55h AAh) 2 Bytes
Bảng 9 Bản ghi khởi động của FAT16
Thông tin đĩa trên FAT16
Offset Description
Start of Partition Boot Sector
Start + # of Reserved Sectors Fat Tables
Start + # of Reserved + (# of Sectors Per FAT * 2)
Root Directory
Entry
Start + # of Reserved + (# of Sectors Per FAT * 2) +
((Maximum Root Directory Entries * 32) / Bytes per
Sector)
Data Area (Starts
with Cluster #2)
Bảng 10 Thông tin đĩa trên FAT16

Ý nghĩa của Cluster (FAT Table Entries)
Một Cluster là một nhóm các Sector trên ổ cứng chứa đựng thông tin. Một
Cluster dung lượng 16K bao gồm 32 Sector (512*32=16384). Mỗi Cluster được
đại diện bởi một điểm trên bảng FAT. Khi duyệt qua các Entry trên bảng FAT,
nếu Entry này trống thì cluster tương ứng không chứa thông tin, trong trường hợp
ngược lại nó chứa ký hiệu kết thúc dữ liệu FFFFh hoặc thông tin về cluster kế tiếp
nếu dữ liệu được ghi trên nhiều cluster. Mọi dữ liệu trên các phân vùng bắt đầu
được ghi từ cluster số 2 (Ngay sau thư mục gốc – Root Directory).
FAT Code Range Ý nghĩa
0000h Available Cluster
0002h-FFEFh Used, Next Cluster in File
FFF0h-FFF6h Reserved Cluster
FFF7h BAD Cluster
FFF8h-FFFF Used, Last Cluster in File

3 Tổng quan về FAT32
3.1 Giới thiệu FAT32
Khi sử dụng FAT16, bạn chỉ có 65536 thẻ để quản lí các sector trên đĩa. Vì vậy
nếu đĩa cứng lớn hơn 32MB hay nói cách khác là có nhiều hơn 65536 sector thì
FAT16 không thể quản lí hết từng sector một. Do đó từ phiên bản DOS 4.0
Microsoft đã sử dụng giải pháp cluster. Cluster là một nhóm sector được FAT16
dùng chung một thẻ dữ liệu để quản lí như một sector duy nhất. Khi cấp phát đĩa
cho một file mới sẽ phải cấp toàn bộ một cluster chứ không thể cấp riêng một
sector nữa. Bảng sau đây sẽ cho biết kích thước cluster tuỳ vào ổ cứng:
Kích thước paritition Kích thước cluster
<128MB 2KB
128MB-256MB 4KB
256MB-512MB 8KB
512MB-1GB 16KB
1GB-2GB 32KB
Bảng 11 Kích thước của cluster so với ổ cứng
FAT16 không hỗ trợ các paritition lớn hơn 2GB.
Sự xuất hiện của các đĩa cứng ngày càng lớn hơn sẽ dẫn tới kích thước cluster lớn
hơn và điều này tương đương với lãng phí đĩa. Bởi vì nếu kích thước cluster trên
đĩa cứng 1.2GB của là 32KB, khi cấp phát đĩa cho 1 file chỉ gồm 1 byte vẫn phải
cấp cho nó toàn bộ 1 cluster. Do đó sẽ lãng phí 32KB-1byte còn lại.
Sự ra đời của FAT32 hỗ trợ các paritition lớn tới 2Terabytes, và kích thước cluster
nhỏ hơn 4 K với mọi parition nhỏ hơn 8 GB. Đó là vì nó có tới 4294967296 thẻ dữ
liệu để quản lí đĩa.
FAT32 được giới thiệu trong phiên bản Windows 95 Service Pack 2 (OSR 2),
được xem là phiên bản mở rộng của FAT16. Do sử dụng không gian địa chỉ 32 bit
nên FAT32 hỗ trợ nhiều cluster trên một partition hơn, do vậy không gian đĩa
cứng được tận dụng nhiều hơn. Ngoài ra với khả năng hỗ trợ kích thước của phân
vùng từ 2GB lên 2TB và chiều dài tối đa của tên tập tin được mở rộng đến 255 ký
tự

Bảng sau là kích thước cluster mặc định cho FAT32
Kích thước partition Kích thước cluster
<260 MB 512 bytes
260 MB - 8 GB 4 KB
8 GB - 16 GB 8 KB
16 GB - 32 GB 16 KB
>32 GB 32 KB
Bảng 12 Kích thước cluster mặc định cho FAT32
3.2 Cấu trúc hệ thống file FAT32
Một hệ thống file FAT được phân thành 4 phần cơ bản:
- Reserved Region (Vùng dự phòng)
- FAT Region (Vùng FAT)
- Root Directory Region (Vùng thư mục Root)
- File and Directory Data Region (Vùng File và thư mục dữ liệu)
3.2.1 Boot Sector và BPB
Cấu trúc dữ liệu quan trọng đầu tiên của FAT được gọi là BPB (BOIS
Parameter Block), nằm ở Sector đầu tiên của vùng Reserved Region. Sector này
thường được gọi là “boot sector” hoặc “reserved sector” hoặc “sector số 0”.
Bảng cấu trúc của Boot Sector và BPB:
Tên Offset (byte) Size (bytes) Mô tả
BS_jmpBoot 0 3 Lệnh nhảy
BS_OEMName 3 8 Nhà sản xuất
BPB_BytsPerSec 11 2 Số byte / sector
BPB_SecPerClus 13 1 Số sector / cluster
BPB_RsvdSecCnt 14 2 Số thứ tự của sector dành riêng
BPB_NumFATs 16 1 Số lượng FAT (thường là 2)
BPB_RootEntCnt 17 2 Số lượng điểm vào gốc
BPB_TotSec16 19 2 Tổng số sector (≤ 16 bit)
BPB_Media 21 1 Môi trường lưu trữ (F8h chỉ đĩa
cứng)

BPB_FATSz16 22 2 Số sector / FAT (không dùng)
BPB_SecPerTrk 24 2 Số sector / track
BPB_NumHeads 26 2 Số side
BPB_HiddSec 28 4 Sector logic
BPB_TotSec32 32 4 Tổng số sector ( > 16 bit)
Bảng 13 Bảng cấu trúc của Boot Sector và BPB
Từ Offset36 thì cấu trúc BPB/Boot Sector của FAT32 khác với
FAT12/FAT16
Tên Offset (byte) Size (bytes) Mô tả
BPB_FATSz32
36 4 Số sector / FAT
BPB_ExtFlags
40 2
Cờ mở rộng (bit 7 xác định có cần cập nhật
thông tin cho FAT
hay không)
BPB_FSVer
42 2
Phiên bản hệ thống file
BPB_RootClus
44 4
Cluster đầu tiên của folder gốc
BPB_FSInfo
48 2
Số thứ tự của sector chứa thông tin hệ thống
file
BPB_BkBootSec
50 2
Số thứ tự của bản sao boot sector
BPB_Reserved

52 12
Dành riêng
BS_DrvNum
64 1
Số thứ tự đĩa vật lý (80h chỉ đĩa 1)
BS_Reserved1
65 1
Không dùng
BS_BootSig
66 1
= 28h hay 29h để WinNT nhận dạng
BS_VolID
67 4
Số serial
BS_VolLab
71 11
Nhãn đĩa
BS_FilSysType
82 8
Hệ thống file
3.2.2 Cấu trúc vùng dữ liệu của FAT32
Sector đầu tiên của Cluster 2 (Vùng dữ liệu của ổ đĩa) được tính toán dựa
trên các trường của BPB như sau:
Đầu tiên, tính số Sector bị chiếm bởi Root Directory:
RootDirSectors = ((BPB_RootEntCnt * 32) + (BPB_BytsPerSec – 1)) / BPB_BytsPerSec;
Với FAT32, BPB_RootEntCnt = 0, vì vậy RootDirSectors=0
Bắt đầu của vùng dữ liệu (Data Region), sector đầu tiên của cluster 2 được
tính như sau:
If(BPB_FATSz16 != 0)
FATSz = BPB_FATSz16;

Else
FATSz = BPB_FATSz32;
FirstDataSector = BPB_ResvdSecCnt + (BPB_NumFATs * FATSz) + RootDirSectors;
Với Cluster N bắt kỳ, thứ tự sector của sector đầu tiên của cluster được tính:
FirstSectorofCluster = ((N – 2) * BPB_SecPerClus) + FirstDataSector;
3.2.3 Cấu trúc thư mục FAT32
Cluster đầu tiên của Root Directory trong FAT32 được lưu trong trường
BPB_RootClus
Cấu trúc FAT32 Root Directory
Tên Offset (byte) Size (bytes) Mô tả
DIR_Name
0 11 Tên – Mở rộng
DIR_Attr
11 1
Thuộc tính:
ATTR_READ_ONLY 0x01
ATTR_HIDDEN 0x02
ATTR_SYSTEM 0x04
ATTR_VOLUME_ID 0x08
ATTR_DIRECTORY 0x10
ATTR_ARCHIVE 0x20
ATTR_LONG_NAME ATTR_READ_ONLY |
ATTR_HIDDEN |
ATTR_SYSTEM |
ATTR_VOLUME_ID
DIR_NTRes
12 1
Dự phòng
DIR_CrtTimeTenth
13 1

Thời gian tạo (1/10 của giây)
DIR_CrtTime
14 2
Thời gian tạo
DIR_CrtDate
16 2
Ngày tạo
DIR_LstAccDate
18 2
Ngày truy xuất
DIR_FstClusHI
20 2
Cluster bắt đầu (2 byte cao)
DIR_WrtTime
22 2
Thời gian thay đổi thông tin
DIR_WrtDate
24 2
Ngày thay đổi
DIR_FstClusLO
26 2
Cluster bắt đầu (2 byte thấp)
DIR_FileSize
28 4
Kích thước
Bảng 14 Cấu trúc FAT32 Root Directory
Tài liệu tham khảo
[1] An overview of FAT12 - Rose-Hulman Institute of Technology Computer Science and Software
Engineering Prof. Archana Chidanandan
[2] />[3] An overview of FAT16 - Rose-Hulman Institute of Technology Computer Science and Software

Engineering Prof. Archana Chidanandan

×