¿Cuál es la partición máxima admitida en Linux?

8

¿Puedo saber el tamaño máximo de partición compatible con un sistema Linux? ¿Y cuánta partición lógica y primaria podemos crear en un disco instalado por el sistema Linux?

Mughil
fuente
2
Eso depende del tipo de tabla de particiones, gpt o mbr, uso de LVM o no, luego sistema de archivos. Debe ser más específico sobre estos detalles en su pregunta para que cualquiera pueda darle una respuesta útil.
bsd
1
Tenga en cuenta que para los dispositivos eMMC, el Kernel de Linux se usa MMC_BLOCK_MINORSpara limitar el número de particiones disponibles en el dispositivo (el valor predeterminado es 8).
Jérôme Pouiller

Respuestas:

20

Cuantas particiones

Creo que otras personas más rápidas y mejores ya han respondido esto perfectamente. :)

Siempre hay un límite más

Para la siguiente discusión, recuerde siempre que los límites son teóricos. Las limitaciones reales son a menudo menores que los límites teóricos porque

  • otros límites teóricos limitan las cosas. (Las PC son cosas muy, muy complejas en estos días)
  • Siempre hay más errores. (esta respuesta no está excluida)

Cuando se violan los límites

Lo que sucede cuando se violan estos límites tampoco es simple. Por ejemplo, en los días de los discos de 10 GB, podría tener particiones de varios gigabytes, pero algunas máquinas no podían iniciar el código almacenado después del cilindro 1.024. Esta es la razón por la que tantos instaladores de Linux todavía insisten en una partición separada pequeña / de arranque al comienzo del disco. Una vez que lograste arrancar, las cosas estaban bien.

Tamaño de particiones: tabla de particiones de MS-DOS (MBR)

MS-DOS almacena particiones en un formato (inicio, tamaño), cada uno de los cuales tiene 32 bits de ancho. Cada número utilizado para codificar las coordenadas del sector de culata en los viejos tiempos. Ahora simplemente incluye un número de sector arbitrario (el disco gestiona la traducción de eso a coordenadas específicas del medio). La fuente del núcleo para el tipo de partición 'MS-DOS' sugiere que los tamaños de partición son de 32 bits de ancho, en sectores. Lo que nos da 2 ^ 32 * 512, o 2 ^ 41 bytes, o 2 ^ 21 Megabytes binarios, o 2,097,152 Megabytes, o 2,048 Gigabytes, o 2 Terabytes (menos un sector).

Tabla de particiones GUID (GPT)

Si está utilizando la etiqueta de disco de la tabla de particiones GUID (GPT), su tabla de particiones se almacena como un par (inicio, fin). Ambos tienen 8 bytes de largo (64 bits), lo que permite mucho más de lo que probablemente usará: 2 ^ 64 sectores de 512 bytes, o 2 ^ 73 bytes (8 zettabytes binarios), o 2 ^ 33 terabytes .

Si está arrancando desde una ROM UEFI en lugar del BIOS tradicional de la era CP / M, ya tiene GPT. Si no, siempre puede optar por usar GPT como su etiqueta de disco. Si tiene un disco nuevo, realmente debería hacerlo.

Tamaños de sector

Un sector ha tenido 512 bytes durante mucho tiempo. Esto está configurado para cambiar a 4.096 bytes. Muchos discos ya tienen esto, pero emulan sectores de 512 bytes. Cuando el cambio pasa a primer plano y la unidad de asignación se convierte en 4.096 bytes de sectores, y los LBA abordan 4.096 bytes de sectores, todos los tamaños anteriores cambiarán en 3 órdenes de magnitud binarias: multiplíquelos todos por 8 para obtener los nuevos valores de miedo.

Administrador de volumen lógico

Si usa LVM, cualquier volumen que haga también debe ser compatible con LVM, ya que se encuentra entre sus particiones y sistemas de archivos. Según las preguntas frecuentes de LVM2 , LVM2 admite hasta 8EB (exabytes) en Linux 2.6 en arquitecturas de 64 bits; 16 TB (terabytes) en Linux 2.6 que se ejecuta en arquitecturas de 32 bits; y 1TB en Linux 2.4.

Límites del sistema de archivos

Por supuesto, estos son los límites de tamaño por partición (o volumen LVM), que es lo que está preguntando. Pero el objetivo de tener particiones suele ser almacenar sistemas de archivos, y los sistemas de archivos tienen sus propios límites. De hecho, ¡qué tipos de límites tiene un sistema de archivos depende del propio sistema de archivos! Los únicos límites globales son el tamaño máximo del sistema de archivos y el tamaño máximo de cada archivo en él.

EXT4 permite particiones de hasta 16TB por archivo y 1EB (exabyte) por volumen. Sin embargo, utiliza números de bloque de 32 bits, por lo que deberá aumentar el tamaño de bloque predeterminado de 4.096 bytes. Es posible que esto no sea posible en su núcleo y arquitectura, por lo que 16 TB por volumen pueden ser más realistas en una PC.

ZFS permite archivos de 16EB y volúmenes de 16EB, pero sin duda también tiene sus propios límites imprevistos.

Wikipedia tiene una muy buena tabla de estos límites para la mayoría de los sistemas de archivos conocidos por el hombre .

En la práctica

Si está utilizando Linux 2.6 o más reciente en máquinas de 64 bits y particiones GPT, parece que solo debería preocuparse por la elección del sistema de archivos y sus límites. Incluso entonces, realmente no debería preocuparte tanto. Probablemente no debería crear archivos individuales de 16 TB de todos modos, y 1 exabyte (1,048,576 TB) será una limitación surrealista por un tiempo. Si está utilizando MBR y necesita más de 2 terabytes binarios, debe cambiar a UEFI y GPT porque está operando por debajo de un límite de 2 TB por partición (esto puede ser menos que trivial en una computadora ya implementada)

Tenga en cuenta que soy un viejo pedo, y uso unidades binarias cuando calculo múltiplos de potencias de dos. A los fabricantes de discos les gusta hacer trampa (y nos han convencido de que siempre hicieron esto, aunque sabemos que no lo hicieron) usando unidades decimales. Por lo tanto, el disco más grande de '2TB' todavía es más pequeño que 2 terabytes binarios, y no tendrá problemas. A menos que use LVM o RAID-0.

Alexios
fuente
En realidad, los dispositivos etiquetados con MS-DOS no pueden ser mayores de 16 TB.
wazoox
¿Qué impone ese? Sé que (o un límite similar) debe estar allí, ya que acabo de implementar tres servidores con UEFI / GPT porque venían con discos de 12 × 2TB y Dell asumió que íbamos a hacer una única partición del lote (!). Pero por mi vida no puedo ver dónde podría estar entre el bloque de disco y el núcleo. ¿Es una limitación de arranque del BIOS o algo así?
Alexios
@wazoox, la tabla de partición de MS-DOS utiliza números de sector de 32 bits, por lo que alcanza un máximo de 2 TB para sectores de 512 bytes, no de 16 TB.
psusi
1
@psusi, sí, eso es correcto. En realidad no he usado la etiqueta de MS-DOS desde 2006 más o menos :) Alexios, en Linux, puede poner una etiqueta de MS-DOS en un dispositivo (disco o matriz RAID) de cualquier tamaño, pero solo 2 TB son direccionables (cualquier cosa más de 2 TB no serán utilizables). Ya nadie debería usar etiquetas de MS-DOS, son realmente una reliquia obsoleta.
wazoox
1
@wazoox, se requiere para Windows en sistemas que no son UEFI, pero de nuevo, Windows también es una reliquia desactualizada;)
psusi
8

Hay dos limites. El soporte para Linux está activado, el otro es el recuento máximo en el esquema de tabla de partición utilizado: depende de si utiliza el MBR heredado o el GPT más nuevo .

MBR admite cuatro particiones primarias. Una de ellas podría ser una partición extendida que puede contener un número arbitrario de particiones lógicas limitadas solo por su espacio en disco.

GPT admite hasta 128 particiones "primarias".

En los viejos tiempos, Linux solo admitía hasta 63 particiones en IDE y 15 en discos SCSI debido a la cantidad limitada de dispositivos. Hoy el núcleo puede asignar números de dispositivo dinámicamente (udev es la palabra clave) por lo que estos límites ya no deberían ser válidos.

jofel
fuente
4

Esto no está relacionado con el sistema operativo en sí, sino con el esquema de partición en uso.

La introducción de la gpart página de manual de FreeBSD lo tiene bastante bien.

Básicamente tienes:

  • Esquema "MBR" que es la antigua forma "DOS" con, como dijiste, particiones "primarias" (hasta 4) y lógicas (sin límites reales, que yo sepa).
  • Esquema "Intel EFI / GPT", la nueva forma de hacer las cosas, con solo particiones "primarias" y prácticamente sin límites.

De hecho, no hay diferencias reales con su cuadro estándar de Windows.

Ouki
fuente
0

Según Wikipedia , el núcleo admite sistemas de archivos de hasta 16 TB, por lo que es la partición más grande que puede ser y aún se puede usar por completo. No todos los sistemas de archivos son compatibles con los 16 TB completos, por supuesto.

Kevin
fuente
2
Tararear. El kernel de Linux de 32 bits admite hasta 16 TB, pero la mayoría de los sistemas han sido de 64 bits durante años. Rutinariamente construyo servidores de almacenamiento con particiones de 77 TB e incluso sistemas de archivos más grandes.
wazoox