2.4 Lựa chọn trình khởi động
23
khác nhau (trên các rãnh nằm gần rìa ngoài của đĩa, dài hơn, số sector được tăng
lên). Kết quả là bộ ba số C/H/S không còn phản ánh đúng cấu trúc “hình học của
đĩa”, và các phiên bản BIOS cũ không thể hỗ trợ truy cập tới toàn bộ không gian
đĩa.
Khi đó người ta nghĩ ra phương pháp khác để làm việc với các đĩa lên qua Int
13h -
đánh địa chỉ các khối theo đường thẳng (“Linear Block Addressing” hay
LBA). Không đi sâu vào chi tiết, có thể nói rằng tất cả sector trên đĩa được đánh
số một cách tuần tự, bắt đầu từ sector đầu tiên trên rãnh số 0 của cylinder số 0.
Thay vào chỗ địa chỉ CHS mỗi sector nhận được một địa chỉ lôgíc – số thứ tự của
sector trong tổng số tất cả sector. Việc đánh số sector lôgíc bắt đầu từ 0, trong
đó sector số 0 chứa bản ghi khởi động chính (MBR). Trong Setup BIOS hỗ trợ
biến đổi số thứ tự theo đường thẳng thành địa chỉ CHS có dạng “Hỗ trợ LBA”.
Như vậy, trong các phiên bản BIOS mới thường có lựa chọn với ba phương án:
“Large”, “LBA”, và “Normal” (phương án cuối cùng có nghĩa là không thực hiện
biến đổi địa chỉ).
Tuy nhiên trong chế độ LBA việc sử dụng đĩa vật lý vẫn được thực hiện qua
Int 13h, mà Int 13h vẫn sử dụng bộ 3D (C,H,S). Vì nguyên nhân này xuất hiện
hạn chế lên dung lượng của đĩa: BIOS, và theo đó, MS-DOS và các phiên bản
Windows đầu tiên không thể đánh địa chỉ các đĩa có dung lượng lớn hơn 8,4
Gbyte.
Cần chú ý rằng hạn chế nói trên chỉ áp dụng với các đĩa có giao diện IDE.
Trong các controller của đĩa SCSI, số của sector được chuyển vào các lệnh SCSI,
và sau đó tự đĩa tìm ra vị trí cần thiết, vì thế hạn chế lên dung lượng đĩa không
xuất hiện.
Một lần nữa muốn nhắc lại rằng, tất cả những hạn chế nói trên chỉ có ý nghĩa
trong giai đoạn khởi động HĐH. Bởi vì Linux và các phiên bản Windows mới nhất
khi làm việc với đĩa đã không còn sử dụng Int 13 của BIOS, mà sử dụng driver
riêng của mình. Nhưng trước khi có thể sử dụng driver của mình, hệ thống phải
được nạp. Vì thế trong giai đoạn khởi động đầu tiên bất kỳ hệ thống nào cũng
cần sử dụng BIOS. Điều này hạn chế việc đặt nhiều hệ thống ra ngoài vùng 8
Gbyte đĩa đầu tiên: chúng không thể khởi động từ đó, mặc dù sau khi khởi động
thì có thể làm việc với các đĩa có dung lượng lớn hơn nhiều. Để có thể hiểu cách
thoát khỏi những hạn chế này, chúng ta cần một chút kiến thức về quá trình khởi
động của HĐH Linux.
2.4
Lựa chọn trình khởi động
2.4.1
Trình khởi động GRUB
GRUB (GRand Unified Bootloader) – trình khởi động hết sức mạnh có khả năng
khởi động rất nhiều HĐH miễn phí cũng như HĐH thương mại. GRUB được
Erich Boleyn viết vào năm 1995 để khởi động hệ thống GNU Mach, vì không thể
sử dụng những trình khởi động khác. Sau đó vào năm 1999 Gordon Matzigkeit và
Yoshinori K. Okuji chuyển GRUB thành một gói chương trình GNU, đưa chương
trình này thành một phần mềm mã nguồn mở. Mặc dù mới ra đời và số phiên bản
1
Phần về GRUB này do người dịch viết.