Phân vùng tối đa được hỗ trợ trong linux là gì?


8

Tôi có thể biết kích thước phân vùng tối đa được hỗ trợ bởi một hệ thống Linux. Và có bao nhiêu phân vùng logic và chính mà chúng ta có thể tạo trong một đĩa được cài đặt bởi hệ thống linux?


2
Điều đó phụ thuộc vào loại bảng phân vùng, gpt hoặc mbr, sử dụng LVM hay không, sau đó là hệ thống tập tin. Bạn cần phải cụ thể hơn về những chi tiết này trong câu hỏi của bạn cho bất cứ ai để có thể cung cấp cho bạn một câu trả lời hữu ích.
bsd

1
Lưu ý rằng đối với các thiết bị eMMC, Linux Kernel sử dụng MMC_BLOCK_MINORSđể giới hạn số lượng phân vùng có sẵn của thiết bị (giá trị mặc định là 8).
Jérôme Pouiller

Câu trả lời:


20

Bao nhiêu phân vùng

Tôi tin rằng những người khác, nhanh hơn và tốt hơn đã trả lời điều này một cách hoàn hảo. :)

Luôn có thêm một giới hạn

Đối với các cuộc thảo luận sau, luôn luôn nhớ rằng các giới hạn là lý thuyết. Giới hạn thực tế thường nhỏ hơn giới hạn lý thuyết vì một trong hai

  • giới hạn lý thuyết khác ràng buộc mọi thứ. (PC là những thứ rất, rất phức tạp thực sự ngày nay)
  • luôn có nhiều lỗi (câu trả lời này không được loại trừ)

Khi giới hạn bị vi phạm

Điều gì xảy ra khi những giới hạn này bị vi phạm cũng không đơn giản. Chẳng hạn, trở lại thời của đĩa 10 GB, bạn có thể có các phân vùng nhiều gigabyte, nhưng một số máy không thể khởi động mã được lưu trữ sau xi lanh thứ 1.024. Đây là lý do tại sao rất nhiều trình cài đặt Linux vẫn nhấn mạnh vào một phân vùng nhỏ, khởi động / riêng biệt trong phần đầu của đĩa. Một khi bạn quản lý để khởi động, mọi thứ đều ổn.

Kích thước của phân vùng: Bảng phân vùng MS-DOS (MBR)

MS-DOS lưu trữ các phân vùng theo định dạng (bắt đầu, kích thước), mỗi phân vùng rộng 32 bit. Mỗi số được sử dụng để mã hóa tọa độ trụ-trụ-khu vực trong thời xa xưa. Bây giờ nó chỉ đơn giản bao gồm một số khu vực tùy ý (đĩa quản lý việc dịch từ đó sang tọa độ trung bình cụ thể). Nguồn nhân cho loại phân vùng 'MS-DOS' cho thấy kích thước phân vùng rộng 32 bit, trong các cung. Cung cấp cho chúng tôi 2 ^ 32 * 512 hoặc 2 ^ 41 byte hoặc 2 ^ 21 Megabyte nhị phân hoặc 2.097.152 Megabyte hoặc 2.048 Gigabyte hoặc 2 Terabyte (trừ một cung).

Bảng phân vùng GUID (GPT)

Nếu bạn đang sử dụng nhãn đĩa GUID Bảng phân vùng (GPT), bảng phân vùng của bạn được lưu trữ dưới dạng cặp (bắt đầu, kết thúc). Cả hai đều dài 8 byte (64 bit), cho phép nhiều hơn rất nhiều so với khả năng bạn từng sử dụng: 2 ^ 64 cung 512 byte hoặc 2 ^ 73 byte (8 zettabyte nhị phân) hoặc 2 ^ 33 terabyte .

Nếu bạn đang khởi động ROM UEFI thay vì BIOS thời CP / M truyền thống, bạn đã có GPT. Nếu không, bạn luôn có thể chọn sử dụng GPT làm nhãn đĩa. Nếu bạn có một đĩa mới, bạn thực sự nên.

Quy mô ngành

Một sector đã được 512 byte trong một thời gian dài. Điều này được thiết lập để thay đổi thành 4.096 byte. Nhiều đĩa đã có cái này, nhưng mô phỏng các cung 512 byte. Khi thay đổi đến tiền cảnh và đơn vị phân bổ trở thành 4.096 byte và các LBA giải quyết 4.096 cung byte, tất cả các kích thước ở trên sẽ thay đổi theo 3 bậc nhị phân có độ lớn: nhân tất cả chúng với 8 để có được các giá trị mới, đáng sợ.

Quản lý khối hợp lý

Nếu bạn sử dụng LVM, bất kỳ khối lượng nào bạn tạo ra cũng phải được LVM hỗ trợ, vì nó nằm giữa các phân vùng và hệ thống tệp của bạn. Theo Câu hỏi thường gặp về LVM2 , LVM2 hỗ trợ tối đa 8EB (exabyte) trên Linux 2.6 trên các kiến ​​trúc 64 bit; 16TB (terabyte) trên Linux 2.6 chạy trên kiến ​​trúc 32 bit; và 1TB trên Linux 2.4.

Giới hạn hệ thống tập tin

Tất nhiên, đây là các giới hạn kích thước cho mỗi phân vùng (hoặc khối lượng LVM), đó là những gì bạn đang yêu cầu. Nhưng quan điểm của việc có các phân vùng thường là lưu trữ các hệ thống tệp và các hệ thống tệp có giới hạn riêng. Trong thực tế, loại giới hạn nào mà một hệ thống tập tin phụ thuộc vào chính hệ thống tập tin đó! Giới hạn toàn cầu duy nhất là kích thước tối đa của hệ thống tệp và kích thước tối đa của mỗi tệp trong đó.

EXT4 cho phép phân vùng tối đa 16TB mỗi tệp và 1EB (exabyte) mỗi ổ đĩa. Tuy nhiên, nó sử dụng số khối 32 bit, vì vậy bạn cần tăng kích thước khối 4.096 byte mặc định. Điều này có thể không khả thi trên kernel và kiến ​​trúc của bạn, vì vậy 16TB cho mỗi ổ đĩa có thể thực tế hơn trên PC.

ZFS cho phép các tệp 16EB và khối lượng 16EB, nhưng chắc chắn nó cũng có các giới hạn khác, không lường trước được.

Wikipedia có một bảng rất hay về những giới hạn này cho hầu hết các hệ thống tập tin mà con người biết đến .

Trong thực tế

Nếu bạn đang sử dụng Linux 2.6 hoặc mới hơn trên các máy 64 bit và phân vùng GPT, có vẻ như bạn chỉ nên lo lắng về việc lựa chọn hệ thống tệp và giới hạn của nó. Ngay cả sau đó, nó thực sự không nên lo lắng cho bạn nhiều. Có lẽ bạn không nên tạo các tệp đơn 16TB và 1 exabyte (1.048.576 TB) sẽ là một giới hạn siêu thực trong một thời gian. Nếu bạn đang sử dụng MBR và cần nhiều hơn 2 terabyte nhị phân, bạn nên chuyển sang UEFI và GPT vì bạn đang hoạt động dưới giới hạn 2TB cho mỗi phân vùng (điều này có thể nhỏ hơn tầm thường trên máy tính đã triển khai)

Xin lưu ý rằng tôi là một rắm cũ và tôi sử dụng các đơn vị nhị phân khi tôi tính toán bội số sức mạnh của hai. Các nhà sản xuất đĩa thích gian lận (và đã thuyết phục chúng tôi rằng họ luôn làm điều này, mặc dù chúng tôi biết họ đã không làm thế) bằng cách sử dụng các đơn vị thập phân. Vì vậy, đĩa '2TB' lớn nhất vẫn nhỏ hơn 2 terabyte nhị phân và bạn sẽ không gặp rắc rối. Trừ khi bạn sử dụng LVM hoặc RAID-0.


Trên thực tế, các thiết bị có nhãn MS-DOS không thể lớn hơn 16 TB.
wazoox

Cái gì áp đặt cái đó? Tôi biết nó (hoặc một giới hạn tương tự) phải có ở đó, vì tôi vừa triển khai ba máy chủ với UEFI / GPT vì chúng đi kèm với các đĩa 12 × 2TB và Dell cho rằng chúng tôi sẽ tạo một phân vùng duy nhất trong số rất nhiều (!). Nhưng tôi không thể thấy cuộc sống của mình ở đâu giữa khối đĩa và nhân. Đây có phải là một giới hạn khởi động BIOS hay cái gì đó?
Alexios

@wazoox, bảng phân vùng MS-DOS sử dụng số cung 32 bit, vì vậy đứng đầu ở mức 2 TB cho các cung 512 byte, không phải 16 TB.
psusi

1
@psusi, vâng, đúng vậy. Trên thực tế tôi đã không sử dụng nhãn MS-DOS từ năm 2006 trở đi :) Alexios, Trong Linux, bạn có thể đặt nhãn MS-DOS trên một thiết bị (mảng đĩa hoặc RAID) ở mọi kích thước, nhưng chỉ có 2 TB là có thể đánh địa chỉ (mọi thứ trên 2 TB sẽ không thể sử dụng được). Không ai nên sử dụng nhãn MS-DOS nữa, chúng thực sự là một di tích lỗi thời.
wazoox

1
@wazoox, nó được yêu cầu cho Windows trên các hệ thống không phải UEFI, nhưng một lần nữa, Windows cũng là một di tích lỗi thời;)
psusi

8

Có hai giới hạn. Bật là hỗ trợ trong Linux, cái còn lại là số lượng tối đa trong sơ đồ bảng phân vùng được sử dụng: Nó phụ thuộc vào việc bạn sử dụng MBR kế thừa hay GPT mới hơn .

MBR hỗ trợ bốn phân vùng chính. Một trong số chúng có thể là một phân vùng mở rộng có thể chứa một số lượng phân vùng logic tùy ý chỉ giới hạn bởi không gian đĩa của bạn.

GPT hỗ trợ tối đa 128 phân vùng "chính".

Ngày xưa, Linux chỉ hỗ trợ tối đa 63 phân vùng trên IDE và 15 trên đĩa SCSI do số lượng thiết bị hạn chế. Ngày nay, kernel có thể phân bổ số thiết bị một cách linh hoạt (udev là từ khóa), vì vậy giới hạn này sẽ không còn hiệu lực.


4

Điều này không liên quan đến chính hệ điều hành, mà liên quan đến sơ đồ phân vùng đang sử dụng.

Việc giới thiệu gpart trang con người của FreeBSD có nó khá độc đáo.

Về cơ bản bạn có:

  • Lược đồ "MBR" là cách "DOS" cũ, như bạn đã nói phân vùng "chính" (tối đa 4) và phân vùng logic (không có giới hạn thực - theo như tôi biết).
  • Lược đồ "Intel EFI / GPT", cách thức mới để thực hiện, chỉ với các phân vùng "chính" và hầu như không có giới hạn.

Vì vậy, trên thực tế, không có sự khác biệt thực sự với hộp Windows tiêu chuẩn của bạn.


0

Theo Wikipedia , kernel hỗ trợ các hệ thống tệp lên tới 16TB, vì vậy đó là phân vùng lớn nhất có thể và vẫn được sử dụng đầy đủ. Tất nhiên, không phải tất cả các hệ thống tập tin đều hỗ trợ 16TB đầy đủ.


2
Hum. Nhân Linux 32 bit hỗ trợ tới 16 TB, nhưng hầu hết các hệ thống đã là 64 bit trong nhiều năm. Tôi thường xuyên xây dựng các máy chủ lưu trữ với 77 phân vùng TB và các hệ thống tệp lớn hơn.
wazoox
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.