2.3 Phân vùng trên đĩa và quá trình khởi động
19
lệnh và hệ thống trình đơn (thực đơn). Chương trình sfdisk có vài khả năng cao
hơn, ví dụ, cho phép thao tác trên các phân vùng đã có của đĩa.
DOS sử dụng trường
begin và end của bảng phân vùng và Interrupt 13 của
BIOS (Int 13h) để truy cập tới đĩa, vì thế không thể sử dụng đĩa có dung lượng
lớn hơn 8,4 Gbyte, ngay cả với các BIOS mới (về vấn đề này sẽ nói đến ở sau),
còn phân vùng thì không thể lớn hơn 2,1 Gbyte (nhưng đây là do hạn chế của hệ
thống tập tin FAT16).
Linux thì chỉ sử dụng trường
start và length của bảng phân vùng đĩa và hỗ
trợ các phân vùng chứa đến 232 sector, tức là dung lượng có thể đạt 2 Tbyte
Vì trong bảng chia ổ đĩa chỉ có 4 dòng cho các phân vùng, số phân vùng chính
trên đĩa ngay từ đầu dã hạn chế: không thể lớn hơn 4. Khi mà 4 phân vùng trở
thành ít, thì người ta sáng chế ra phân vùng lôgíc. Một trong số các phân vùng
chính trở thành
mở rộng (loại phân vùng - 5 hay F hay 85 trong hệ cơ số mười
sáu). Và trong phân vùng mở rộng người ta tạo ra các
phân vùng lôgíc. Phân
vùng mở rộng không được sử dụng trực tiếp mà chỉ dùng để ghi các phân vùng
lôgíc. Sector đầu tiên của phân vùng mở rộng ghi nhớ bảng phân vùng với bốn
đầu vào: một dùng cho phân vùng lôgíc, một cho phân vùng mở rộng khác, còn
hai cái còn lại không được sử dụng. Mỗi phân vùng mở rộng có một bảng chia
của mình, trong bảng này, cũng giống như trong phân vùng mở rộng chính, chỉ
sử dụng có hai dòng để đưa ra một phân vùng lôgíc và một phân vùng mở rộng.
Như vậy, thu được một chuỗi các mắt xích từ bảng phân vùng, mắt xích đầu tiên
mô tả ba phân vùng chính, và mỗi mắt xích tiếp theo – một phân vùng lôgíc và
vị trí của bảng tiếp theo.
Chương trình sfdisk trên Linux cho thấy toàn bộ chuỗi này:
[root]# sfdisk -l -x /dev/hda
Disk /dev/hda: 784 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
Device
Boot
Start
End
#cyls
#blocks
Id
System
/dev/hda1
*
0+
189
190-
1526143+
6
FAT16
/dev/hda2
190
783
594
4771305
5
Extended
/dev/hda3
0
—
0
0
0
Empty
/dev/hda4
0
—
0
0
0
Empty
/dev/hda5
190+
380
191-
1534176
6
FAT16
—
381
783
403
3237097+
5
Extended
—
190
189
0
0
0
Empty
—
190
189
0
0
0
Empty
/dev/hda6
381+
783
403-
3237066
7
HPFS/NTFS
—
381
380
0
0
0
Empty
—
381
380
0
0
0
Empty
—
381
380
0
0
0
Empty
Số phân vùng lôgíc theo nguyên tắc không hạn chế, vì mỗi phân vùng lôgíc
có thể chứa bảng phân vùng và các phân vùng lôgíc của mình. Tuy nhiên trên
thực thế vẫn có những hạn chế. Ví dụ, Linux không thể làm việc với hơn 15 phân
vùng trên các đĩa SCSI và hơn 63 phân vùng trên đĩa IDE.
Phân vùng mở rộng trên một đĩa vật lý, hay trong một phân vùng mở rộng
chứa nó (có thể gọi là “mẹ”) chỉ có thể làm một: không một chương trình phân