Linuxでサポートされる最大パーティションは何ですか?


8

Linuxシステムでサポートされている最大パーティションサイズがわかります。Linuxシステムによってインストールされたディスクに作成できる論理およびプライマリパーティションの量はどれくらいですか?


2
これは、パーティションテーブルのタイプ、gptまたはmbr、LVMの使用の有無、ファイルシステムによって異なります。誰もが有用な回答を提供できるようにするには、質問のこれらの詳細についてより具体的にする必要があります。
bsd 2012年

1
eMMCデバイスの場合、Linuxカーネルはデバイスで使用MMC_BLOCK_MINORS可能なパーティションの数を制限するために使用することに注意してください(デフォルト値は8)。
ジェローム・Pouiller

回答:


20

パーティションの数

私は他の、より速く、より良い人々がすでにこれに完全に答えていると信じています。:)

常にもう1つの制限があります

以下の説明では、制限は理論上のものであることを常に覚えておいてください。多くの場合、実際の制限は理論上の制限を下回ります。

  • 他の理論上の制限は物事を制約します。(最近のPCは非常に複雑なものです)
  • 常にもっとバグがあります。(この回答は除外されません)

制限に違反した場合

これらの制限に違反した場合に何が起こるかも簡単ではありません。たとえば、10 GBのディスクの時代には、マルチギガバイトのパーティションを作成できましたが、一部のマシンでは、1,024シリンダー以降に格納されたコードを起動できませんでした。これが、多くのLinuxインストーラーがディスクの先頭にある別の小さな/ bootパーティションを要求する理由です。起動に成功したら、問題はありませんでした。

パーティションのサイズ:MS-DOSパーティションテーブル(MBR)

MS-DOSはパーティションを(開始、サイズ)形式で保存します。各形式は32ビット幅です。昔のシリンダーヘッドセクターの座標をエンコードするために使用された各数値。現在は、任意のセクター番号が含まれているだけです(ディスクは、セクター番号から媒体固有の座標への変換を管理します)。'MS-DOS'パーティションタイプのカーネルソースは、パーティションサイズがセクター単位で32ビット幅であることを示唆しています。これにより、2 ^ 32 * 512、または2 ^ 41バイト、または2 ^ 21バイナリメガバイト、または2,097,152メガバイト、または2,048ギガバイト、または2テラバイト(マイナス1セクター)が得られます。

GUIDパーティションテーブル(GPT)

GUIDパーティションテーブル(GPT)ディスクラベルを使用している場合、パーティションテーブルは(開始、終了)ペアとして保存されます。どちらも8バイトの長さ(64ビット)であり、これにより、使用する可能性が非常に高い2 ^ 64 512バイトセクター、または2 ^ 73バイト(8バイナリゼタバイト)、または2 ^ 33テラバイトが可能になります。 。

従来のCP / M時代のBIOSではなく、UEFI ROMから起動する場合は、GPTを既に取得しています。そうでない場合は、常にディスクラベルとしてGPTを使用することを選択できます。あなたが新しいディスクを持っているなら、あなたは本当にそうすべきです。

セクターサイズ

セクターは長い間512バイトでした。これは4,096バイトに変更するように設定されています。多くのディスクはすでにこれを持っていますが、512バイトのセクターをエミュレートしています。変更が前面に来て、アロケーションユニットが4,096バイトセクターになり、LBAが4,096バイトセクターをアドレス指定すると、上記のすべてのサイズは3桁のバイナリオーダーで変化します。それらすべてに8を掛けて、新しい恐ろしい値を取得します。

論理ボリュームマネージャー

LVMを使用する場合、作成するボリュームは、パーティションとファイルシステムの間にあるため、LVMもサポートする必要があります。LVM2 FAQによると、LVM2は64ビットアーキテクチャのLinux 2.6で最大8EB(エクサバイト)をサポートします。32ビットアーキテクチャで動作するLinux 2.6では16TB(テラバイト)。Linux 2.4では1TB。

ファイルシステムの制限

もちろん、これらはパーティション(またはLVMボリューム)ごとのサイズ制限です。しかし、パーティションを持つことのポイントは通常、ファイルシステムを格納することであり、ファイルシステムには独自の制限があります。実際、ファイルシステムにどんな種類の制限があるかは、ファイルシステム自体に依存します!唯一のグローバルな制限は、ファイルシステムの最大サイズとその中の各ファイルの最大サイズです。

EXT4では、ファイルごとに最大16TB、ボリュームごとに1EB(エクサバイト)までのパーティションが可能です。ただし、32ビットのブロック番号を使用するため、デフォルトの4,096バイトのブロックサイズを増やす必要があります。これはカーネルとアーキテクチャでは不可能な場合があるため、PCではボリュームあたり16TBの方が現実的です。

ZFSは16EBファイルと16EBボリュームを許可しますが、疑いなく独自のその他の予期しない制限もあります。

ウィキペディアには、人に知られているほとんどのファイルシステムに対するこれらの制限の非常に優れた表があります

実際には

Linux 2.6以降を64ビットマシンとGPTパーティションで使用している場合、ファイルシステムの選択とその制限についてのみ心配する必要があるようです。それでも、それほど心配する必要はありません。とにかく、16TBの単一ファイルを作成するべきではありません。1エクサバイト(1,048,576 TB)は、しばらくの間、現実的な制限になります。MBRを使用していて、2テラバイトを超えるバイナリが必要な場合は、パーティションあたり2 TBの制限で動作しているため、UEFIとGPTに切り替える必要があります(これは、既に展開されているコンピューターでは簡単ではない場合があります)。

私は古いおならであり、2の累乗の倍数を計算するときにバイナリ単位を使用することに注意してください。ディスクの製造元は、小数単位を使用してチートを行うことを好んでいます(そうではないことがわかっていても、常にこれを行っていると確信しています)。したがって、最大の「2TB」ディスクは2バイナリテラバイトよりも小さいため、問題は発生しません。LVMまたはRAID-0を使用する場合を除きます。


実際、MS-DOSラベルの付いたデバイスは16 TBを超えることはできません。
wazoox

何がそれを課していますか?12×2TBのディスクが付属していて、デルがロットから1つのパーティションを作成することを想定しているため(!)、UEFI / GPTを備えた3つのサーバーを配備しただけなので、それ(または同様の制限)が存在する必要があることを知っています。しかし、私は、それがディスクブロックとカーネルのどこにあるのかを知ることができません。BIOSブートの制限か何かですか?
Alexios

@ wazoox、MS-DOSパーティションテーブルは32ビットのセクター番号を使用するため、512 TBセクターでは16 TBではなく2 TBで最高になります。
psusi

1
@psusi、はい、そうです。実際、2006年以降はMS-DOSラベルを使用していません:) Alexios、Linuxでは、任意のサイズのデバイス(ディスクまたはRAIDアレイ)にMS-DOSラベルを付けることができますが、アドレス指定できるのは2 TBだけです(すべて2 TB以上は使用できません)。MS-DOSラベルを使用する必要はもうありません。それらは本当に時代遅れの遺物です。
wazoox 2012年

1
@wazoox、それは非UEFIシステムのWindowsに必要ですが、Windowsも古い遺物です;)
psusi

8

2つの制限があります。Linuxでのサポート、もう1つは使用されるパーティションテーブルスキームの最大数です。レガシーMBRと新しいGPTのどちらを使用するかによって異なります。

MBRは4つのプライマリパーティションをサポートします。それらの1つは、ディスクスペースによってのみ制限される任意の数の論理パーティションを含むことができる拡張パーティションである可能性があり ます。

GPTは最大128の「プライマリ」パーティションをサポートします。

昔は、デバイス数が限られているため、LinuxはIDEで最大63パーティション、SCSIディスクで最大15パーティションしかサポートしていませんでした。現在、カーネルはデバイス番号を動的に割り当てることができるので(udevがキーワードです)、この制限はもはや有効ではありません。


4

これはOS自体には関係ありませんが、使用中のパーティション構成に関係します。

gpart FreeBSDmanページの紹介はそれをかなりうまく持っています。

基本的には:

  • "プライマリ"(最大4)パーティションと論理パーティション(実際の制限なし-私が知る限り)と言ったように、古い "DOS"方法である "MBR"スキーム。
  • 「Intel EFI / GPT」スキームは、「プライマリ」パーティションのみを持ち、事実上制限がない、新しい方法です。

したがって、実際には、標準のWindowsボックスとの違いはありません。


0

Wikipediaによると、カーネルは最大16 TBのファイルシステムをサポートしているため、これはパーティションを最大の容量で使用できます。もちろん、すべてのファイルシステムが実際に完全な16TBをサポートするわけではありません。


2
ハム。32ビットLinuxカーネルは最大16 TBをサポートしますが、ほとんどのシステムは何年も64ビットでした。77 TBのパーティションとさらに大きなファイルシステムを備えたストレージサーバーを定期的に構築しています。
wazoox 2012年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.