Qual è la partizione massima supportata in Linux?


8

Posso sapere la dimensione massima della partizione supportata da un sistema Linux. E quanta partizione logica e primaria possiamo creare in un disco installato dal sistema linux?


2
Dipende dal tipo di tabella delle partizioni, gpt o mbr, uso di LVM o meno, quindi dal filesystem. Devi essere più specifico su questi dettagli nella tua domanda affinché chiunque possa darti una risposta utile.
bsd

1
Si noti che per i dispositivi eMMC, il kernel Linux utilizza MMC_BLOCK_MINORSper limitare il numero di partizioni disponibili per dispositivo (il valore predefinito è 8).
Jérôme Pouiller,

Risposte:


20

Quante partizioni

Credo che altre persone più veloci e migliori abbiano già risposto alla perfezione. :)

C'è sempre un altro limite

Per la seguente discussione, ricorda sempre che i limiti sono teorici. I limiti effettivi sono spesso inferiori ai limiti teorici perché uno dei due

  • altri limiti teorici vincolano le cose. (I PC sono cose molto, molto complesse in questi giorni)
  • ci sono sempre più bug. (questa risposta non esclusa)

Quando i limiti sono violati

Ciò che accade quando questi limiti vengono violati non è neanche semplice. Ad esempio, ai tempi dei dischi da 10 GB, si potevano avere partizioni multi-gigabyte, ma alcune macchine non potevano avviare il codice memorizzato dopo il 1.024 ° cilindro. Questo è il motivo per cui così tanti installatori di Linux insistono ancora su una partizione separata, piccola / di avvio all'inizio del disco. Una volta che sei riuscito ad avviare, le cose andavano bene.

Dimensione delle partizioni: MS-DOS Partition Table (MBR)

MS-DOS memorizza le partizioni in un formato (inizio, dimensione), ciascuna delle quali è larga 32 bit. Ogni numero utilizzato per codificare le coordinate del settore testata nei tempi antichi. Ora include semplicemente un numero di settore arbitrario (il disco gestisce la traduzione da quella a coordinate medio-specifiche). Il sorgente del kernel per il tipo di partizione "MS-DOS" suggerisce che le dimensioni delle partizioni sono larghe 32 bit, in settori. Il che ci dà 2 ^ 32 * 512, o 2 ^ 41 byte, o 2 ^ 21 Megabyte binari, o 2.097.152 Megabyte, o 2.048 Gigabyte o 2 Terabyte (meno un settore).

Tabella delle partizioni GUID (GPT)

Se si utilizza l'etichetta del disco GUID Partition Table (GPT), la tabella delle partizioni viene memorizzata come coppia (inizio, fine). Entrambi sono lunghi 8 byte (64 bit), il che consente molto più di quanto tu possa mai usare: 2 ^ 64 settori a 512 byte o 2 ^ 73 byte (8 zettabyte binari) o 2 ^ 33 terabyte .

Se stai eseguendo l'avvio da una ROM UEFI anziché dal tradizionale BIOS CP / M-era, hai già GPT. Altrimenti puoi sempre scegliere di usare GPT come etichetta del disco. Se hai un disco nuovo, dovresti davvero.

Dimensioni del settore

Un settore è stato a lungo di 512 byte. Questo è impostato per cambiare a 4.096 byte. Molti dischi hanno già questo, ma emulano settori a 512 byte. Quando la modifica arriva in primo piano e l'unità di allocazione diventa settori a 4.096 byte e gli LBA indirizzano settori a 4.096 byte, tutte le dimensioni sopra cambieranno di 3 ordini binari di grandezza: moltiplicali tutti per 8 per ottenere i nuovi valori spaventosi.

Logical Volume Manager

Se si utilizza LVM, qualsiasi volume creato deve essere supportato anche da LVM, poiché si trova tra le partizioni e i file system. Secondo le FAQ LVM2 , LVM2 supporta fino a 8EB (exabyte) su Linux 2.6 su architetture a 64 bit; 16 TB (terabyte) su Linux 2.6 in esecuzione su architetture a 32 bit; e 1 TB su Linux 2.4.

Limiti del filesystem

Naturalmente, questi sono i limiti di dimensione per partizione (o volume LVM), che è quello che stai chiedendo. Ma il punto di avere partizioni è di solito archiviare i filesystem e i filesystem hanno i loro limiti. In effetti, quali tipi di limiti ha un filesystem dipende dal filesystem stesso! Gli unici limiti globali sono la dimensione massima del filesystem e la dimensione massima di ogni file in esso.

EXT4 consente partizioni fino a 16 TB per file e 1 EB (exabyte) per volume. Tuttavia, utilizza numeri di blocco a 32 bit, quindi è necessario aumentare la dimensione predefinita del blocco a 4.096 byte. Questo potrebbe non essere possibile sul kernel e sull'architettura, quindi 16 TB per volume potrebbero essere più realistici su un PC.

ZFS consente file da 16EB e volumi da 16EB, ma senza dubbio ha anche altri limiti imprevisti.

Wikipedia ha una tabella molto bella di questi limiti per la maggior parte dei filesystem conosciuti dall'uomo .

In pratica

Se usi Linux 2.6 o versioni successive su macchine a 64 bit e partizioni GPT, sembra che dovresti preoccuparti solo della scelta del filesystem e dei suoi limiti. Anche allora, non dovrebbe preoccuparti così tanto. Probabilmente non dovresti comunque creare singoli file da 16 TB e 1 exabyte (1.048.576 TB) sarà un limite surreale per un po '. Se stai usando MBR e hai bisogno di più di 2 terabyte binari, dovresti passare a UEFI e GPT perché stai operando con un limite di 2 TB per partizione (questo potrebbe essere meno che banale su un computer già distribuito)

Nota che sono una vecchia scoreggia e utilizzo le unità binarie quando sto calcolando multipli di poteri di due. Ai produttori di dischi piace imbrogliare (e ci hanno convinto di averlo sempre fatto, anche se sappiamo che non lo hanno fatto) usando le unità decimali. Quindi il disco più grande da 2 TB è ancora più piccolo di 2 terabyte binari e non avrai problemi. A meno che non si usi LVM o RAID-0.


In realtà, i dispositivi con etichetta MS-DOS non possono superare i 16 TB.
Wazoox,

Cosa lo impone? Lo so (o un limite simile) deve essere lì, poiché ho appena distribuito tre server con UEFI / GPT perché erano dotati di dischi 12 × 2TB e Dell supponeva che avremmo creato una singola partizione dal lotto (!). Ma per la vita non riesco a vedere dove potrebbe essere tra il blocco del disco e il kernel. È una limitazione di avvio del BIOS o qualcosa del genere?
Alexios

@wazoox, la tabella delle partizioni MS-DOS utilizza numeri di settore a 32 bit, quindi supera 2 TB per settori a 512 byte, non 16 TB.
psusi

1
@psusi, sì, esatto. In realtà non uso l'etichetta MS-DOS dal 2006 o giù di lì :) Alexios, Sotto Linux, puoi mettere un'etichetta MS-DOS su un dispositivo (array di dischi o RAID) di qualsiasi dimensione, ma solo 2 TB sono indirizzabili (qualsiasi cosa oltre 2 TB non saranno utilizzabili). Nessuno dovrebbe più usare le etichette MS-DOS, sono davvero una reliquia obsoleta.
Wazoox,

1
@wazoox, è necessario per Windows su sistemi non UEFI, ma anche in questo caso Windows è anche una reliquia obsoleta;)
psusi

8

Ci sono due limiti. Su è il supporto in Linux, l'altro è il conteggio massimo nello schema della tabella delle partizioni utilizzato: dipende se si utilizza l' MBR legacy o il GPT più recente .

MBR supporta quattro partizioni primarie. Una di queste potrebbe essere una partizione estesa che può contenere un numero arbitrario di partizioni logiche limitate solo dallo spazio su disco.

GPT supporta fino a 128 partizioni "primarie".

In passato, Linux supportava fino a 63 partizioni su IDE e 15 su dischi SCSI a causa del numero limitato di dispositivi. Oggi il kernel può allocare i numeri di dispositivo in modo dinamico (udev è la parola chiave) quindi questi limiti non dovrebbero essere più validi.


4

Questo non è correlato al sistema operativo stesso, ma allo schema di partizione in uso.

L'introduzione della gpart pagina man di FreeBSD lo ha abbastanza bene.

Fondamentalmente hai:

  • Schema "MBR" che è il vecchio modo "DOS" con, come hai detto, partizioni "primarie" (fino a 4) e logiche (senza limiti reali - per quanto ne so).
  • Schema "Intel EFI / GPT", il nuovo modo di fare le cose, con solo partizioni "primarie" e praticamente senza limiti.

Quindi, in realtà, nessuna vera differenza con la tua scatola standard di Windows.


0

Secondo Wikipedia , il kernel supporta file system fino a 16 TB, quindi è la più grande che una partizione possa essere ed essere ancora pienamente utilizzata. Ovviamente non tutti i file system supportano effettivamente i 16 TB completi.


2
Ronzio. Il kernel Linux a 32 bit supporta fino a 16 TB, ma la maggior parte dei sistemi sono stati 64 bit per anni. Costruisco abitualmente server di archiviazione con partizioni da 77 TB e file system ancora più grandi.
Wazoox,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.