Qual é a partição max suportada no linux?

8

Posso saber o tamanho máximo da partição suportada por um sistema Linux. E quanto partição lógica e primária podemos criar em um disco instalado pelo sistema linux?

Mughil
fonte
2
Isso depende do tipo de tabela de partição, gpt ou mbr, uso do LVM ou não e, em seguida, sistema de arquivos. Você precisa ser mais específico sobre esses detalhes na sua pergunta para que alguém possa lhe dar uma resposta útil.
BSD
1
Observe que, para dispositivos eMMC, o Linux Kernel usa MMC_BLOCK_MINORSpara limitar o número de partições disponíveis por dispositivo (o valor padrão é 8).
Jérôme Pouiller 10/17

Respostas:

20

Quantas Partições

Eu acredito que outras pessoas, mais rápidas e melhores, já responderam isso perfeitamente. :)

Sempre há mais um limite

Para a discussão a seguir, lembre-se sempre de que os limites são teóricos. As limitações reais costumam ser inferiores aos limites teóricos, porque

  • outros limites teóricos restringem as coisas. (PCs são coisas muito, muito complexas atualmente)
  • sempre há mais bugs. (esta resposta não está excluída)

Quando os limites são violados

O que acontece quando esses limites são violados também não é simples. Por exemplo, nos dias de discos de 10 GB, era possível ter partições com vários gigabytes, mas algumas máquinas não conseguiam inicializar o código armazenado após o 1.024 ° cilindro. É por isso que muitos instaladores do Linux ainda insistem em uma partição pequena / de inicialização separada no início do disco. Depois que você conseguiu inicializar, tudo estava bem.

Tamanho das partições: Tabela de Partições do MS-DOS (MBR)

O MS-DOS armazena partições em um formato (inicial, tamanho), cada um com 32 bits de largura. Cada número usado para codificar as coordenadas do setor de cabeçotes nos velhos tempos. Agora, ele simplesmente inclui um número de setor arbitrário (o disco gerencia a tradução para coordenadas específicas do meio). A fonte do kernel para o tipo de partição 'MS-DOS' sugere que os tamanhos das partições têm 32 bits de largura, em setores. O que nos fornece 2 ^ 32 * 512, ou 2 ^ 41 bytes, ou 2 ^ 21 Megabytes binários, ou 2.097.152 Megabytes, ou 2.048 Gigabytes ou 2 Terabytes (menos um setor).

Tabela de partição GUID (GPT)

Se você estiver usando o rótulo do disco da GUID Partition Table (GPT), sua tabela de partições será armazenada como um par (início, fim). Ambos têm 8 bytes de comprimento (64 bits), o que permite muito mais do que você provavelmente jamais usará: 2 ^ 64 setores de 512 bytes ou 2 ^ 73 bytes (8 zettabytes binários) ou 2 ^ 33 terabytes .

Se você está inicializando a partir de uma UEFI ROM, e não do BIOS tradicional da era CP / M, você já possui o GPT. Caso contrário, você sempre pode optar por usar a GPT como seu rótulo de disco. Se você tem um disco novo, você realmente deveria.

Tamanhos do setor

Um setor tem 512 bytes há muito tempo. Isso está definido para mudar para 4.096 bytes. Muitos discos já possuem isso, mas emulam setores de 512 bytes. Quando a mudança chegar ao primeiro plano e a unidade de alocação se tornar setores de 4.096 bytes, e os LBAs abordarem setores de 4.096 bytes, todos os tamanhos acima serão alterados em 3 ordens binárias de magnitude: multiplique todos por 8 para obter os novos valores assustadores.

Gerenciador de volume lógico

Se você usa o LVM, qualquer volume que você criar também deverá ser suportado pelo LVM, pois ele fica entre suas partições e sistemas de arquivos. De acordo com as perguntas frequentes do LVM2 , o LVM2 suporta até 8EB (exabytes) no Linux 2.6 em arquiteturas de 64 bits; 16 TB (terabytes) no Linux 2.6 executando em arquiteturas de 32 bits; e 1 TB no Linux 2.4.

Limites do sistema de arquivos

Obviamente, esses são os limites de tamanho por partição (ou volume LVM), que é o que você está perguntando. Mas o objetivo de ter partições geralmente é armazenar sistemas de arquivos, e os sistemas de arquivos têm seus próprios limites. De fato, que tipos de limites um sistema de arquivos depende do próprio sistema de arquivos! Os únicos limites globais são o tamanho máximo do sistema de arquivos e o tamanho máximo de cada arquivo nele.

O EXT4 permite partições de até 16 TB por arquivo e 1 EB (exabyte) por volume. No entanto, ele usa números de bloco de 32 bits, portanto, você precisa aumentar o tamanho padrão de 4.096 bytes. Isso pode não ser possível no kernel e na arquitetura; portanto, 16 TB por volume podem ser mais realistas em um PC.

O ZFS permite arquivos 16EB e volumes 16EB, mas sem dúvida possui também outros limites imprevisíveis.

A Wikipedia possui uma tabela muito boa desses limites para a maioria dos sistemas de arquivos conhecidos pelo homem .

Na prática

Se você estiver usando o Linux 2.6 ou mais recente em máquinas de 64 bits e partições GPT, parece que você deve se preocupar apenas com a escolha do sistema de arquivos e seus limites. Mesmo assim, realmente não deveria te preocupar tanto. Você provavelmente não deveria criar arquivos únicos de 16 TB, e 1 exabyte (1.048.576 TB) será uma limitação surreal por um tempo. Se você estiver usando MBR e precisar de mais de 2 terabytes binários, deverá mudar para UEFI e GPT porque está operando sob um limite de 2 TB por partição (isso pode ser menos do que trivial em um computador já implantado)

Observe que eu sou um peido velho e uso unidades binárias ao calcular múltiplos de potências de dois. Os fabricantes de discos gostam de trapacear (e nos convenceram de que sempre fizeram isso, mesmo sabendo que não o fizeram) usando unidades decimais. Portanto, o maior disco de '2 TB' ainda é menor que 2 terabytes binários e você não terá problemas. A menos que você use LVM ou RAID-0.

Alexios
fonte
Na verdade, os dispositivos rotulados como MS-DOS não podem ter mais de 16 TB.
wazoox
O que impõe esse? Eu sei que (ou um limite semelhante) deve estar lá, pois acabei de implantar três servidores com UEFI / GPT porque eles vinham com discos de 12 × 2 TB e a Dell assumiu que faríamos uma única partição do lote (!). Mas eu não consigo ver onde pode estar entre o bloco de disco e o kernel. É uma limitação de inicialização do BIOS ou algo assim?
Alexs
@wazoox, a tabela de partição do MS-DOS usa números de setor de 32 bits; portanto, atinge 2 TB para setores de 512 bytes, não 16 TB.
Psusi 7/03/12
1
@ psusi, sim, está certo. Na verdade, não uso o rótulo do MS-DOS desde 2006 mais ou menos :) Alexios, no Linux, você pode colocar um rótulo do MS-DOS em um dispositivo (disco ou matriz RAID) de qualquer tamanho, mas apenas 2 TB são endereçáveis ​​(qualquer coisa mais de 2 TB não será utilizável). Ninguém mais deve usar rótulos do MS-DOS, eles são realmente uma relíquia desatualizada.
wazoox
1
@wazoox, é necessário para Windows em sistemas não UEFI, mas, novamente, o Windows é também uma relíquia antiquada;)
psusi
8

Existem dois limites. On é o suporte ao Linux, o outro é a contagem máxima no esquema da tabela de partições usada: Depende se você usar o MBR herdado ou a GPT mais recente .

O MBR suporta quatro partições primárias. Uma delas pode ser uma partição estendida que pode conter um número arbitrário de partições lógicas limitadas apenas pelo espaço em disco.

O GPT suporta até 128 partições "primárias".

Antigamente, o Linux suportava apenas 63 partições no IDE e 15 em discos SCSI devido ao número limitado de dispositivos. Hoje, o kernel pode alocar números de dispositivos dinamicamente (udev é a palavra-chave), para que esses limites não sejam mais válidos.

jofel
fonte
4

Isso não está relacionado ao próprio sistema operacional, mas ao esquema de partição em uso.

A introdução da gpart página de manual do FreeBSD é bastante agradável.

Basicamente você tem:

  • Esquema "MBR", que é a maneira antiga do "DOS", como você disse: partições "primárias" (até 4) e lógicas (sem limites reais - até onde eu sei).
  • Esquema "Intel EFI / GPT", a nova maneira de fazer as coisas, com apenas partições "primárias" e praticamente sem limites.

Portanto, de fato, não há diferenças reais com sua caixa padrão do Windows.

Ouki
fonte
0

Segundo a Wikipedia , o kernel suporta sistemas de arquivos de até 16 TB, para que seja a maior partição que possa ser e ainda ser totalmente usada. Nem todos os sistemas de arquivos realmente suportam 16 TB completos, é claro.

Kevin
fonte
2
Cantarolar. O kernel Linux de 32 bits suporta até 16 TB, mas a maioria dos sistemas tem 64 bits há anos. Construo rotineiramente servidores de armazenamento com partições de 77 TB e sistemas de arquivos ainda maiores.
wazoox