Какой максимальный раздел поддерживается в Linux?


8

Могу ли я узнать максимальный размер раздела, поддерживаемый системой Linux. И сколько логических и первичных разделов мы можем создать на диске, установленном системой Linux?


2
Это зависит от типа таблицы разделов, gpt или mbr, использования LVM или нет, а затем от файловой системы. Вы должны быть более конкретными об этих деталях в своем вопросе, чтобы любой мог дать вам полезный ответ.
BSD

1
Обратите внимание, что для устройств eMMC ядро ​​Linux используют MMC_BLOCK_MINORSдля ограничения числа доступных разделов на устройстве (по умолчанию установлено значение 8).
Жером Пуйлер

Ответы:


20

Сколько разделов

Я верю, что другие, более быстрые и лучшие люди уже ответили на это прекрасно. :)

Всегда есть еще один предел

Для следующего обсуждения всегда помните, что пределы являются теоретическими. Фактические ограничения часто меньше теоретических, потому что либо

  • другие теоретические пределы ограничивают вещи. (ПК очень, очень сложные вещи в наши дни)
  • всегда есть больше ошибок. (этот ответ не исключен)

Когда пределы нарушены

То, что происходит, когда эти ограничения нарушаются, тоже не просто. Например, во времена дисков по 10 ГБ у вас могли быть многигабайтные разделы, но некоторые машины не могли загружать код, сохраненный после 1024-го цилиндра. Вот почему так много установщиков Linux по-прежнему настаивают на отдельном маленьком / загрузочном разделе в начале диска. Как только вы загрузились, все было в порядке.

Размер разделов: таблица разделов MS-DOS (MBR)

MS-DOS хранит разделы в формате (начало, размер), каждый из которых имеет ширину 32 бита. Каждое число использовалось для кодирования координат сектора цилиндра в былые времена. Теперь он просто включает в себя произвольный номер сектора (диск управляет переводом из него в координаты, специфичные для среды). Источник ядра для типа раздела «MS-DOS» предполагает, что размеры разделов составляют 32 бита в секторах. Что дает нам 2 ^ 32 * 512, или 2 ^ 41 байт, или 2 ^ 21 двоичных мегабайт, или 2 097 152 мегабайт, или 2 048 гигабайт, или 2 терабайта (минус один сектор).

Таблица разделов GUID (GPT)

Если вы используете метку диска GUID Partition Table (GPT), ваша таблица разделов сохраняется как (начало, конец) пары. Оба имеют длину 8 байт (64 бита), что позволяет намного больше, чем вы, вероятно, когда-либо будете использовать: 2 ^ 64 512-байтовых секторов, или 2 ^ 73 байта (8 двоичных зетабайт), или 2 ^ 33 терабайта ,

Если вы загружаетесь с UEFI ROM, а не с традиционного BIOS CP / M-эры, у вас уже есть GPT. Если нет, вы всегда можете использовать GPT в качестве метки диска. Если у вас есть новый диск, вы действительно должны.

Размеры сектора

Сектор уже давно 512 байт. Это значение должно быть изменено на 4096 байт. Многие диски уже имеют это, но эмулируют 512-байтовые сектора. Когда изменение выходит на передний план, и единица выделения становится 4096 байтовыми секторами, а LBA адресуют 4096 байтовых секторов, все вышеприведенные размеры изменятся на 3 двоичных порядка: умножьте их все на 8, чтобы получить новые страшные значения.

Менеджер логических томов

Если вы используете LVM, то любой объем, который вы делаете, также должен поддерживаться LVM, так как он находится между вашими разделами и файловыми системами. Согласно FAQ по LVM2 , LVM2 поддерживает до 8EB (эксабайт) в Linux 2.6 на 64-битных архитектурах; 16 ТБ (терабайт) в Linux 2.6, работающей на 32-разрядных архитектурах; и 1 ТБ в Linux 2.4.

Ограничения файловой системы

Конечно, это ограничения размера на раздел (или объем LVM), о чем вы и просите. Но смысл наличия разделов обычно заключается в хранении файловых систем, а файловые системы имеют свои собственные ограничения. Фактически, какие типы ограничений имеет файловая система, зависит от самой файловой системы! Единственными глобальными ограничениями являются максимальный размер файловой системы и максимальный размер каждого файла в ней.

EXT4 позволяет разделить до 16 ТБ на файл и 1EB (эксабайт) на том. Однако он использует 32-битные номера блоков, поэтому вам нужно увеличить размер блока по умолчанию на 4 096 байт. Это может оказаться невозможным для вашего ядра и архитектуры, поэтому 16 ТБ на том может быть более реалистичным на ПК.

ZFS допускает файлы 16EB и тома 16EB, но, несомненно, имеет и свои собственные непредвиденные ограничения.

В Википедии есть очень хорошая таблица этих ограничений для большинства файловых систем, известных человеку .

На практике

Если вы используете Linux 2.6 или новее на 64-битных машинах и GPT-разделах, похоже, вам следует беспокоиться только о выборе файловой системы и ее ограничениях. Даже тогда, это действительно не должно беспокоить вас так сильно. Вероятно, вам все равно не следует создавать отдельные файлы размером 16 ТБ, и 1 эксабайт (1 048 576 ТБ) на некоторое время будет сюрреалистическим ограничением. Если вы используете MBR и вам требуется более 2 двоичных терабайт, вам следует переключиться на UEFI и GPT, поскольку вы работаете с пределом 2 ТБ на раздел (это может быть меньше, чем тривиально на уже развернутом компьютере)

Обратите внимание, что я старый пердун, и я использую двоичные единицы, когда вычисляю кратные степени двух. Производители дисков любят обманывать (и убеждают нас, что всегда делали это, даже если мы знаем, что не делали), используя десятичные единицы. Таким образом, самый большой диск объемом 2 ТБ по-прежнему меньше 2 бинарных терабайт, и у вас не возникнет проблем. Если вы не используете LVM или RAID-0.


На самом деле, устройства с MS-DOS не могут быть больше 16 ТБ.
wazoox

Что навязывает это? Я знаю, что это (или аналогичное ограничение) должно быть, так как я только что развернул три сервера с UEFI / GPT, потому что они поставлялись с дисками 12 × 2 ТБ, и Dell предположила, что мы собираемся сделать из них один раздел (!). Но я не могу на всю жизнь понять, где это может быть между дисковым блоком и ядром. Это ограничение загрузки BIOS или что-то?
Алексиос

@wazoox, таблица разделов MS-DOS использует 32-битные номера секторов, поэтому максимальный размер составляет 2 ТБ для 512-байтовых секторов, а не 16 ТБ.
Псуси

1
@psusi, да, все верно. На самом деле я не использую метку MS-DOS с 2006 года или около того :) Alexios, В Linux вы можете поместить метку MS-DOS на устройство (диск или RAID-массив) любого размера, но только 2 ТБ адресуемы (что угодно) более 2 ТБ не будет использоваться). Никто больше не должен использовать ярлыки MS-DOS, это действительно устаревшая реликвия.
wazoox

1
@wazoox, это требуется для Windows на не UEFI-системах, но опять же, Windows также является устаревшей реликвией;)
psusi

8

Есть два ограничения. Это поддержка в Linux, другая - максимальное количество в используемой схеме таблицы разделов: это зависит от того, используете ли вы устаревшую MBR или более новую GPT .

MBR поддерживает четыре основных раздела. Одним из них может быть расширенный раздел, который может содержать произвольное количество логических разделов, ограниченное только вашим дисковым пространством.

GPT поддерживает до 128 «первичных» разделов.

В старые времена Linux поддерживал только 63 раздела в IDE и 15 на дисках SCSI из-за ограниченного количества устройств. Сегодня ядро ​​может динамически распределять номера устройств (ключевое слово udev), поэтому эти ограничения не должны быть более действительными.


4

Это связано не с самой ОС, а с используемой схемой разбиения .

Введение в gpart справочную страницу FreeBSD очень хорошо.

В основном у вас есть:

  • Схема "MBR", которая является старым способом "DOS" с, как вы сказали, "первичными" (до 4) разделами и логическими (без реальных ограничений - насколько я знаю).
  • Схема «Intel EFI / GPT», новый способ работы, только с «первичными» разделами и практически без ограничений.

Так что на самом деле, нет никаких реальных различий с вашей стандартной коробкой Windows


0

Согласно Википедии , ядро ​​поддерживает файловые системы объемом до 16 ТБ, так что это самый большой раздел, который можно и нужно полностью использовать. Конечно, не все файловые системы поддерживают все 16 ТБ.


2
Hum. 32-битное ядро ​​Linux поддерживает до 16 ТБ, но большинство систем были 64-битными годами. Я регулярно строю серверы хранения с разделами 77 ТБ и даже большими файловыми системами.
wazoox
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.