Tại sao chỉ có bốn phân vùng chính trên đĩa MBR?


23

Tôi đang đọc tài liệu tại CentOS.org .

Trong mục 25.1.2. Phân vùng: Biến một ổ thành nhiều , có tuyên bố sau:

Bảng phân vùng được chia thành bốn phần hoặc bốn phân vùng chính. Phân vùng chính là phân vùng trên ổ cứng chỉ có thể chứa một ổ đĩa logic (hoặc phần). Mỗi phần có thể chứa thông tin cần thiết để xác định một phân vùng duy nhất, có nghĩa là bảng phân vùng có thể xác định không quá bốn phân vùng.

Tôi không hiểu tại sao chỉ có thể có bốn phân vùng. Đây có phải chỉ là cách nó được thiết kế lúc ban đầu? Có thể thực sự chỉ có 4 phân vùng chính?

Câu trả lời:


36

Đây có phải chỉ là cách nó được thiết kế lúc ban đầu? Có thể thực sự chỉ có 4 phân vùng chính?

Vâng, chính xác là như vậy. Bảng phân vùng ở phía trước đĩa MBR (trái ngược với đĩa kiểu GPT) có cấu trúc dữ liệu rất nghiêm ngặt xuất hiện từ những năm 1980 khi không gian là một thứ quý giá. Cách quyết định thiết kế trước đó là chỉ cho phép bốn phân vùng, nhưng cho phép một trong số chúng là phân vùng 'mở rộng' là con trỏ đến một vị trí khác trên đĩa có thể chứa nhiều phân vùng 'logic' hơn.

. )

GPT là một phương pháp cập nhật để xử lý phân vùng không có những hạn chế này.


1
Nó cũng chỉ là một hạn chế đối với các loại đĩa IDE. Ví dụ, SCSI có 8, với quy ước thứ ba là phân vùng chồng lấp kéo dài toàn bộ thiết bị.
MadHatter hỗ trợ Monica

18
@MadHatter chính bảng phân vùng là loại lưu trữ bất khả tri. Có vẻ như bạn đang mô tả Solaris Slices, một khái niệm hơi khác.
the-wợi

3
Tôi đã không nghĩ rằng đó là trường hợp, nhưng bạn đã chết ngay rằng hầu hết kinh nghiệm phân vùng SCSI của tôi là từ Solaris. Tôi cúi đầu để sửa chữa của bạn, và cảm ơn bạn!
MadHatter hỗ trợ Monica

4
Trên thực tế, các phân vùng mở rộng đến nhiều sau đó ; IBM PC DOS 2.0 đã giới thiệu MBR như là một phần của hỗ trợ ổ cứng vào tháng 3 năm 1983, nhưng phải đến ngày 3.3 (tháng 4 năm 1987), các phân vùng mở rộng mới có sẵn .
một CVn

Trên thực tế, "phân vùng mở rộng" chỉ đơn giản trỏ đến một bảng phân vùng kiểu MBR khác, lần lượt cũng chỉ có thể chứa 4 mục (mỗi mục có thể là mục phân vùng mở rộng trỏ đến bảng phân vùng khác, cũng có thể chứa 4 mục ( mỗi trong số đó có thể là một phân vùng mở rộng.)) Thực tế một số hệ điều hành chỉ cho phép các phân vùng mở rộng trong khe 4 và nếu có một, thì các khe 2 và 3 cần phải trống, vì vậy những gì bạn kết thúc trong thực tế là đơn lẻ- danh sách các bảng phân vùng được liên kết với một chính trong khe 1 và một liên kết đến bảng tiếp theo trong khe 4.
Jörg W Mittag

25

Chỉ có bốn vì cấu trúc dữ liệu cho bảng phân vùng MBR chỉ cho phép chính xác bốn bản ghi mô tả phân vùng:

Bạn có thể tạo các bảng phân vùng bổ sung được lồng trong các định nghĩa về cái được gọi là "phân vùng mở rộng", nhưng các phân vùng được xác định trong đó được gọi là phân vùng "logic" theo truyền thống. Hãy nhớ rằng đây là một hạn chế của việc thực hiện cụ thể này. Các loại phân vùng khác, như bảng phân vùng GUID , không chia sẻ giới hạn này.


3

Phân vùng chính là một khái niệm cấp thấp - nó liên quan đến quá trình khởi động ban đầu của máy và dựa trên một bộ thông số kỹ thuật được xác định rõ. Do đó, thật khó để thay đổi số lượng phân vùng chính, bởi vì rất nhiều nhà sản xuất đĩa và bo mạch chủ sẽ phải đồng ý thực hiện một tiêu chuẩn mới.

Mặc dù vậy, thực tế mà nói, đây là một điểm cần thiết - đó là sự liên quan tại 'thời gian khởi động' để khởi động hệ điều hành của bạn ngay từ đầu, nhưng đó là về nó. Các phân vùng mở rộng tồn tại, cho phép nhiều phân vùng hơn trên đĩa của bạn. Bạn không thể khởi động chúng mặc dù.

Về cơ bản hơn - hầu hết các hệ điều hành hoạt động với sự trừu tượng hóa đĩa nhiều hơn - các trình quản lý khối hợp lý - có nghĩa là cấu trúc liên kết trên đĩa thực tế phần lớn không liên quan. (Và thực tế, thường không mong muốn phân khúc nhóm lưu trữ của bạn)


1
Tôi nghĩ bạn đã sai về việc không thể khởi động một cái; Tôi nghĩ GRUB sẽ vui vẻ khởi động Linux từ một phân vùng mở rộng. Ngoài ra, tôi chủ yếu đồng ý với bạn.
MadHatter hỗ trợ Monica

Bản thân GRUB phải nằm trên một phân vùng chính - bootstrap cấp thấp bắt đầu grub, sau đó cho phép bạn chọn.
Sobrique

1
Trình tải giai đoạn 1 không nên ở trên một phân vùng; nó phải ở trong MBR. Phần còn lại của mã sống bên trong /bootphân vùng và như tôi nói, tôi tin rằng có thể hạnh phúc là một phân vùng mở rộng.
MadHatter hỗ trợ Monica

Đủ công bằng. Tôi sẽ đọc lên và làm bài tập về nhà của tôi. Nhưng tôi cho rằng vẫn hỗ trợ trong trường hợp trong khi các phân vùng chính bị hạn chế, thì giới hạn đó phần lớn không liên quan.
Sobrique

1
"... bởi vì nhiều nhà sản xuất đĩa và bo mạch chủ sẽ phải đồng ý thực hiện một tiêu chuẩn mới." Gì? Thế nào? Nó hoàn toàn không liên quan đến đĩa và ngay cả bo mạch chính cũng không cần phải quan tâm đến điều đó. Tất cả các mainboard cần làm là đọc sector 0 và thực thi mã của nó. Nhận biết các phân vùng là công việc của mã đó.
glglgl

0

Không chắc chắn nếu tôi đến bữa tiệc muộn, nhưng ở đây nó đi:

Kích thước bảng phân vùng được thiết kế là 64 byte và mỗi bảng phân vùng là 16 byte. 16 * 4 = 64 và do đó không còn chỗ cho bất kỳ mục nào khác trong bảng phân vùng.

Để giải quyết vấn đề này, mục thứ tư có một điều khoản cho mục phân vùng Mở rộng có thể có các con trỏ tuần tự đến các phân vùng Mở rộng khác.

https://docs.microsoft.com/en-us/windows/win32/fileio/basic-and-dynamic-disks

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.