Partitioning (日本語)
| 概括 |
|---|
| ディスクパーティショニングツール、ベストプラクティス、追加的考察の概要。 |
| 関連項目 |
| fstab (日本語) |
| LVM |
| Swap (日本語) |
| Format a device (日本語) |
| File Systems (日本語) |
ハードドライブをパーティショニングして論理的なパーティションを作ることで他から独立してアクセスすることができるようになります。パーティション情報はハードドライブの GUID Partition Table か Master Boot Record (日本語) に置かれます。
ハードドライブ全体を1つのパーティションにすることもできますし、ハードドライブの容量を分割して複数のパーティションを作ることもできます。複数のパーティションが必要になる場合は様々です: 例えばデュアル・マルチブートや、swap パーティションなど。他にも、パーティショニングは論理的にデータを分担する方法としても用いられ、オーディオ・ビデオファイルのためにパーティションを分割するようなことがあります。一般的なパーティショニング形態は下で詳しく記述しています。
それぞれのパーティションは使う前にファイルシステムでフォーマットしなければなりません。
Contents |
パーティションのタイプ
ディスクのパーティショニングをするというのは、そのディスク内を任意の区画(パーティション)にわけてそれぞれ定義することです。それぞれのパーティションは分割したディスクとして扱われ、それぞれファイルシステムによってフォーマットされます(ページ下を参照)。
On MBR
パーティションには3つのタイプがあります:
- Primary (プライマリ)
- Extended (拡張)
- Logical (論理)
プライマリパーティションは起動することができるパーティションで、1つのディスクもしくは RAID ボリュームに対して4つまでプライマリパーティションを作成できます (MBR)。パーティションを4つ以上作りたいときは、拡張パーティションを用いてその中に論理パーティションを内包する形で構成する必要があります。拡張パーティションは論理パーティションのコンテナにすることができます。1つのハードディスクに作れる拡張パーティションは1つだけです。拡張パーティションはプライマリパーティションとしてもカウントされます。もしディスクに拡張パーティションがあるなら、作れるプライマリパーティションは3つになります(3つのプライマリと1つの拡張で合計4つ)。論理パーティションの数は他のパーティションと違って制限がありません。Windows とのデュアルブートをするには Windows 本体をプライマリパーティションに含める必要があります。
ディスクをパーティション番号には、次のような法則があります。まずプライマリーパーティションを sda1 から sda2、sda3 と言う順番で番号を振っていき、拡張パーティションは sda4 になります。sda4 上の論理パーティションが sda5, sda6,... という具合につづきます。
On GPT
パーティションタイプは Primary しかありません。ディスクや RAID ボリュームごとに作れるパーティションの数には制限がありません。
パーティション形態
ハードドライブをパーティショニングするのに厳格なルールはありませんが、以下に一般的なガイダンスを記します。どうパーティショニングするかは、使用できるディスク容量の制限のほかに、求められる柔軟性・スピード・セキュリティなどの理由で決定されます。ユーザーの決定はコンピュータを使う癖や条件によって様々なものになりえます。Arch Linux と Windows OS のデュアルブートを考えているのなら、Windows and Arch Dual Boot を読んでください。
シングル root パーティション
このスキームが一番シンプルで、ほとんどの場合これで十分です。swapfile を作成することもできます。一般的に、まず1つのパーティションで初めて、それから、raid や暗号化、共有メディアパーティションなどの目的にあわせてパーティションを分割するのが道理にかなっています。
パーティションを分割する
パーティションをパス毎に分割することで異なるファイルシステムとマウントオプションが使えるようになります。メディアパーティションなどの場合、オペレーティングシステム間で共有できます。
マウントポイント
パーティションを分割すると以下のマウントポイントを選ぶことができます、実際の必要にあわせて決めてください。
/ (root)
root ディレクトリは階層のトップであり、プライマリファイルシステムがマウントされ他の全てのファイルシステムの幹になります。すべてのファイルとディレクトリは root ディレクトリ / の下に表示されます、それらが異なる物理デバイスに保存されている場合でも同様です。root ファイルシステムには、システムのブート・リストア・リカバー・リペアに必要なものがなければなりません。そのため、/ 下の特定ディレクトリは分割パーティションになりえません。
/ パーティション、または root パーティションは必須の、一番重要なパーティションです。このパーティションで他の全てのパーティションを置き換えることができます。
/boot
/boot ディレクトリにはブートローダの設定ファイルや実行領域だけでなく、カーネルや ramdisk イメージも入ります。またカーネルがユーザースペースのプログラムを起動する前に使われるデータも保存されます。/boot は通常のシステムオペレーションには必要ありませんが、起動中やカーネルアップグレードの時(initial ramdisk を再生成する時)だけ使われます。
ソフトウェア RAID0 (ストライプ) をインストールするには /boot パーティションを分割して作る必要があります。
/home
/home ディレクトリにはユーザー設定ファイル("ドットファイル"と呼ばれます)、キャッシュ、アプリケーションのデータ、メディアファイルが含まれます。
/home を分割することで / を別個にパーティションしなおすことができますが、分割してなくとも /home に触れずに Arch を再インストールすることはできます - 他のトップレベルディレクトリは削除する必要があり、それから pacstrap を実行することができます。
異なるディストリビューションのユーザー間で home ディレクトリを共有するべきではありません、なぜならソフトウェアのバージョンやパッチによって互換性がないことがあるからです。代わりに、メディアパーティションを共有したり、少なくとも、同じ /home パーティションにある別の home ディレクトリを使うなどしてください。
/var
/var ディレクトリにはスプールディレクトリ・ファイル、管理用・ログデータ、pacman (日本語) キャッシュ、ABS ツリーなどの可変データが置かれます。キャッシングやロギングなどに使われるため頻繁に読み書きされます。分割したパーティションに配置することで、カバン持ちのログなどによってディスク容量が不足するのを回避できます。
/usr を読み込み専用でマウントするための選択肢としても存在します。歴史的に、(インストールやシステムメンテナンスと対照的に)システムオペレーションでは /var に置かれるものは全て /usr に書き出されます。
/tmp
systemd によって tmpfs としてマウントされることで、デフォルトで分割パーティションになっています。
スワップ
swap パーティションは仮想メモリを提供します。swapfile を使うことも考えてください、パーティションを作るのに比べてパフォーマンスのオーバーヘッドがないばかりでなく、必要に応じてより簡単にリサイズできます。swap パーティションは潜在的にオペレーションシステム間で共有される可能性がありますが、ハイバネーションが使われる場合はそうでありません。
パーティションの大きさはどうすればいいですか?
パーティションのサイズは個々人の選択によりますが、以下の情報が約に立つかもしれません:
-
/boot— 100 MB -
/bootパーティションに必要な容量は約 100 MB です。 -
/— 15-20 GB - root ファイルシステム (
/) はかならず/usrディレクトリを含み、必要な容量はインストールするソフトウェアの数によります。最近のハードディスクを使うユーザーのほとんどは 15-20 GB で十分だと思います。 -
/var— 8-12 GB -
/varファイルシステムには ABS ツリーや pacman (日本語) キャッシュなどのデータを収納します。パッケージのキャッシュを保持することはダウングレードをするときなどに役立つので、/varはサイズが増えていく傾向があります。特に pacman のキャッシュはシステムを拡張したりアップデートするときに増加します。ただし、容量が足らなくなったときは問題なくキャッシュを削除可能です。デスクトップシステムでは/varに必要な容量は 8-12GB ほどで、インストールされるソフトウェアの数によります。 -
/home— [very large] -
/homeファイルシステムは一般的にユーザーのデータ(ダウンロードしたファイル・マルチメディアなど)を置くところです。デスクトップシステムでは、/homeはドライブの中で一番大きなファイルシステムにするのが普通です。 -
swap— [varies] - 歴史的に、物理メモリの容量の2倍のスワップパーティションを用意するべきという一般法則がありました。より大容量のメモリがコンピュータに積まれるようになり、この法則はすでに現状にあてはまりません。メモリが 512 MB 以下のマシンでは、2倍ルールが基本的に適合します。大容量のメモリ(1024MB 以上)を積んでいるときは、スワップパーティションは小さく、または作らなくてもかまわないでしょう。2GB 以上の物理 RAM を持っているなら、スワップパーティションがないほうが一般的に良いパフォーマンスを発揮すると思われます。
パーティショニングツール
- fdisk — Linux に含まれているターミナルパーティショニングツール。
- cfdisk — ncurses ライブラリを使ったターミナルパーティショニングツール。
- gdisk — fdisk の GPT バージョン。
- cgdisk — cfdisk の GPT バージョン。
- GNU Parted — ターミナルパーティショニングツール。
- GParted — GTK によるグラフィカルツール。
- Partitionmanager — QT によるグラフィカルツール。
- QtParted — Partitionmanager の類似ツール、AUR から利用可能。
パーティションアライメント
ハイレベルな最適化
パフォーマンスや寿命を最適化するのに、正しいパーティションアライメントを設定することは重要です。アライメントのキーポイントは SSD の EBS (erase block size) にあわせてパーティショニングすることです。
パーティションが EBS (例:512KiB) の倍数で始まるように整列されていないときは、パーティションの開始オフセットによってすべてがゆがむので、ファイルシステムのアライメントは無意味な作業です。伝統的に、ハードドライブを扱うときには、読み書きするデータのシリンダー・ヘッド・セクタを指定していました。これらは放射状に位置していて、ドライブヘッド(=プラッタ)とデータの軸位置は別々でした。LBA (logical block addressing) では、このようなことはありません。現在では、ハードドライブ全体が1つの連続したデータストリームとして扱われています。
GPT か MBR の選択
GPT は最新のパーティションスタイルです。古い Master Boot Record (MBR) システムを置き換えることを目指しています。GPT には、MS-DOS が使われていた時代にタイムスリップしてしまったような癖がある MBR に対してメリットがいくつかあります。フォーマッティングツールである fdisk (MBR) と gdisk (GPT) の最近の開発によって、同じくらい簡単に GPT や MBR を使うことができパフォーマンスを最適化できます。
要約すると:
- ブートローダに GRUB Legacy を使う場合、MBR を使うべきです。
- Windows とのデュアルブートをするなら、MBR を使うべきです。
- この規則には例外があります: 64ビットの Windows とのデュアルブートを行い、BIOS の代わりに UEFI を使うときは、GPT を使って下さい。
- 上の条件に当てはまらないなら、自由に GPT と MBR を選べます。GPT の方が新しいので、ここでの推奨は GPT です。
GPT を使う - Modern Method
Gdisk の使い方
fdisk と同じ機能を持つ GPT 用のツールである、gdisk によって、ほとんどの全ての SSD と互換性のある 2048 セクター (または 1024KiB) ブロックサイズベースの自動パーティションアライメントができます。GNU parted も GPT をサポートしていますが、パーティションのアライニングについてはあまりユーザーフレンドリーとは言えません。gdisk の典型的な使い方の略式:
- extra リポジトリから gptfdisk パッケージをインストールして
gdiskを手に入れます。 - ドライブに対して
gdiskを起動して下さい。 - ドライブが新品の時や、やり直しをしたい場合は、空の GUID パーティションテーブル (GPT) を
oコマンドで作成します。 -
nコマンドで新しいパーティションを作ります (プライマリ/最初のパーティション)。 - Assuming the partition is new, gdisk will pick the highest possible alignment. Otherwise, it will pick the largest power of two that divides all partition offsets.
- If choosing to start on a sector before the 2048th gdisk will automatically shift the partition start to the 2048th disk sector. This is to ensure a 2048-sectors alignment (as a sector is 512B, this is a 1024KiB alignment which should fit any SSD NAND erase block).
- Use the
+x{M,G}format to extend the partitionxmegabytes or gigabytes, if choosing a size that is not a multiple of the alignment size (1024kiB), gdisk will shrink the partition to the nearest inferior multiple. - Select the partition's type id, the default,
Linux/Windows data(code0700), should be fine for most use. PressLto show the codes list. If planning to use LVM select Linux LVM (8e00). - 同じようにして他のパーティションも指定します。
- テーブルをディスクに書き込み
wコマンドで終了します。 - ファイルシステムで新しいパーティションをフォーマット。
MBR を使う - Legacy Method
Using MBR, the utility for editing the partition table is called fdisk. Recent versions of fdisk have abandoned the deprecated system of using cylinders as the default display unit, as well as MS-DOS compatibility by default. The latest fdisk automatically aligns all partitions to 2048 sectors, or 1024 KiB, which should work for all EBS sizes that are known to be used by SSD manufacturers. This means that the default settings will give you proper alignment.
Note that in the olden days, fdisk used cylinders as the default display unit, and retained an MS-DOS compatibility quirk that messed with SSD alignment. Therefore one will find many guides around the internet from around 2008-2009 making a big deal out of getting everything correct. With the latest fdisk, things are much simpler, as reflected in this guide.
Fdisk の使い方
- あなたのドライブを指定して
fdiskを起動します。 - ドライブが新品の時や、やり直しをしたい場合は、空の DOS パーティションテーブルを
oコマンドで作成します。 nコマンドで新しいパーティションを作ります (プライマリ/最初のパーティション)。+xGフォーマットを使ってパーティションをxギガバイトまで拡張します。tコマンドで、パーティションのシステム ID を Linux のデフォルトタイプ (type 83) から望ましいタイプに変更してください。これは任意のステップであり、スワップ、NTFS、LVMなどの異なるタイプのパーティションを作りたいときにしてください。lコマンドを使うことで有効なパーティションタイプを全て一覧することができます。- 同じようにして他のパーティションも指定します。
wコマンドでテーブルをディスクに書き込み終了します。- ファイルシステムで新しいパーティションをフォーマット。