Welche maximale Partition wird unter Linux unterstützt?

8

Darf ich die maximale Partitionsgröße kennen, die von einem Linux-System unterstützt wird? Und wie viel logische und primäre Partition können wir auf einer vom Linux-System installierten Festplatte erstellen?

Mughil
quelle
2
Das hängt vom Partitionstabellentyp, gpt oder mbr, der Verwendung von LVM oder nicht, dann vom Dateisystem ab. Sie müssen diese Details in Ihrer Frage genauer beschreiben, damit Ihnen jeder eine nützliche Antwort geben kann.
bsd
1
Beachten Sie, dass der Linux-Kernel für eMMC-Geräte MMC_BLOCK_MINORSdie Anzahl der verfügbaren Partitionen pro Gerät begrenzt (Standardwert ist 8).
Jérôme Pouiller

Antworten:

20

Wie viele Partitionen

Ich glaube, andere, schnellere und bessere Leute haben dies bereits perfekt beantwortet. :) :)

Es gibt immer noch eine Grenze

Denken Sie bei der folgenden Diskussion immer daran, dass die Grenzen theoretisch sind. Die tatsächlichen Einschränkungen liegen häufig unter den theoretischen Grenzen

  • andere theoretische Grenzen schränken die Dinge ein. (PCs sind heutzutage sehr, sehr komplexe Dinge)
  • Es gibt immer mehr Fehler. (diese Antwort nicht ausgeschlossen)

Wenn Grenzwerte verletzt werden

Was passiert, wenn diese Grenzwerte verletzt werden, ist auch nicht einfach. In den Tagen mit 10-GB-Festplatten waren möglicherweise Partitionen mit mehreren Gigabyte vorhanden, aber auf einigen Computern konnte der nach dem 1.024. Zylinder gespeicherte Code nicht gestartet werden. Aus diesem Grund bestehen so viele Linux-Installer immer noch auf einer separaten Small / Boot-Partition am Anfang der Festplatte. Sobald Sie es geschafft hatten zu booten, waren die Dinge in Ordnung.

Partitionsgröße: MS-DOS-Partitionstabelle (MBR)

MS-DOS speichert Partitionen in einem Format (Start, Größe), das jeweils 32 Bit breit ist. Jede Zahl, die früher zur Codierung von Zylinderkopfsektorkoordinaten verwendet wurde. Jetzt enthält es einfach eine beliebige Sektornummer (die Platte verwaltet die Übersetzung von dieser in medienspezifische Koordinaten). Die Kernelquelle für den Partitionstyp 'MS-DOS' schlägt vor, dass die Partitionsgrößen in Sektoren 32 Bit breit sind. Das ergibt 2 ^ 32 * 512 oder 2 ^ 41 Bytes oder 2 ^ 21 binäre Megabyte oder 2.097.152 Megabyte oder 2.048 Gigabyte oder 2 Terabyte (minus ein Sektor).

GUID-Partitionstabelle (GPT)

Wenn Sie die GPU-Datenträgerbezeichnung (GUID Partition Table) verwenden, wird Ihre Partitionstabelle als (Start-, End-) Paar gespeichert. Beide sind 8 Byte lang (64 Bit), was viel mehr ermöglicht, als Sie wahrscheinlich jemals verwenden werden: 2 ^ 64 512-Byte-Sektoren oder 2 ^ 73 Byte (8 binäre Zettabyte) oder 2 ^ 33 Terabyte .

Wenn Sie von einem UEFI-ROM anstatt vom herkömmlichen BIOS der CP / M-Ära booten, haben Sie bereits GPT. Wenn nicht, können Sie GPT immer als Disklabel verwenden. Wenn Sie eine neue Festplatte haben, sollten Sie dies wirklich tun.

Sektorgrößen

Ein Sektor hat lange Zeit 512 Bytes. Dies wird auf 4.096 Bytes geändert. Viele Festplatten haben dies bereits, emulieren jedoch 512-Byte-Sektoren. Wenn die Änderung in den Vordergrund tritt und die Zuordnungseinheit zu 4.096-Byte-Sektoren wird und LBAs 4.096-Byte-Sektoren adressieren, ändern sich alle oben genannten Größen um 3 binäre Größenordnungen: Multiplizieren Sie sie alle mit 8, um die neuen, beängstigenden Werte zu erhalten.

Logical Volume Manager

Wenn Sie LVM verwenden, muss das von Ihnen erstellte Volume auch von LVM unterstützt werden, da es sich zwischen Ihren Partitionen und Dateisystemen befindet. Gemäß den häufig gestellten Fragen zu LVM2 unterstützt LVM2 unter Linux 2.6 auf 64-Bit-Architekturen bis zu 8EB (Exabyte). 16 TB (Terabyte) unter Linux 2.6 auf 32-Bit-Architekturen; und 1 TB unter Linux 2.4.

Dateisystemgrenzen

Dies sind natürlich die Größenbeschränkungen pro Partition (oder LVM-Volume), was Sie fragen. Bei Partitionen geht es normalerweise darum, Dateisysteme zu speichern, und Dateisysteme haben ihre eigenen Grenzen. Welche Arten von Einschränkungen ein Dateisystem hat, hängt vom Dateisystem selbst ab! Die einzigen globalen Grenzwerte sind die maximale Größe des Dateisystems und die maximale Größe jeder darin enthaltenen Datei.

EXT4 ermöglicht Partitionen mit bis zu 16 TB pro Datei und 1 TB (Exabyte) pro Volume. Es werden jedoch 32-Bit-Blocknummern verwendet, sodass Sie die Standardblockgröße von 4.096 Byte erhöhen müssen. Dies ist auf Ihrem Kernel und Ihrer Architektur möglicherweise nicht möglich, sodass 16 TB pro Volume auf einem PC möglicherweise realistischer sind.

ZFS erlaubt 16EB-Dateien und 16EB-Volumes, hat aber zweifellos auch seine eigenen, unvorhergesehenen Grenzen.

Wikipedia hat eine sehr schöne Tabelle dieser Grenzwerte für die meisten dem Menschen bekannten Dateisysteme .

In der Praxis

Wenn Sie Linux 2.6 oder neuer auf 64-Bit-Computern und GPT-Partitionen verwenden, sollten Sie sich anscheinend nur um die Auswahl des Dateisystems und dessen Grenzen kümmern. Selbst dann sollte es dich wirklich nicht so sehr beunruhigen. Sie sollten wahrscheinlich sowieso keine einzelnen Dateien mit 16 TB erstellen, und 1 Exabyte (1.048.576 TB) ist für eine Weile eine surreale Einschränkung. Wenn Sie MBR verwenden und mehr als 2 binäre Terabyte benötigen, sollten Sie zu UEFI und GPT wechseln, da Sie unter einem Limit von 2 TB pro Partition arbeiten (dies kann auf einem bereits bereitgestellten Computer weniger als trivial sein).

Bitte beachten Sie, dass ich ein alter Furz bin und binäre Einheiten verwende, wenn ich ein Vielfaches von Zweierpotenzen berechne. Festplattenhersteller betrügen gerne (und haben uns überzeugt, dass sie dies immer getan haben, obwohl wir wissen, dass dies nicht der Fall ist), indem sie Dezimaleinheiten verwenden. Die größte 2-TB-Festplatte ist also immer noch kleiner als 2 binäre Terabyte, und Sie werden keine Probleme haben. Es sei denn, Sie verwenden LVM oder RAID-0.

Alexios
quelle
Tatsächlich dürfen MS-DOS-gekennzeichnete Geräte nicht größer als 16 TB sein.
Wazoox
Was zwingt das auf? Ich weiß, dass es (oder ein ähnliches Limit) vorhanden sein muss, da ich gerade drei Server mit UEFI / GPT bereitgestellt habe, da sie mit 12 × 2 TB Festplatten geliefert wurden und Dell davon ausgegangen ist, dass wir eine einzelne Partition aus dem Los (!) Machen würden. Aber ich kann für mein ganzes Leben nicht sehen, wo es zwischen Festplattenblock und Kernel sein könnte. Ist es eine BIOS-Boot-Einschränkung oder so?
Alexios
@wazoox, die MS-DOS-Partitionstabelle verwendet 32-Bit-Sektornummern, sodass für 512-Byte-Sektoren 2 TB und nicht 16 TB erreicht werden.
Psusi
1
@psusi, ja, das stimmt. Eigentlich habe ich seit 2006 oder so kein MS-DOS-Label mehr verwendet :) Alexios, Unter Linux können Sie ein MS-DOS-Label auf ein Gerät (Festplatte oder RAID-Array) beliebiger Größe setzen, aber nur 2 TB sind adressierbar (alles) über 2 TB sind nicht verwendbar). Niemand sollte mehr MS-DOS-Etiketten verwenden, sie sind wirklich ein veraltetes Relikt.
Wazoox
1
@wazoox, es ist für Windows auf Nicht-UEFI-Systemen erforderlich, aber andererseits ist Windows auch ein veraltetes Relikt;)
psusi
8

Es gibt zwei Grenzen. Ein ist die Unterstützung unter Linux, das andere ist die maximale Anzahl im verwendeten Partitionstabellenschema: Dies hängt davon ab, ob Sie den älteren MBR oder den neueren GPT verwenden .

MBR unterstützt vier primäre Partitionen. Eine davon kann eine Erweiterungspartition sein, die eine beliebige Anzahl logischer Partitionen enthalten kann, die nur durch Ihren Speicherplatz begrenzt sind.

GPT unterstützt bis zu 128 "primäre" Partitionen.

Früher unterstützte Linux aufgrund begrenzter Gerätenummern nur bis zu 63 Partitionen auf IDE und 15 auf SCSI-Festplatten. Heutzutage kann der Kernel Gerätenummern dynamisch zuweisen (udev ist das Schlüsselwort), sodass diese Grenzwerte nicht länger gültig sein sollten.

Jofel
quelle
4

Dies hängt nicht mit dem Betriebssystem selbst zusammen, sondern mit dem verwendeten Partitionsschema .

Die Einführung der gpart Manpage von FreeBSD hat es ganz schön.

Grundsätzlich haben Sie:

  • "MBR" -Schema, das die alte "DOS" -Methode ist, wie Sie sagten, "primäre" (bis zu 4) Partitionen und logische (keine wirklichen Grenzen - soweit ich weiß).
  • "Intel EFI / GPT" -Schema, die neue Art, Dinge zu tun, mit nur "primären" Partitionen und praktisch keinen Grenzen.

In der Tat keine wirklichen Unterschiede zu Ihrer Standard-Windows-Box.

Ouki
quelle
0

Laut Wikipedia unterstützt der Kernel Dateisysteme mit bis zu 16 TB, sodass dies die größte Partition ist, die vollständig genutzt werden kann und wird. Natürlich unterstützen nicht alle Dateisysteme tatsächlich die vollen 16 TB.

Kevin
quelle
2
Summen. Der 32-Bit-Linux-Kernel unterstützt bis zu 16 TB, aber die meisten Systeme sind seit Jahren 64-Bit. Ich baue routinemäßig Speicherserver mit 77-TB-Partitionen und noch größeren Dateisystemen.
Wazoox