web-dev-qa-db-ja.com

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

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

8
Mughil

パーティションの数

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

常にもう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テラバイト。

UEFIから起動している場合ROM従来のCP/M時代のBIOSではなく、すでに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ボリューム)ごとのサイズ制限です。これは、あなたが求めていることです。しかし、パーティションを持つことのポイントは通常、ファイルシステムを格納することであり、ファイルシステムには独自の制限があります。実際、ファイルシステムが持つ制限typesは、ファイルシステム自体に依存します!唯一のグローバルな制限は、ファイルシステムの最大サイズとその中の各ファイルの最大サイズです。

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を使用する場合を除きます。

20
Alexios

2つの制限があります。 Linuxでのサポート、もう1つは使用されるパーティションテーブルスキームの最大数です。レガシー [〜#〜] mbr [〜#〜] または新しい [〜#〜] gpt [〜#〜]

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

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

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

8
jofel

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

gpartFreeBSDのmanページ の導入はそれをかなりうまく持っています。

基本的にあなたは持っています:

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

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

4
Ouki

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

0
Kevin