Thứ Bảy, 21 tháng 4, 2012

Khái niệm phân vùng đĩa cứng trong Linux

1. Lý thuyết tổng quát

Quá trình khởi động: khi bật công tắc (Power), BIOS sẽ làm công việc đầu tiên là “chạy đôn chạy đáo” kiểm tra những phần cứng cơ bản (gồm ổ đĩa cứng, ổ đĩa mềm, bàn phím…) đã được nối vào máy tính. Những phần cứng này sẽ lần lượt được nạp driver (trình điều khiển – BIOS đã có sẵn driver rồi) để có thể sử dụng được ngay khi khởi động xong, đồng thời BIOS cũng đi tìm một đoạn chương trình bé xíu được đặt tại phần đầu của đĩa mềm (Boot sector), đĩa cứng (MBR – Master Boot Record) để “đùn đẩy trách nhiệm” khởi động tiếp
Riêng đối với đĩa cứng, ngoài MBR còn có thêm Boot sector nữa, Boot Sector này “tạm trú” ngay đầu của mỗi phân vùng Primary (sẽ nói sau) và Boot Sector của Primary đầu tiên sẽ nằm sau MBR. Tại đây, ta không nói đến đĩa mềm vì quá đơn giản, chỉ cần nạp xong Boot Sector là OK. Đĩa cứng thì phức tạp hơn, MBR không nạp ngay hệ điều hành mà còn “bận” phải xác định xem trong đĩa cứng hiện có bao nhiêu phân vùng và phân vùng nào sẽ được ưu tiên khởi động. Mỗi phân vùng Primary sẽ “cầm” một cái cờ tên là Active, trong một thời điểm khởi động chỉ có một Primary được phất cờ thôi, và khi MBR nhận ra được “em” nào phất thì tức khắc “tống” ngay tiến trình khởi động sang cho Boot Sector của Primary đó làm tiếp. Lúc này, Boot Sector mới tìm những tập tin khởi động của hệ điều hành (nếu có) để “chuyển giao công đoạn” và chấm dứt khởi động, phận ai người nấy lo mà.


Số lượng phân vùng: đối với mỗi ổ đĩa cứng, có hai loại phân vùng là: Primary (phân vùng chính) và Extended (phân vùng mở rộng). Primary là phân vùng có khả năng khởi động (đã nói ở trên đó). Về mặt vật lý, ổ đĩa cứng chỉ có thể chia làm bốn phân vùng, tức là chỉ cài được tối đa bốn hệ điều hành trên một đĩa cứng mà thôi. Tuy nhiên, nếu không có “ham muốn” dùng nhiều hệ điều hành mà chỉ có “ý định” chia nhiều ổ đĩa thì có thể dùng phân vùng Extended, phân vùng này cho phép chia bên trong nó nhiều phân vùng con gọi là Logical.



2. Lý thuyết của DOS/Windows

Những đề cập bên dưới chỉ tập trung vào cấu trúc Basic Disk (tức là những gì ta thấy, hiểu và cảm nhận từ trước đến giờ trên nền DOS/Windows), còn Dynamic Disk của cơ chế RAID thì… miễn bàn.
 Tên phân vùng: Hệ điều hành DOS/ Windows gọi phân vùng “phất” cờ Active là C:, các ký tự tiếp theo (D:, E:, F:…) lần lượt được gán cho các phân vùng Logical của phân vùng Extended đầu tiên, khi hết Extended đầu tiên sẽ chuyển qua Extended thứ hai (nếu có), và khi hết Extended mới “ân huệ” cho các phân vùng Primary tiếp theo, dù vị trí có nằm trước Extended đi chăng nữa.

Ẩn phân vùng Primary: DOS và Windows 9x không cho phép hai phân vùng Primary “chường mặt” ra đồng thời, tuy nhiên nếu cố “ép” thì vẫn được. Vì thế, nếu đã đặt Active cho một Primary thì các Primary khác sẽ tự động… “mất tích”.

3. Lý thuyết của Linux

Tên phân vùng: Hạt nhân Linux/ Unix xây dựng cơ chế truy xuất tất cả các loại đĩa và thiết bị đều ở dạng tập tin. “Chú chim cánh cụt” đặt tên cho bé ổ đĩa mềm là fd (floppy disk), ổ đĩa mềm thứ nhất là fd0, ổ đĩa mềm thứ hai là fd1 (hết rồi, chỉ có tối đa hai ổ đĩa mềm thôi). Tiếp đến là ổ đĩa cứng, nếu là ổ đĩa IDE thì có tên hd (hard disk), còn nếu là ổ đĩa SCSI thì có tên là sd (SCSI disk). Bây giờ bàn về ổ đĩa cứng IDE thôi nhé (ổ SCSI cũng tương tự). Ổ đĩa cứng vật lý thứ nhất “làm khai sinh” với tên hda, thứ hai là hdb, thứ ba là hdc, nếu còn nữa thì tiếp tục. Trên từng ổ đĩa cứng, mỗi phân vùng cũng có tên riêng, điển hình là bốn phân vùng “sếp” (Primary và Extended) chiếm lấy các tên từ hda1 đến hda4 (hdgìgì không nhất thiết chỉ có a đâu nhé, phải linh hoạt chứ, chỉ là ví dụ thôi). Các số từ 5 trở lên (như hda5, hda6…) được đặt cho các phân vùng Logical bên trong phân vùng Extended. Điều này khác với DOS/ Windows, vì trên DOS/Windows thì Extended không có tên, nhưng trên Linux thì Extended có tên hẳn hoi. Dù bạn không chia đủ 4 phân vùng “sếp” thì các “bé” Logical cũng vẫn đi từ 5 trở lên, không “bàn cãi trả giá” gì hết. 

Phân vùng tráo đổi SWAP: Nếu Windows sử dụng tập tin tráo đổi SWAP để lưu tạm bộ nhớ thì Linux dùng ngay cả một phân vùng SWAP hẳn hoi để làm việc này (quá sang!), phân vùng SWAP phải nằm trên Extended tức là Logical í, và phải có kích thước gấp hai lần kích thước bộ nhớ RAM hiện có trên máy. Tuy vậy, đối với những máy có dung lượng bộ nhớ RAM từ 32MB trở lên thì Linux khuyến khích đặt kích thước phân vùng SWAP bằng với dung lượng RAM. Dù thế, bạn vẫn được toàn quyền đặt kích thước phân vùng SWAP mà.

Giải phân mảnh (Defragment): Khi dùng Windows, bạn phải thường xuyên làm công việc “dồn đĩa” giải phân mảnh để tăng tốc hệ thống. Thế nhưng ở Linux, ta không cần vì kiểu phân vùng EXT2 (hoặc EXT3) đã có đoạn chương trình tự động chống phân mảnh trong khi làm việc. Đây là một đặc tính rất hay của Linux, nhưng bạn phải trả cho Linux với giá 10% dung lượng phân vùng. Thật ra, đây là cái giá không cao, và bạn hưởng được tính ổn định và hiệu năng tối ưu.

Trần Anh Vũ (Báo e-CHÍP số 45, 18/11/2003)

Ghi chú : 
- Chỉ có thể tạo được 1 phân vùng extended, tối đa trong đó có 24 ( hay 27 ) phân vùng logical
- Ngày xưa máy tính còn yếu thì phân vùng swap trong linux được khuyến cáo đặt gấp đôi RAM , nhưng bây giờ thì chỉ cần đặt bằng hoặc 1 nửa

Không có nhận xét nào:

Đăng nhận xét