コンテンツにスキップ

「パーティショニング」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
AshMyzk (トーク | 投稿記録)
→Root パーティション: セクション名を変更
Uth (トーク | 投稿記録)
表現を少し修正
 
(3人の利用者による、間の19版が非表示)
2行目: 2行目:
[[Category:ブートプロセス]]
[[Category:ブートプロセス]]
[[Category:システムリカバリ]]
[[Category:システムリカバリ]]
[[ar:Partitioning]]
[[de:Partitionierung]]
[[en:Partitioning]]
[[en:Partitioning]]
[[fa:پارتیشن بندی]]
[[es:Partitioning]]
[[hu:Partitioning]]
[[pt:Partitioning]]
[[it:Partitioning]]
[[pl:Partitioning]]
[[ru:Partitioning]]
[[ru:Partitioning]]
[[tr:Partitioning]]
[[zh-hans:Partitioning]]
[[zh-hans:Partitioning]]
{{Related articles start}}
{{Related articles start}}
{{Related|Arch ファイルシステム階層}}
{{Related|ファイルシステム}}
{{Related|ファイルシステム}}
{{Related|fdisk}}
{{Related|fdisk}}
{{Related|GNU Parted}}
{{Related|gdisk}}
{{Related|parted}}
{{Related|fstab}}
{{Related|fstab}}
{{Related|LVM}}
{{Related|LVM}}
{{Related|スワップ}}
{{Related|スワップ}}
{{Related|Arch ブートプロセス}}
{{Related|Unified Extensible Firmware Interface}}
{{Related articles end}}
{{Related articles end}}


ハードドライブを''パーティショニング''して論理的なパーティションを作ることで他から独立してアクセスすることができるようになります。
パーティショニングとは[[Wikipedia:ja:記憶装置#二次記憶装置|二次記憶装置]]上に1つ、あるいは複数の領域を作成して、それぞれの領域を分離して管理できるようにすることです。


ハードドライブ全体を1つのパーティションにすることもできますし、ハードドライブの容量を分割して複数のパーティションを作ることもできます。複数のパーティションが必要になる場合は様々です: 例えばデュアル・マルチブートや、[[スワップ]]パーティションなど。他にも、パーティショニングは論理的にデータを分担する方法としても用いられ、オーディオ・ビデオファイルのためにパーティションを分割するようなことがあります。一般的なパーティショニング形態は下で詳しく記述しています。
ディスク全体を1つのパーティションに割り当てることもできますし、複数のパーティションに割り当てることもできます (デュアルブートする場合や[[スワップ]]パーティションを作る場合、オーディオファイルやビデオファイルなどのデータを論理的に分けておきたい場合に便利です)。パーティションスキームは、Master Boot Record (MBR) や GUID Partition Table (GPT) などの[[#パーティションテーブル|パーティションテーブル]]に格納されています。


パーティションテーブルは[[Wikipedia:List of disk partitioning software|パーティショニングツール]]を使うことで作成したり変更したりできます。Arch Linux で利用できるパーティショニングツールは [[#パーティショニングツール]] セクションにリストアップされています。
それぞれのパーティションは使う前に[[ファイルシステム]]でフォーマットしなければなりません。


通常、パーティションには[[ファイルシステム]]が直接含まれています。これは、パーティション上にファイルシステムを作成する(つまり、パーティションを[[フォーマット]]する)ことで可能です。あるいは、パーティションには [[LVM]]、[[保存データ暗号化#ブロックデバイスの暗号化|ブロックデバイス暗号化]]、[[RAID]] を含ませることもでき、最終的にこれらは、ファイルを格納できるデバイスファイルを提供します (あるいは、デバイスをさらに積み重ねることもできます)。
==パーティションテーブル==


[[ブロックデバイス]] (例えば ディスク、パーティション、LUKS デバイス、LVM 論理ボリューム、RAID アレイ) のうち、マウント可能なファイルシステムを直接含んでいるものは、[[Wikipedia:Volume (computing)|ボリューム]]と呼ばれます。
パーティションの情報はパーティションテーブルに保存されます。現在、主に使われている形式は2つ存在します。昔ながらの [[Master Boot Record]] と新しい [[GUID Partition Table]]。後者は MBR 形式に存在するいくつかの制限を取り除くように改良されています。


== パーティションテーブル ==
{{Note|既存のテーブルは {{ic|parted ''/dev/sda'' print}} または {{ic|fdisk -l ''/dev/sda''}} で確認できます ({{ic|''/dev/sda''}} はデバイス名に置き換えてください)。}}

主に2種類のパーティションテーブルが利用できます。以下の [[#Master Boot Record]] (MBR) セクションと [[#GUID Partition Table]] (GPT) セクションで、どちらを選択すればよいかについての議論と共に説明されています。3つ目に、あまり一般的でない代替品としてパーティションレスディスクがあり、これも以下のセクションで説明されています。

[[ブロックデバイス]]のパーティションテーブルを表示するには[[#パーティショニングツール|パーティショニングツール]]を使ってください。

{{Tip|SATA ディスクに対しては {{ic|parted ''/dev/sdX'' print}} か {{ic|fdisk -l ''/dev/sdX''}} を実行してください({{ic|''/dev/sdX''}} の部分は {{ic|/dev/sda}} のような[[ブロックデバイス]]です)。[[NVMe]] ディスクに対しては {{ic|/dev/nvme0n1}}、eMMC ディスクに対しては {{ic|/dev/mmcblk0}} です。ブロックデバイスの命名に関する詳細は [[デバイスファイル#ブロックデバイスの名前]] を見てください。}}


=== Master Boot Record ===
=== Master Boot Record ===

[[Wikipedia:Master boot record|Master Boot Record]] (MBR) は、ストレージデバイスの最初の512バイトです。 これには、オペレーティングシステムのブートローダーとストレージデバイスの Partition Table が含まれています。 [https://ja.wikipedia.org/wiki/Basic_Input/Output_System BIOS] システムの [[ブートプロセス]] で重要な役割を果たします。 MBR 構造については、[[Wikipedia:Master boot record#Diskpartitioning]] を参照してください。
[[Wikipedia:Master boot record|Master Boot Record]] (MBR) は、ストレージデバイスの最初の512バイトです。これには、オペレーティングシステムのブートローダーとストレージデバイスのパーティションテーブルが含まれています。[[Wikipedia:ja:Basic Input/Output System|BIOS]] システムの[[ブートプロセス]]で重要な役割を果たします。MBR の構造については、[[Wikipedia:Master boot record#Disk partitioning]] を参照してください。


{{Note|
{{Note|
* MBR はパーティションにありません。 これは、デバイスの最初のセクター(物理オフセット0)にあり、最初のパーティションの前にあります。
* MBR はパーティションにありません。これは、デバイスの最初のセクター(物理オフセット0)にあり、最初のパーティションの前にあります。
* パーティションレスデバイスまたは個々のパーティション内に存在するブートセクターは、代わりに [[Wikipedia:Volume boot record|volume boot record (VBR)]] と呼ばれます。
* パーティションレスデバイスまたは個々のパーティション内に存在するブートセクターは、代わりに [[Wikipedia:Volume boot record|volume boot record (VBR)]] と呼ばれます。
}}
}}


==== Master Boot Record (bootstrap code)====
==== Master Boot Record (bootstrap code) ====


MBRの最初の440バイトは、'''bootstrap code 領域''' です。 BIOS システムでは、通常、ブートローダーの最初のステージが含まれています。 bootstrap code は、バックアップ、バックアップからの復元、または消去することができます [[dd#Backup and restore MBR|usingdd]]
MBR の先頭440バイトは、'''bootstrap code 領域''' です。BIOS システムでは、通常、MBR にブートローダーの最初のステージが含まれています。bootstrap code は、[[dd#MBR のバックアップと復元|dd を使って]]バックアップしたり、バックアップから復元したり、消去したりすることができます。


==== Master Boot Record (partition table)====
==== Master Boot Record (partition table) ====


MBR Partition Table (DOS または MS-DOS Partition Table とも呼ばれます) には、次の3種類のパーティションがあります。
MBR パーティションテーブル(またの名を DOS パーティションテーブル、MS-DOS パーティションテーブル)には、3つのパーティションタイプがあります:


* Primary (プライマリ)
* Primary (プライマリ)
* Extended (拡張)
* Extended (拡張)
** Logical (論理)
** Logical (論理)

'''プライマリ'''パーティションは起動可能にすることができ、ディスクや RAID ボリュームごとに4つまで作成できます。MBR パーティションテーブルで5つ以上のパーティションが必要になった場合、プライマリパーティションのうち1つを'''拡張'''パーティションに置き換えて、その中に'''論理'''パーティションを作成する必要があります。

拡張パーティションは論理パーティションの入れ物と考えることができます。1つのハードディスクには2つ以上の拡張パーティションを格納することはできません。拡張パーティションはプライマリパーティションとしてもカウントされるので、ディスクに1つの拡張パーティションが存在している場合、追加できるプライマリパーティションは3つだけです(つまり、3つのプライマリパーティションと1つの拡張パーティション)。拡張パーティション内に存在できる論理パーティションの数に制限はありません。Windows とデュアルブートするシステムでは、Windows をプライマリパーティションに格納する必要があります。

''sda1'' から ''sda3'' をプライマリパーティションとし、''sda4'' を拡張パーティションとするのが慣例です。''sda4'' 上の論理パーティションは、''sda5''、''sda6'' などのようになります。

{{Tip|MBR ディスクをパーティショニングする際、[[gdisk#MBR と GPT の変換|GPT に変換する]]時に備えて、少なくとも512バイトセクタ33個分(16.5 KiB)の未割り当て領域をディスクの末尾に確保することを検討してください。この空き領域は、バックアップ GPT ヘッダを格納するために必要になります。}}


=== GUID Partition Table ===
=== GUID Partition Table ===
{{Wikipedia/ja|GUIDパーティションテーブル}}


[[Wikipedia:ja:GUIDパーティションテーブル|GUID パーティションテーブル]] (GPT) とは、パーティションスキームの1つであり、[[Unified Extensible Firmware Interface]] 規格の一部です。GPT では、パーティションと[[Wikipedia:GUID Partition Table#Partition type GUIDs|パーティションタイプ]]を定義するために[[Wikipedia:Globally unique identifier|グローバル一意識別子]](GUID)が使われます(Linux の世界では UUID が使用されます)。GPT は [[#Master Boot Record|Master Boot Record]] パーティショニングスキーム方式の後継として設計されました。
パーティションタイプは '''Primary''' しかありません。ディスクや RAID ボリュームごとに作れるパーティションの数には制限がありません。

GUID Partition Table ディスクの先頭には、GPT を検出できないソフトウェアから保護するための [[Wikipedia:GUID Partition Table#Protective MBR (LBA 0)|protective Master Boot Record]] (PMBR) が存在します。通常の MBR のような protective MBR には、[[#Master Boot Record (bootstrap code)|bootstrap code 領域]]が存在し、対応しているブートローダで BIOS/BPT ブートを行うために利用できます。


=== GPT か MBR の選択 ===
=== GPT か MBR の選択 ===


[[GUID Partition Table]] (GPT) は新しい、最新のパーティションスタイルです。古い [[Master Boot Record]] (MBR) システムを置き換えることを目指しています。GPT には、MS-DOS が使われていた時代にタイムスリップしてしまったような癖がある MBR に対してメリットがいくつかあります。フォーマッティングツールである ''fdisk'' (MBR) と ''gdisk'' (GPT) の最近の開発によって、同じくらい簡単に GPT や MBR を使うことができパフォーマンスを最適化できます。
[[GUID Partition Table]] (GPT) は新しい、現代的なパーティションスタイルです。古い Master Boot Record (MBR) システムを置き換えることを目指しています。GPT には、MS-DOS が使われていた時代にタイムスリップしてしまったような癖がある MBR に対してメリットがいくつかあります。フォーマッティングツールの最近の開発によって、GPT と MBR はどちらも信頼性、パフォーマンスを同じくらいの簡単さで実現できるようになりました。


{{Note|GPT でパーティショニングされたディスクから BIOS ベースシステムで GRUB を起動させるには、[[BIOS ブートパーティション]]が必要です。}}
要約すると:
* ブートローダに GRUB Legacy を使う場合、MBR を使うべきです。
* 古い BIOS を使う Windows (32ビット、64ビット両方) とのデュアルブートをするなら、MBR を使うべきです。
* BIOS の代わりに [[Unified Extensible Firmware Interface|UEFI]] を使う64ビットの Windows とデュアルブートをするなら、GPT を使うべきです。
* 古いハードウェアにインストールする場合 (特にノートパソコンにインストールする場合)、BIOS が GPT をサポートしていない可能性があるので MBR を選択しましょう。
* 上の条件に当てはまらないなら、自由に GPT と MBR を選んでください。GPT の方が新しいので、ここでの推奨は GPT です。
* [[Unified Extensible Firmware Interface|UEFI]] ブートではいつでも GPT を使うことが推奨されます。UEFI ファームウェアによっては UEFI-MBR ブートが出来ないからです。


GPT か MBR を選択する際に考慮すべきポイントは:
=== Partitionless disk ===


* レガシー BIOS を使って(32ビットと64ビットに関わらず) Windows とデュアルブートする場合、MBR スキームを使用する必要があります。
{{Expansion|Explain when one might want to use a partitionless disk (e.g. in VMs) and when not and why.}}
* BIOS モードではなく [[UEFI]] モードで64ビット Windows とデュアルブートする場合、GPT スキームを使用する必要があります。
* 古いハードウェア(特に、古いノートパソコン)上にインストールする場合、MBR を選択することを検討してください。そのハードウェアの BIOS が GPT に対応していないかもしれないからです(しかし、[[#古い BIOS をだまして GPT から起動させる]] に解決策があります)。
* 2 TiB よりも大きいディスクをパーティショニングする場合、GPT を使う必要があります。
* [[UEFI]] ブートでは常に GPT を使うことが推奨されます。一部の UEFI 実装は UEFI モードでの MBR からの起動をサポートしていないからです。
* 上記のどれにも当てはまらない場合、GPT と MBR から自由に選んでください。GPT のほうがよりモダンなので、この場合、GPT を選ぶことが推奨されます。


MBR に対する GPT のメリットは:
パーティションレスディスク別名 [https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-and-gpt-faq what-is-a-superfloppysuperfloppy] は、ストレージデバイス全体を占める1つのファイルシステムを持つパーティションテーブルです。 パーティションレスデバイスに存在するブートセクタは、[[Wikipedia:Volume boot record|volume boot record (VBR)]] と呼ばれます。

* GPT はユニークなディスク GUID と、各パーティションごとにユニークなパーティション GUID([[PARTUUID]])を提供します。これは、パーティションやディスクを参照するための、ファイルシステムに依存しない良い手段です。GUID は、[https://uapi-group.org/specifications/specs/discoverable_partitions_specification/ Discoverable Partitions Specification] の前提条件であり、Systemd を有効化した initramfs で利用できます。
* GPT は、ファイルシステムに依存しないパーティション名を提供します([[PARTLABEL]])。
* GPT では任意の数のパーティションを作成できます(パーティションテーブルに割り当てられた領域のサイズに依存します)。拡張パーティションや論理パーティションは必要ありません。デフォルトで、GPT には 128 個のパーティションを定義できるスペースが確保されています。パーティションテーブルにより多くのスペースを割り当てることで、より多くのパーティションを定義できるようになります(この機能をサポートしているツールは今の所 [[gdisk]] しか知られていません)。
* GPT では、セクタ番号を格納するために64ビットの LBA を使用します(アドレシング可能な最大ディスクサイズは 2 ZiB です)。MBR では、ドライブごとに 2 TiB までしかアドレシングできません。[https://superuser.com/a/1028994]
* GPT では、バックアップのヘッダとパーティションテーブルがディスクの末尾に格納されており、プライマリのヘッダが破損してしまった場合にバックアップを使って[[gdisk#GPT ヘッダのリカバリ|復元を試みる]]ことができます。
* CRC32 checksum により、ヘッダとパーティションテーブルのエラーと破損を検出します。

[[#パーティショニングツール]] のセクションには、GPT や MBR のテーブルを作成/変更するためにどのツールを利用できるかを示す表があります。

{{Tip|MBR と GPT は互いに変換することが可能です。[[gdisk#MBR と GPT の変換]] を見てください。}}

=== パーティションレスディスク ===

パーティションレスディスク(別名 [https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-and-gpt-faq#superfloppy superfloppy])とは、パーティションテーブルを持たないストレージデバイスのことであり、1つのファイルシステムがストレージデバイス全体を占めます。パーティションレスデバイスに存在するブートセクタは、[[Wikipedia:Volume boot record|volume boot record (VBR)]] と呼ばれます。


==== Btrfs パーティショニング ====
==== Btrfs パーティショニング ====
{{Wikipedia/ja|Btrfs}}


Btrfs はデータストレージデバイス全体を占有して [[Master Boot Record|MBR]] や [[GUID Partition Table|GPT]] パーティションスキームを置き換えることができます。詳しい説明は [[Btrfs#パーティショニング]] を見て下さい。
[[Btrfs]] はデータストレージデバイス全体を占有して、[[#Master Boot Record|MBR]] や [[#GUID Partition Table|GPT]] パーティションスキームを置き換えることができます。詳しい説明は [[Btrfs#パーティショニング]] を見て下さい。


== パーティション形態 ==
== パーティションスキーム ==


ハードドライブをパーティショニングするのに厳格なルールはありませんが、以下に一般的なガイダンスを記します。どうパーティショニングするかは、使用できるディスク容量の制限のほかに、求められる柔軟性・スピード・セキュリティなどの理由で決定されます。ユーザーの決定はコンピュータを使う癖や条件によって様々なものになりえます。Arch Linux と Windows OS のデュアルブートを考えているのなら、[[Windows と Arch のデュアルブート]]を読んでください。
ハードドライブをパーティショニングするのに厳格なルールはありませんが、以下に一般的なガイダンスを記します。ディスクのパーティショニングスキームは、使用できるディスク容量の制限のほかに、求められる柔軟性、スピード、セキュリティなどの理由で決定されます。ユーザーの決定はコンピュータを使う癖や条件によって様々なものになりえます。Arch Linux と Windows OS のデュアルブートを考えているのなら、[[Windows と Arch のデュアルブート]]を読んでください。


{{Note|
{{Warning|ブートローダのための領域を残しておくことを忘れないで下さい。MBR や GRUB-Legacy では問題になりませんでしたが、最近のパーティションスキームでは特別な、小さなパーティションが必要になることがあります。}}
* 通常、[[UEFI]] システムでは [[EFI システムパーティション]]が必要です。
* [[#GUID Partition Table|GPT]] でパーティショニングされた BIOS システムでは、[[GRUB]] をブートローダとして使う場合、[[BIOS ブートパーティション]]が必要です。
}}


{{Tip|[[Btrfs]] を使用している場合、サブボリュームはパーティションを模倣するために使用できます。[[Btrfs#サブボリュームをマウントする]] セクションを見てください。}}
=== シングル root パーティション ===


=== シングルルートパーティション ===
このスキームが一番シンプルで、ほとんどの場合これで十分です。必要に応じて[[スワップ#スワップファイル|スワップファイル]]を作成することもでき、簡単にサイズを変更できます。一般的に、まず1つのパーティション {{ic|/}} で初めて、それから、RAID や暗号化、共有メディアパーティションなどの目的にあわせてパーティションを分割するのは道理にかなっています。GPT でパーティションされた BIOS システムに GRUB をインストールするときは追加の BIOS boot パーティションが必要になるので注意してください。

このスキームが最もシンプルかつ柔軟であり、消費者グレードのデバイスのストレージサイズが増加していることを鑑みると、ほとんどの場合これで十分です。必要に応じて[[スワップファイル]]を作成することもでき、簡単にそのサイズを変更できます。通常、まず単一の {{ic|/}} パーティションから考え始めて、それから RAID、暗号化、共有メディアパーティションなどのユースケースに合わせてパーティションを分割していくのが道理にかなっています。いくつかの一般的な専用パーティション及び一般的でない専用パーティションの説明は [[#パーティションを分割する]] を参照してください

{{Warning|[[ブートローダー]]に {{ic|/}} 内の {{ic|/boot}} ディレクトリにアクセスする機能が存在しない場合、[[#/boot|/boot パーティション]]は分割された物理パーティションにする必要があります (つまり、LVM、ソフトウェア RAID、ファイルシステムのサブボリュームなどではなく、ディスク上のメインのパーティションテーブル上に作成する必要があるということ)。よって、カーネルと initramfs のイメージが存在する、ブロックデバイス、スタックされたブロックデバイス (LVM、RAID、dm-crypt、LUKS など)、ファイルシステムに至るまでの全てを、ブートローダーがサポートしていなければならなりません。}}

GPT パーティションは、タイプ GUID {{ic|BC13C2FF-59E6-4262-A352-B275FD6F7172}} ("Linux root (x86-64)", "Linux x86-64 root (/)") である必要があります。MBR パーティションは、デフォルトの "Linux" タイプ ID {{ic|83}} である必要があります。


=== パーティションを分割する ===
=== パーティションを分割する ===

パーティションをパス毎に分割することで異なるファイルシステムとマウントオプションが使えるようになります。メディアパーティションなどの場合、オペレーティングシステム間で共有できます。
パーティションをパス毎に分割することで異なるファイルシステムとマウントオプションが使えるようになります。メディアパーティションなどの場合、オペレーティングシステム間で共有できます。


パーティショニングの際に利用できるレイアウト例を以下に挙げています。以下のサブセクションでは、独立したパーティションに配置して {{ic|/}} 下のマウントポイントにマウントできるディレクトリのいくつかを詳細に説明しています。これらのディレクトリの内容に関する完全な説明は {{man|7|file-hierarchy}} を見てください。
=== マウントポイント ===
パーティションを分割すると以下のマウントポイントを選ぶことができます、実際の必要にあわせて決めてください。


==== / ====
==== / ====


root ディレクトリは階層のトップであり、プライマリファイルシステムがマウントされ他の全てのファイルシステムの幹になります。すべてのファイルとディレクトリは root ディレクトリ {{ic|/}} の下に表示されます、それらが異なる物理デバイスに保存されている場合でも同様です。root ファイルシステムには、システムのブート・リストア・リカバー・リペアに必要なものがなければなりません。そのため、{{ic|/}} 下の特定ディレクトリは分割パーティションになりえません。
[[Wikipedia:ja:ルートディレクトリ|ルートディレクトリ]]はディレクトリ階層のトップです。このディレクトリでは主要なファイルシステムがマウントされ、他の全てのファイルシステムの幹になります。すべてのファイルとディレクトリはルートディレクトリ {{ic|/}} の下に現れます、それらが異なる物理デバイスに保存されている場合でも同様です。ルートファイルシステムには、システムの起動、修復、回復、修繕に必要なものがなければなりません。そのため、{{ic|/}} 下の特定のディレクトリは、分割されたパーティションになりえません。


{{ic|/}} パーティション、または root パーティションは必須の、一番重要なパーティションです。このパーティションで他の全てのパーティションを置き換えることができます。
{{ic|/}} パーティション(ルートパーティション)は必須の、一番重要なパーティションです。このパーティションで他の全てのパーティションを置き換えることができます。


{{Warning|({{ic|/boot}} 以外の) 起動に必要なディレクトリは'''かならず'''同じパーティション {{ic|/}} か [[mkinitcpio|initramfs]] によってユーザースペースの初期にマウントされるパーティションに配置されなくてはなりません。起動に必要なディレクトリ: {{ic|/etc}} と {{ic|/usr}} [https://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken]。}}
{{Warning|({{ic|/boot}} 以外の)起動に必要なディレクトリは'''必ず''' {{ic|/}} と同じパーティション、あるいは [[initramfs]] によって初期ユーザ空間にマウントされるパーティションに配置されなくてはなりません。そのような起動に必須なディレクトリとしては {{ic|/etc}} と {{ic|/usr}} があります[https://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken]。}}


{{ic|/}} には伝統的に {{ic|/usr}} ディレクトリが含まれており、インストールされているソフトウェアの量によっては非常に肥大化することがあります。最近のハードディスクでは、ほとんどのユーザにとって 15 から 20 GiB あれば十分でしょう。スワップファイルをここに保存するつもりであれば、パーティションのサイズをもっと大きくする必要があるかもしれません。
====/boot====


GPT パーティションは、タイプ GUID {{ic|BC13C2FF-59E6-4262-A352-B275FD6F7172}} ("Linux root (x86-64)", "Linux x86-64 root (/)") である必要があります。MBR パーティションは、デフォルトの "Linux" タイプ ID {{ic|83}} である必要があります。
{{ic|/boot}} ディレクトリにはブートローダの設定ファイルや実行領域だけでなく、カーネルや ramdisk イメージも入ります。またカーネルがユーザースペースのプログラムを起動する前に使われるデータも保存されます。{{ic|/boot}} は通常のシステムオペレーションには必要ありませんが、起動中やカーネルアップグレードの時(initial ramdisk を再生成する時)だけ使われます。


==== /boot ====
ソフトウェア RAID0 (ストライプ) をインストールするには {{ic|/boot}} パーティションを分割して作る必要があります。


{{ic|/boot}} ディレクトリには、[[カーネル]]や [[initramfs]] イメージ、ブートローダの設定ファイルやブートローダのステージが含まれています。また、このディレクトリには、カーネルがユーザ空間のプログラムを実行し始める前に使用されるデータも格納されています。{{ic|/boot}} は通常のシステム運用では必要ありませんが、ブート時やカーネルのアップグレード(初期 RAM ディスクの生成)の際に必要になります。
{{Note|他のファイルシステムのドライバーを含んでいない UEFI ブートローダーを使用してブートする場合、[[ESP]] は {{ic|/boot}} にマウントすることが推奨されます。例えば [[EFISTUB]] や [[systemd-boot]] などのローダーが該当します。}}


{{Warning|
====/home====
* [[ブートローダー]]には、{{ic|/boot}} パーティションにアクセスする機能が存在している必要があります。よって、カーネルと initramfs のイメージが存在する、ブロックデバイス、スタックされたブロックデバイス (LVM、RAID、dm-crypt、LUKS など)、ファイルシステムに至るまでの全てを、ブートローダーがサポートしていなければならなりません。
* ファイルシステムには、[[ブートローダー]]がまだ対応していない新しい機能が導入されることがあります (例: {{Bug|79857}}、{{Bug|59047}}、{{Bug|58137}}、{{Bug|51879}}、{{Bug|46856}}、{{Bug|38750}}、{{Bug|21733}}、[[fscrypt]] によって暗号化されたディレクトリ)。その場合、[[ブートローダー]]と互換性の無い機能を無効化しない限り、そのファイルシステムを {{ic|/boot}} に対して使用するべきではありません。この問題は [[FAT32]] を使用することで回避することができます。FAT32 は事実上全てのブートローダーによってサポートされており、新しい機能が追加されることもないからです。


ブートローダーの要件と機能に関する詳細は「[[Arch ブートプロセス#ブートローダー]]」を参照してください。
{{ic|/home}} ディレクトリにはユーザー設定ファイル("ドットファイル"と呼ばれます)、キャッシュ、アプリケーションのデータ、メディアファイルが含まれます。
}}


{{Note|UEFI システムにおいては、[[EFI システムパーティション]]を {{ic|/boot}} にマウントすることで、別のパーティションを作成する必要がなくなります。詳細は「[[EFI システムパーティション#パーティションのマウント]]」を参照してください。}}
{{ic|/home}} を分割することで {{ic|/}} を別個にパーティションしなおすことができますが、分割してなくとも {{ic|/home}} に触れずに Arch を再インストールすることはできます - 他のトップレベルディレクトリは削除する必要があり、それから pacstrap を実行することができます。


EFI システムパーティションを {{ic|/boot}} として使用する場合、([[EFI システムパーティション]]の記事で説明されているように) 最小の推奨サイズは 300 MiB であり、適切なパーティションタイプが設定されていなければなりません。
異なるディストリビューションのユーザー間で home ディレクトリを共有するべきではありません、なぜならソフトウェアのバージョンやパッチによって互換性がないことがあるからです。代わりに、メディアパーティションを共有したり、少なくとも、同じ {{ic|/home}} パーティションにある別の home ディレクトリを使うなどしてください。


EFI システムパーティションを {{ic|/boot}} として使用しない場合、{{ic|/boot}} の推奨サイズは 200 MiB であり、パーティションタイプを [https://uapi-group.org/specifications/specs/boot_loader_specification/#the-partitions Extended Boot Loader (XBOOTLDR) Partition] に設定することが推奨されます (これは、GPT パーティションタイプ GUID {{ic|BC13C2FF-59E6-4262-A352-B275FD6F7172}} ([[gdisk]] ではタイプ {{ic|ea00}})、または MBR パーティションタイプ ID {{ic|ea}} です)。
====/var====


{{Note|複数のカーネルをインストールしたい、または将来的に他のカーネルを追加するときに備えておきたい場合、念の為に EFI システムパーティションのサイズを 1 GiB にしておくと良いでしょう。}}
{{ic|/var}} ディレクトリにはスプールディレクトリ・ファイル、管理用のログデータ、[[pacman]] のキャッシュ、[[Arch Build System|ABS]] ツリーなどの可変データが置かれます。キャッシングやロギングなどに使われるため頻繁に読み書きされます。分割したパーティションに配置することで、ログなどによってディスク容量が不足するのを回避できます。


==== /home ====
{{ic|/usr}} を読み込み専用でマウントするための選択肢としても存在します。歴史的に、(インストールやシステムメンテナンスと対照的に)システムオペレーションでは {{ic|/var}} に置かれるものは全て {{ic|/usr}} に書き出されます。


{{Note|{{ic|/var}} には小さいファイルが多く入ります。もしパーティションを分割するなら、ファイルシステムタイプ(下を見て下さい)の選択ではこのことを考えて下さい。}}
{{ic|/home}} ディレクトリには、ユーザー固有の設定ファイル、キャッシュ、アプリケーションのデータ、メディアファイルが含まれます。

{{ic|/home}} を分割することで {{ic|/}} を別個にパーティションしなおすことができますが、分割してなくとも {{ic|/home}} に触れずに Arch を再インストールすることはできます - 他のトップレベルディレクトリは削除する必要があり、それから pacstrap を実行することができます。


異なるディストリビューションのユーザー間で home ディレクトリを共有するべきではありません、なぜならソフトウェアのバージョンやパッチによって互換性がないことがあるからです。代わりに、メディアパーティションを共有したり、少なくとも、同じ {{ic|/home}} パーティションにある別の home ディレクトリを使うなどしてください。このパーティションのサイズは様々です。
==== /tmp ====


GPT パーティションは、タイプ GUID {{ic|933AC7E1-2EB4-4F13-B844-0E14E2AEF915}} ("Linux home", "Linux /home") である必要があります。MBR パーティションは、デフォルトの "Linux" タイプ ID {{ic|83}} である必要があります。
systemd によって {{ic|tmpfs}} としてマウントされることで、デフォルトで分割パーティションになっています。


==== スワップ ====
==== スワップ ====


[[スワップ]]パーティションは仮想メモリを提供します。[[スワップ#スワップファイル|スワップファイル]]を使うことも考えてください、パーティションを作るのに比べてパフォーマンスのオーバーヘッドがないばかりでなく、必要に応じてより簡単にリサイズできます。swap パーティションは''基本的に''オペレーションシステム間で共有することができますが、ハイバネーションが使われる場合はそうでありません。
[[スワップ]]は、仮想メモリとして使用されるディスク領域を提供するファイル、またはパーティションです。スワップファイルとスワップパーティションのパフォーマンスは同等ですが、スワップファイルのほうが必要に応じてサイズを変更しやすいです。スワップパーティションは''基本的に''オペレーションシステム間で共有することができますが、ハイバネーションが使われる場合はそうでありません。


歴史的に、スワップパーティションのサイズは物理 RAM のサイズの2倍にするという一般的なルールがありました。しかし、コンピュータがより多くのメモリを搭載するようになってから、このルールは時代遅れになりました。例えば、512 MiB の RAM を搭載する平均的なデスクトップマシンでは、通常「2倍ルール」は適切です。十分な量の RAM (1024 MiB 以上)が利用できる場合は、スワップパーティションを小さくしてもよいでしょう。
{{Note|スワップパーティションサイズについての古い法則は [[サスペンドとハイバネート|suspend-to-disk]] を使う場合はあてはまりません。サスペンドメソッドはデフォルトで利用できるメモリの 40% のイメージを使います。[[TuxOnIce]] では、atomic コピーは圧縮して通常約 70% だけ使います。[http://tuxonice.net/features]}}


ハイバネート(suspend to disk)する場合、RAM と同じサイズのスワップパーティションを作成することが推奨されます。カーネルは、スワップ領域に収まるように suspend-to-disk イメージを圧縮しようとしますが、スワップ領域のサイズが RAM よりも大幅に小さい場合にハイバネートが成功する保証はありません。詳細は [[サスペンドとハイバネート#ハイバネーション]] を見てください。
====パーティションの大きさはどうすればいいですか?====

GPT パーティションは、タイプ GUID {{ic|0657FD6D-A4AB-43C4-84E5-0933C84B4F4F}} ("Linux swap") である必要があります。MBR パーティションは、タイプ ID {{ic|82}} ("Linux swap") である必要があります。

==== /data ====

「データ」パーティションをマウントして、すべてのユーザが共有する様々なファイルを格納することができます。{{ic|/home}} パーティションをこの用途に使うこともできます。このパーティションのサイズは様々です。

GPT パーティションは、デフォルトの "Linux filesystem" タイプ GUID {{ic|0FC63DAF-8483-4772-8E79-3D69D8477DE4}} である必要があります。MBR パーティションは、デフォルトの "Linux" タイプ ID {{ic|83}} である必要があります。

==== /var ====

{{ic|/var}} ディレクトリには、スプールディレクトリ・ファイル、管理用のログデータ、[[pacman]] のキャッシュなどの可変データが置かれます。キャッシングやロギングなどに使われるため頻繁に読み書きされます。分割したパーティションに配置することで、ログなどによってディスク容量が不足するのを回避できます。

{{ic|/usr}} を読み込み専用でマウントするための選択肢としても存在します。歴史的に、(インストールやシステムメンテナンスと対照的に)システムオペレーションでは {{ic|/var}} に置かれるものは全て {{ic|/usr}} に書き出されます。


{{Note|
{{Note|
* 以下はただの推奨事項です。パーティションのサイズに関する厳格なルールは存在しません。
* {{ic|/var}} には小さいファイルが多く入ります。もしパーティションを分割するなら、ファイルシステムタイプ(下を見て下さい)の選択ではこのことを考えて下さい。
* {{ic|/var}} は頻繁に読み書きされるので、[[パフォーマンスの向上#HDD でのレイアウト|回転ディスク上でのこのパーティションの配置について考慮する]]ことが推奨されます。
* 可能であれば、それぞれのファイルシステムに 25% の容量を加えて、フラグメンテーションを防いだり将来の拡張のために余剰を残して下さい。
}}
}}


{{ic|/var}} には、他のデータに混じって [[pacman]] のキャッシュが含まれます。パッケージのアップグレードによってシステムが不安定なった際に、保存されている以前のバージョンのパッケージに[[ダウングレード]]しなければならなくなった場合に備えて、これらのパッケージを保管しておくと便利です。Pacman のキャッシュは、システムが拡張されたり更新されたりするたびに大きくなります。しかし、スペースの問題が生じた場合は、キャッシュを安全に[[Pacman#パッケージキャッシュの削除|クリア]]できます。
パーティションのサイズは個々人の好みによりますが、以下の情報が約に立つかもしれません:


デスクトップシステムにおいては 8~12 GiB の {{ic|/var}} があれば十分なはずです。どれだけ多くのソフトウェアをインストールするかにも依りますが。[[GDM#Wayland とプロプライエタリな NVIDIA ドライバ|NVIDIA、Wayland そして GDM]] を使用しているユーザは、[[NVIDIA/ヒントとテクニック#サスペンド後にビデオメモリを保持する|ビデオメモリ全体を格納するのに十分な空き領域]]を持つようにこのパーティションのサイズを設定することを検討してください。
; /boot — 200 MB : {{ic|/boot}} パーティションに必要な容量は約 100 MB です。ただし複数のカーネル・ブートイメージを使うことを考えると、200 から 300 MB がベターでしょう。
; / — 15-20 GB : root ファイルシステム ({{ic|/}}) には基本的に {{ic|/usr}} ディレクトリが含まれるので、必要な容量はインストールするソフトウェアの数によります。最近のハードディスクを使うユーザーのほとんどは 15-20 GB で十分だと思います。このパーティションにスワップファイルを保存する予定ならば、サイズをやや大きめにする必要があるでしょう。
; /var — 8-12 GB : {{ic|/var}} ファイルシステムには [[Arch Build System|ABS]] ツリーや [[pacman]] キャッシュなどのデータを収納します。パッケージのキャッシュを保持することはダウングレードをするときなどに役立つので、{{ic|/var}} はサイズが増えていく傾向があります。特に pacman のキャッシュはシステムを拡張したりアップデートするときに増加します。ただし、容量が足らなくなったときは問題なくキャッシュを削除可能です。デスクトップシステムでは {{ic|/var}} に必要な容量は 8-12GB ほどで、インストールされるソフトウェアの数によります。
; /home — [不定] : {{ic|/home}} ファイルシステムは一般的にユーザーのデータ(ダウンロードしたファイル・マルチメディアなど)を置くところです。デスクトップシステムでは、{{ic|/home}} はドライブの中で一番大きなファイルシステムにするのが普通です。
; swap — [不定] : 歴史的に、物理メモリの容量の2倍のスワップパーティションを用意するべきという一般法則がありました。より大容量のメモリがコンピュータに積まれるようになり、この法則はすでに現状にあてはまりません。メモリが 512 MB 以下のマシンでは、2倍ルールが基本的に適合します。大容量のメモリ(1024MB 以上)を積んでいるときは、スワップパーティションは小さく、または作らなくてもかまわないでしょう。2GB 以上の物理 RAM を持っているなら、スワップパーティションがないほうが一般的に良いパフォーマンスを発揮すると思われます。
: {{Note|スワップパーティション・ファイルにハイバネートするつもりならば、[[サスペンドとハイバネート#スワップパーティション(ファイル)のサイズについて]]を見てください。}}
; /data - [不定] : 全てのユーザーによって共有するファイルを置くために "data" パーティションをマウントしても良いでしょう。同じ目的で {{ic|/home}} パーティションを使ってもかまいません。


GPT パーティションは、タイプ GUID {{ic|4D21B016-B534-45C2-A9FB-5C16E091FD2D}} ("Linux variable data", "Linux /var") である必要があります。MBR パーティションは、デフォルトの "Linux" タイプ ID {{ic|83}} である必要があります。
== ツール ==


=== レイアウト例 ===
=== パーティショニングツール ===


以下の例では、{{ic|/dev/sda}} をディスクの例として使い、1番目のパーティションとして {{ic|/dev/sda1}} が存在するとします。パーティショニングするディスクが [[NVMe]] ディスク(例えば、{{ic|/dev/nvme0n1p1}} から始まるパーティションを持つ {{ic|/dev/nvme0n1}})であったり、SD カードや eMMC ディスク(例えば、{{ic|/dev/mmcblk0p1}} から始まるパーティションを持つ {{ic|/dev/mmcblk0}})であったりすると、ブロックデバイスの命名規則が異なります。詳細は [[デバイスファイル#ブロックデバイスの名前]] を見てください。
以下のプログラムは、デバイスのパーティションテーブルとパーティションを作成/操作するために使用されます。使用する正確なコマンドはリンク先の記事を見てください。


{{Note|
この表は、あなたのニーズにあうユーティリティを選ぶ際に役立ちます:
* UEFI ブートは "boot" フラグと関係ありません。UEFI ブートは NVRAM 上のブートエントリにのみ依存しています。[[Parted]] とそのフロントエンドは、パーティションが EFI システムパーティションであることを示すために GPT 上で "boot" フラグを使用します。
* すべての必要なパーティションを同一のディスク上に置く必要はありませんし、すべてのディスクで同じ種類のパーティションテーブルを使用する必要もありません。
}}

==== UEFI/GPT レイアウト例 ====


{| class="wikitable"
{| class="wikitable"
! インストールされたシステムでのマウントポイント
!
! パーティション
! MBR
! [[Wikipedia:GUID Partition Table#Partition type GUIDs|パーティションタイプ GUID]]
! GPT
! [[Wikipedia:GUID Partition Table#Partition entries (LBA 2–33)|パーティション属性]]
! 推奨サイズ
|-
|-
| {{ic|/boot}} または {{ic|/efi}}<sup>1</sup>
! 対話的
| {{ic|/dev/sda1}}
| fdisk <br> parted
| {{ic|C12A7328-F81F-11D2-BA4B-00A0C93EC93B}}: [[EFI システムパーティション]]
| fdisk <br> gdisk <br> parted
|
| 1 GiB
|-
|-
| {{ic|[SWAP]}}
! 疑似グラフィック
| {{ic|/dev/sda2}}
| cfdisk
| {{ic|0657FD6D-A4AB-43C4-84E5-0933C84B4F4F}}: Linux [[スワップ]]
| cfdisk <br> cgdisk
|
| 少なくとも 4 GiB。[[電源管理/サスペンドとハイバネート#ハイバネーション|ハイバネーション]]を行う場合は RAM と同じサイズ
|-
|-
| {{ic|/}}
! 非対話的
| {{ic|/dev/sda3}}
| sfdisk <br> parted
| {{ic|4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709}}: Linux x86-64 root (/)
| sfdisk <br> sgdisk <br> parted
|
| デバイスの残りの領域。少なくとも 23 GiB から 32 GiB
|}

==== BIOS/MBR レイアウト例 ====

{| class="wikitable"
! インストールされたシステムでのマウントポイント
! パーティション
! [[Wikipedia:Partition type|パーティションタイプ ID]]
! [[Wikipedia:ja:ブートフラグ|ブートフラグ]]
! 推奨サイズ
|-
| {{ic|[SWAP]}}
| {{ic|/dev/sda1}}
| {{ic|82}}: Linux [[スワップ]]
| {{No}}
| 少なくとも 4 GiB。[[電源管理/サスペンドとハイバネート#ハイバネーション|ハイバネーション]]を行う場合は RAM と同じサイズ
|-
| {{ic|/}}
| {{ic|/dev/sda2}}
| {{ic|83}}: Linux
| {{Yes}}
| デバイスの残りの領域。少なくとも 23 GiB から 32 GiB
|-
|-
| {{Grey|N/A}}
! グラフィカル
| ''未割り当て領域''<sup>2</sup>
| GParted <br> gnome-disk-utility <br> partitionmanager
| {{Grey|N/A}}
| GParted <br> gnome-disk-utility <br> partitionmanager
| {{Grey|N/A}}
| ディスクの末尾に少なくとも 16.5 KiB
|}
|}


==== BIOS/GPT レイアウト例 ====
{{Warning|デバイスをパーティションするときは、使用するパーティションテーブルにあったパーティショニングツールを使って下さい。互換性のないツールを使用するとテーブルが破壊され、既存のパーティションやデータが読み込めなくなる可能性があります。}}


{| class="wikitable"
==== fdisk ====
! インストールされたシステムでのマウントポイント
! パーティション
! [[Wikipedia:GUID Partition Table#Partition type GUIDs|パーティションタイプ GUID]]
! [[Wikipedia:GUID Partition Table#Partition entries (LBA 2–33)|パーティション属性]]
! 推奨サイズ
|-
| {{Grey|なし}}
| {{ic|/dev/sda1}}
| {{ic|21686148-6449-6E6F-744E-656564454649}}: [[BIOS ブートパーティション]]<sup>3</sup>
|
| 1 MiB
|-
| {{ic|[SWAP]}}
| {{ic|/dev/sda2}}
| {{ic|0657FD6D-A4AB-43C4-84E5-0933C84B4F4F}}: Linux [[スワップ]]
|
| 少なくとも 4 GiB。[[電源管理/サスペンドとハイバネート#ハイバネーション|ハイバネーション]]を行う場合は RAM と同じサイズ
|-
| {{ic|/}}
| {{ic|/dev/sda3}}
| {{ic|4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709}}: Linux x86-64 root (/)
|
| デバイスの残りの領域。少なくとも 23 GiB から 32 GiB
|}


# ブートローダが、カーネルと initramfs のイメージのある {{ic|/efi}} のファイルシステム(とそこにあるファイル)にアクセスできる場合、ESP は {{ic|/efi}} にマウントすることができます。詳細は [[EFI システムパーティション#典型的なマウントポイント]] と [[Arch ブートプロセス#ブートローダー]]セクションにある警告を見てください。
''fdisk'' とその関連するユーティリティは [[fdisk]] の記事で説明されています。
# 512バイトセクタ33個(16.5 KiB)以上のパーティショニングされていない領域をディスクの末尾に作成します。これは、将来的に [[GPT fdisk#MBR と GPT の変換|GPT に変換できる]]ようにするためのものです。この領域は、バックアップ GPT ヘッダのために必要です。すべての MBR ディスクに対してこのようなパーティショニングされていない領域を確保することが推奨されます。
# BIOS ブートパーティションは、GPT ディスクから [[GRUB]] を BIOS ブートする場合にのみ必要です。{{ic|/boot}} とは関係ありません。このパーティションはファイルシステムでフォーマットしてはいけませんし、マウントしてもいけません。


== ツール ==
* [[fdisk]] ({{Pkg|util-linux}})
** {{man|8|fdisk}} – パーティションテーブルの作成や操作を行う対話的プログラム。
** {{man|8|cfdisk}} – [[Wikipedia:ja:Curses|Curses]] ベースの fdisk 亜種。
** {{man|8|sfdisk}} – スクリプト可能な fdisk 亜種。


=== パーティショニングツール ===
==== GPT fdisk ====


以下のプログラムは、デバイスのパーティションテーブルとパーティションを作成/操作するために使用されます。使用する正確なコマンドはリンク先の記事を見てください。
''gdisk'' とその関連するユーティリティは [[gdisk]] の記事で説明されています。


この表は、あなたのニーズにあうユーティリティを選ぶ際に役立ちます:
* [[GPT fdisk]] ({{Pkg|gptfdisk}})
** {{man|8|gdisk}} – 対話的な [[#GUID Partition Table|GUID partition table (GPT)]] 操作プログラム。
** {{man|8|cgdisk}} – Curses ベースの gdisk 亜種。
** {{man|8|sgdisk}} – スクリプト可能な gdisk 亜種。


{| class="wikitable sortable"
==== GNU Parted ====
|-
! 名称
! パッケージ
! MBR
! GPT
! CLI
! TUI
! スクリプティングユーティリティ
|-
| [[fdisk]]
| {{Pkg|util-linux}}
| {{Yes}}
| {{Yes}}
| {{man|8|fdisk}}
| {{man|8|cfdisk}}
| {{man|8|sfdisk}}
|-
| [[GPT fdisk]]
| {{Pkg|gptfdisk}}
| {{No}}
| {{Yes}}
| {{man|8|gdisk}}
| {{man|8|cgdisk}}
| {{man|8|sgdisk}}
|-
| [[Parted]]
| {{Pkg|parted}}
| {{Yes}}
| {{Yes}}
| {{man|8|parted}}
| {{No}}
| {{man|8|parted}}
|}


==== GUI フロントエンド ====
これらのツールは [[GNU Parted]] の記事で説明されています。


* {{App|blivet-gui|ストレージ設定のためのグラフィカルツール。{{AUR|python-blivet}} と {{Pkg|libblockdev}} を介して ''parted'' をバックエンドとして使用します。|https://github.com/storaged-project/blivet-gui|{{AUR|blivet-gui}}}}
*{{App|[[GNU Parted]]|ターミナルパーティショニングツール。|https://www.gnu.org/software/parted/parted.html|{{pkg|parted}}}}
*{{App|GNOME Disks|GNOME のためのディスク管理ユーティリティ。|https://wiki.gnome.org/Apps/Disks|{{Pkg|gnome-disk-utility}}}}
* {{App|[[wikipedia:ja:GNOME Disks|GNOME Disks]]|ストレージデバイスを管理するための GNOME ユーティリティ。{{Pkg|udisks2}} と {{Pkg|libblockdev}} を介して ''parted'' をバックエンドとして使用します。{{Grp|gnome}} の一部です。|https://wiki.gnome.org/Apps/Disks|{{Pkg|gnome-disk-utility}}}}
*{{App|[[GParted]]|ディスクのパーティションをグラフィカルに管理するGTK パーティションエディタ。|https://gparted.sourceforge.io/|{{Pkg|gparted}}}}
* {{App|GParted|ディスクパーティションをグラフィカルに管理するためのパーティションエディタ。データ損失無しでパーティションをリサイズ、コピー、移動することができます。''parted'' をバックエンドとして使用します。|https://gparted.org/|{{Pkg|gparted}}}}
*{{App|KDE Partition Manager|ディスクデバイス、パーティション、そしてファイルシステムを管理する KDE のためのユーティリティプログラム。|https://kde.org/applications/system/org.kde.partitionmanager|{{Pkg|partitionmanager}}}}
* {{App|KDE Partition Manager|コンピュータ上のディスク、パーティション、そしてファイルシステムの管理をアシストするユーティリティ。{{Pkg|kpmcore}} を介して ''sgdisk'' をバックエンドとして使用します。{{Grp|kde-system}} の一部です。|https://apps.kde.org/partitionmanager/|{{Pkg|partitionmanager}}}}


=== バックアップ ===
=== バックアップ ===
223行目: 365行目:
* {{App|[[Wikipedia:gpart|gpart]]|破壊された MBR パーティションテーブルの内容を推測するユーティリティ。使用法は {{man|8|gpart}} man ページで説明されています。|https://github.com/baruch/gpart|{{Pkg|gpart}}}}
* {{App|[[Wikipedia:gpart|gpart]]|破壊された MBR パーティションテーブルの内容を推測するユーティリティ。使用法は {{man|8|gpart}} man ページで説明されています。|https://github.com/baruch/gpart|{{Pkg|gpart}}}}
* {{App|[[GPT fdisk#GPT ヘッダのリカバリ|GPT fdisk]]|(ディスクの先頭にある)プライマリ GPT ヘッダを(ディスクの末尾にある)セカンダリ GPT ヘッダから復元できるパーティショニングツール(その逆も可)。|https://www.rodsbooks.com/gdisk/|{{Pkg|gptfdisk}}}}
* {{App|[[GPT fdisk#GPT ヘッダのリカバリ|GPT fdisk]]|(ディスクの先頭にある)プライマリ GPT ヘッダを(ディスクの末尾にある)セカンダリ GPT ヘッダから復元できるパーティショニングツール(その逆も可)。|https://www.rodsbooks.com/gdisk/|{{Pkg|gptfdisk}}}}
* {{App|[[ファイルリカバリ#TestDisk と PhotoRec|TestDisk]]|MBR と GPT の両方の失われたパーティションを復元できるユーティリティ。|https://www.cgsecurity.org/index.html?testdisk.html|{{Pkg|testdisk}}}}
* {{App|[[ファイルリカバリ#TestDisk と PhotoRec|TestDisk]]|MBR と GPT の両方の失われたパーティションを復元できるユーティリティ。|https://www.cgsecurity.org/index.html?testdisk.html{{Dead link|2023|05|06|status=404}}|{{Pkg|testdisk}}}}


== パーティションアライメント ==
== パーティションアライメント ==


経験則として、パーティションの開始位置とサイズをメビバイト単位に揃えるというものがあります。[[Advanced Format#パーティションのアライメント]] を見てください。
パフォーマンスや寿命を最適化するのに、正しいパーティションアライメントを設定することは重要です。これはファイルシステムレベルだけでなくハードウェアレベルでも全ての I/O 操作に決まった[[wikipedia:ja:ブロック (データ)|ブロック]]があるためです。アライメントの鍵は、使用しているハードウェアに応じて、特定の''ブロックサイズ''にあわせてパーティショニングすることです。パーティションが''ブロックサイズ''の倍数で始まるように整列されてない場合、パーティションの開始オフセットによって全てが歪むので、ファイルシステムのアライメントは無意味になってしまいます。


{{Warning|パーティションのアライメントを誤ると、[[dm-crypt|dm-crypt/LUKS]] で 4096 バイトのセクタを使用できなくなります。}}
=== ハードディスクドライブ ===

伝統的に、ハードドライブを扱うときには、読み書きするデータの''シリンダー''・''ヘッド''・''セクタ''を指定していました ([[wikipedia:ja:Cylinder head sector|CHS アドレッシング]])。これらは放射状に位置していて、ドライブヘッド(=プラッタ)とデータの軸位置は別々でした。現在の[[wikipedia:ja:Logical Block Addressing|ロジカルブロックアドレッシング]]では、ハードドライブ全体が1つの連続したデータストリームとして扱われており、[[wikipedia:ja:ディスクセクタ|セクタ]]という言葉はアドレス指定できる一番小さな単位を示しています。

標準の''セクタサイズ''は 512B ですが、最近の高容量なハードドライブはもっと大きな値、大抵は 4KiB を使っています。512B より大きい値を使うことは [[Advanced Format]] と呼ばれます。

=== ソリッドステートドライブ ===

ソリッドステートドライブは[[wikipedia:ja:フラッシュメモリ|フラッシュメモリ]]を使用しているため、ハードドライブとは事情が大きく異なります。ランダムアクセスによる読み取りが可能な一方、消去 (書き換えとランダム書き込み) は[[wikipedia:ja:フラッシュメモリ#種別|ブロック単位]]でしか行うことができません。さらに、''消去ブロックサイズ'' (erase block size, EBS) は標準の''ブロックサイズ''よりもずっと大きくなっており、例えば 128KiB と 4KiB だったりするため、EBS の倍数にアライメントする必要があります。[[ソリッドステートドライブ/NVMe|NVMe]] ドライブの中には 4KiB にアライメントする必要があるドライブがありますが、全てではありません。

=== パーティショニングツール ===

過去、正しいアライメントをするにはパーティションの際に手動で計算して設定する必要がありました。最近のパーティションツールはほとんど自動的にパーティションアライメントを実行します:

* ''fdisk''
* ''gdisk''
* ''gparted''
* ''parted''

既存のパーティションが存在する場合、[[parted]] を使ってデバイスのパーティションのアライメントを確認できます。例えば、{{ic|/dev/sda}} の1番目のパーティションのアライメントを確認するには:

# parted /dev/sda
(parted) align-check optimal 1
1 aligned

{{Warning|1={{ic|/usr/bin/blockdev}} の {{ic|--getalignoff}} オプションを使ってパーティションのアライメントを確認する方法は[https://bbs.archlinux.org/viewtopic.php?id=174141 信頼性がない] という報告があります。}}


== GPT カーネルサポート ==
== GPT カーネルサポート ==


カーネル構成の {{ic|CONFIG_EFI_PARTITION}} オプションは、カーネルでの GPT サポートを有効にします(名前は EFI PARTITION ですが) このオプションはカーネルに組み込まれている必要があり、ロード可能なモジュールとしてコンパイルされてはなりません。 このオプションは、 GPT ディスクがデータストレージのみに使用され、起動には使用されない場合でも必要です。 このオプションは、すべての Arch の [https://wiki.archlinux.jp/index.php/%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB#AUR_.E3.83.91.E3.83.83.E3.82.B1.E3.83.BC.E3.82.B8 公式にサポートされているカーネル] でデフォルトで有効になっています。 カスタムカーネルの場合は、 {{ic|1=CONFIG_EFI_PARTITION=y}} を実行してこのオプションを有効にします。
カーネル構成の {{ic|CONFIG_EFI_PARTITION}} オプションは、カーネルでの GPT サポートを有効にします (名前は [[EFI システムパーティション]]に似た EFI PARTITION ですが)。このオプションはカーネルに組み込まれている必要があり、ロード可能なモジュールとしてコンパイルされてはなりません。このオプションは、GPT ディスクがデータストレージのみに使用され、起動には使用されない場合でも必要です。このオプションは、すべての Arch の [[カーネル#公式サポートカーネル|公式にサポートされているカーネル]] でデフォルトで有効になっています。カスタムカーネルの場合は、{{ic|1=CONFIG_EFI_PARTITION=y}} を実行してこのオプションを有効にします。


== トラブルシューティング ==
== トラブルシューティング ==
288行目: 405行目:
}}
}}


=== ファームウェアRAIDが有効なときにドライブが表示されない ===
=== ファームウェア RAID が有効なときにドライブが表示されない ===


SATA や NVMe ドライブがファームウェアセットアップで表示されるのに、Linux (例えば {{ic|fdisk -l}}) に表示されない場合、コントローラがファームウェア RAID モードになっている可能性があります。
SATA ドライブや NVMe ドライブがファームウェアのセットアップ画面で表示されるのに、Linux (例えば {{ic|fdisk -l}}) では表示されない場合、コントローラがファームウェア RAID モードになっている可能性があります。


NVMe の場合、[[journal]] に以下のように表示されるはずです。
NVMe の場合、[[journal]] に以下のように表示されるはずです:


kernel: ahci 0000:00:17.0: Found 1 remapped NVMe devices.
kernel: ahci 0000:00:17.0: Found 1 remapped NVMe devices.
kernel: ahci 0000:00:17.0: Switch your BIOS from RAID to AHCI mode to use them.
kernel: ahci 0000:00:17.0: Switch your BIOS from RAID to AHCI mode to use them.


解決方法は、ファームウェアセットアップ画面を開いて [[Wikipedia:ja:Advanced Host Controller Interface#モード|SATA コントローラオペレーションモード]] を ''RAID'' から ''AHCI'' に変更することです。設定は異なる名前になっていたり、コントローラごとやポートごとの設定があるかもしれないことに注意してください。
解決方法は、ファームウェアセットアップ画面を開いて [[Wikipedia:ja:Advanced Host Controller Interface#モード|SATA コントローラオペレーションモード]]を ''RAID'' から ''AHCI'' に変更することです。設定は別の名前 (例: "Intel Rapid Storage Technology"、"Intel RST"、"Intel VMD controller"、"VMD" など) であったり、コントローラごとやポートごとの設定があったりする場合があることに注意してください。

{{Warning|[[Windows と Arch のデュアルブート|Windows とデュアルブートをする]]場合、コントローラのモードを変更する前に準備が必要です。[https://www.tenforums.com/tutorials/22631-enable-ahci-windows-8-windows-10-after-installation.html How to Enable AHCI in Windows 8 and Windows 10 after Installation] を参照してください。}}

{{Note|1=一部のファームウェアには専用の NVMe RAID モードの設定がなく、(単語の意味が通りませんが) SATA コントローラのオペレーションモード設定が NVMe コントローラにも適用されます。これらのファームウェアでは、"SATA オペレーションモード" が NVMe コントローラで "AHCI" に設定されている場合、"ファームウェア RAID の無いネイティブなオペレーションモードを使用する" と解釈されます。[https://forums.anandtech.com/threads/nvme-drive-booting-in-ahci-mode.2500796/post-39852218][https://lore.kernel.org/linux-pci/20190620061038.GA20564@lst.de/T/][https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=aecec8b60422118b52e3347430ba9382e57d6d76]}}


== 参照 ==
{{Warning|[[Windows と Arch のデュアルブート|Windows とデュアルブートをしている]] とき、コントローラのモードを変更する前に準備が必要です。[https://www.tenforums.com/tutorials/22631-enable-ahci-windows-8-windows-10-after-installation.html How to Enable AHCI in Windows 8 and Windows 10 after Installation] を参照してください。}}


* [[Wikipedia:ja:パーティション]]
{{Note|1=NVMe では単語の意味が通りませんが、設定は普通 SATA と同じです。製造者は、NVMe コントローラの "SATA オペレーションモード" が "AHCI" にセットされていることを "ファームウェア RAID を使わないネイティブのオペレーティングモードを使う" と単純に解釈します。[https://forums.anandtech.com/threads/nvme-drive-booting-in-ahci-mode.2500796/post-39852218][https://lore.kernel.org/linux-pci/20190620061038.GA20564@lst.de/T/][https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=aecec8b60422118b52e3347430ba9382e57d6d76]}}
* [[Wikipedia:Binary prefix]]
* [https://thestarman.pcministry.com/asm/mbr/DiskTerms.htm Understanding Disk Drive Terminology]
* [https://kb.iu.edu/d/aijw What is a Master Boot Record (MBR)?]
* Rod Smith 氏のページ [https://www.rodsbooks.com/gdisk/whatsgpt.html What's a GPT?] と [https://rodsbooks.com/gdisk/booting.html Booting OSes from GPT]
* [https://developer.ibm.com/tutorials/l-gpt/ Make the most of large drives with GPT and Linux - IBM Developer]
* [https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-and-gpt-faq Microsoft の Windows と GPT FAQ]
* [https://www.thomas-krenn.com/en/wiki/Partition_Alignment Partition Alignment] (例付き)


{{TranslationStatus|Partitioning|2023-11-21|792920}}
==参照==
*[[Wikipedia:ja:パーティション]]
*[http://www.novell.com/coolsolutions/feature/19350.html Manually Partitioning Your Hard Drive with fdisk]
*[http://www.thomas-krenn.com/en/wiki/Partition_Alignment Partition Alignment] (サンプル付き)

2024年10月7日 (月) 19:58時点における最新版

パーティショニングとは二次記憶装置上に1つ、あるいは複数の領域を作成して、それぞれの領域を分離して管理できるようにすることです。

ディスク全体を1つのパーティションに割り当てることもできますし、複数のパーティションに割り当てることもできます (デュアルブートする場合やスワップパーティションを作る場合、オーディオファイルやビデオファイルなどのデータを論理的に分けておきたい場合に便利です)。パーティションスキームは、Master Boot Record (MBR) や GUID Partition Table (GPT) などのパーティションテーブルに格納されています。

パーティションテーブルはパーティショニングツールを使うことで作成したり変更したりできます。Arch Linux で利用できるパーティショニングツールは #パーティショニングツール セクションにリストアップされています。

通常、パーティションにはファイルシステムが直接含まれています。これは、パーティション上にファイルシステムを作成する(つまり、パーティションをフォーマットする)ことで可能です。あるいは、パーティションには LVM、ブロックデバイス暗号化、RAID を含ませることもでき、最終的にこれらは、ファイルを格納できるデバイスファイルを提供します (あるいは、デバイスをさらに積み重ねることもできます)。

ブロックデバイス (例えば ディスク、パーティション、LUKS デバイス、LVM 論理ボリューム、RAID アレイ) のうち、マウント可能なファイルシステムを直接含んでいるものは、ボリュームと呼ばれます。

パーティションテーブル

主に2種類のパーティションテーブルが利用できます。以下の #Master Boot Record (MBR) セクションと #GUID Partition Table (GPT) セクションで、どちらを選択すればよいかについての議論と共に説明されています。3つ目に、あまり一般的でない代替品としてパーティションレスディスクがあり、これも以下のセクションで説明されています。

ブロックデバイスのパーティションテーブルを表示するにはパーティショニングツールを使ってください。

ヒント SATA ディスクに対しては parted /dev/sdX print か fdisk -l /dev/sdX を実行してください(/dev/sdX の部分は /dev/sda のようなブロックデバイスです)。NVMe ディスクに対しては /dev/nvme0n1、eMMC ディスクに対しては /dev/mmcblk0 です。ブロックデバイスの命名に関する詳細は デバイスファイル#ブロックデバイスの名前 を見てください。

Master Boot Record

Master Boot Record (MBR) は、ストレージデバイスの最初の512バイトです。これには、オペレーティングシステムのブートローダーとストレージデバイスのパーティションテーブルが含まれています。BIOS システムのブートプロセスで重要な役割を果たします。MBR の構造については、Wikipedia:Master boot record#Disk partitioning を参照してください。

ノート
  • MBR はパーティションにありません。これは、デバイスの最初のセクター(物理オフセット0)にあり、最初のパーティションの前にあります。
  • パーティションレスデバイスまたは個々のパーティション内に存在するブートセクターは、代わりに volume boot record (VBR) と呼ばれます。

Master Boot Record (bootstrap code)

MBR の先頭440バイトは、bootstrap code 領域 です。BIOS システムでは、通常、MBR にブートローダーの最初のステージが含まれています。bootstrap code は、dd を使ってバックアップしたり、バックアップから復元したり、消去したりすることができます。

Master Boot Record (partition table)

MBR パーティションテーブル(またの名を DOS パーティションテーブル、MS-DOS パーティションテーブル)には、3つのパーティションタイプがあります:

  • Primary (プライマリ)
  • Extended (拡張)
    • Logical (論理)

プライマリパーティションは起動可能にすることができ、ディスクや RAID ボリュームごとに4つまで作成できます。MBR パーティションテーブルで5つ以上のパーティションが必要になった場合、プライマリパーティションのうち1つを拡張パーティションに置き換えて、その中に論理パーティションを作成する必要があります。

拡張パーティションは論理パーティションの入れ物と考えることができます。1つのハードディスクには2つ以上の拡張パーティションを格納することはできません。拡張パーティションはプライマリパーティションとしてもカウントされるので、ディスクに1つの拡張パーティションが存在している場合、追加できるプライマリパーティションは3つだけです(つまり、3つのプライマリパーティションと1つの拡張パーティション)。拡張パーティション内に存在できる論理パーティションの数に制限はありません。Windows とデュアルブートするシステムでは、Windows をプライマリパーティションに格納する必要があります。

sda1 から sda3 をプライマリパーティションとし、sda4 を拡張パーティションとするのが慣例です。sda4 上の論理パーティションは、sda5、sda6 などのようになります。

ヒント MBR ディスクをパーティショニングする際、GPT に変換する時に備えて、少なくとも512バイトセクタ33個分(16.5 KiB)の未割り当て領域をディスクの末尾に確保することを検討してください。この空き領域は、バックアップ GPT ヘッダを格納するために必要になります。

GUID Partition Table

GUID パーティションテーブル (GPT) とは、パーティションスキームの1つであり、Unified Extensible Firmware Interface 規格の一部です。GPT では、パーティションとパーティションタイプを定義するためにグローバル一意識別子(GUID)が使われます(Linux の世界では UUID が使用されます)。GPT は Master Boot Record パーティショニングスキーム方式の後継として設計されました。

GUID Partition Table ディスクの先頭には、GPT を検出できないソフトウェアから保護するための protective Master Boot Record (PMBR) が存在します。通常の MBR のような protective MBR には、bootstrap code 領域が存在し、対応しているブートローダで BIOS/BPT ブートを行うために利用できます。

GPT か MBR の選択

GUID Partition Table (GPT) は新しい、現代的なパーティションスタイルです。古い Master Boot Record (MBR) システムを置き換えることを目指しています。GPT には、MS-DOS が使われていた時代にタイムスリップしてしまったような癖がある MBR に対してメリットがいくつかあります。フォーマッティングツールの最近の開発によって、GPT と MBR はどちらも信頼性、パフォーマンスを同じくらいの簡単さで実現できるようになりました。

ノート GPT でパーティショニングされたディスクから BIOS ベースシステムで GRUB を起動させるには、BIOS ブートパーティションが必要です。

GPT か MBR を選択する際に考慮すべきポイントは:

  • レガシー BIOS を使って(32ビットと64ビットに関わらず) Windows とデュアルブートする場合、MBR スキームを使用する必要があります。
  • BIOS モードではなく UEFI モードで64ビット Windows とデュアルブートする場合、GPT スキームを使用する必要があります。
  • 古いハードウェア(特に、古いノートパソコン)上にインストールする場合、MBR を選択することを検討してください。そのハードウェアの BIOS が GPT に対応していないかもしれないからです(しかし、#古い BIOS をだまして GPT から起動させる に解決策があります)。
  • 2 TiB よりも大きいディスクをパーティショニングする場合、GPT を使う必要があります。
  • UEFI ブートでは常に GPT を使うことが推奨されます。一部の UEFI 実装は UEFI モードでの MBR からの起動をサポートしていないからです。
  • 上記のどれにも当てはまらない場合、GPT と MBR から自由に選んでください。GPT のほうがよりモダンなので、この場合、GPT を選ぶことが推奨されます。

MBR に対する GPT のメリットは:

  • GPT はユニークなディスク GUID と、各パーティションごとにユニークなパーティション GUID(PARTUUID)を提供します。これは、パーティションやディスクを参照するための、ファイルシステムに依存しない良い手段です。GUID は、Discoverable Partitions Specification の前提条件であり、Systemd を有効化した initramfs で利用できます。
  • GPT は、ファイルシステムに依存しないパーティション名を提供します(PARTLABEL)。
  • GPT では任意の数のパーティションを作成できます(パーティションテーブルに割り当てられた領域のサイズに依存します)。拡張パーティションや論理パーティションは必要ありません。デフォルトで、GPT には 128 個のパーティションを定義できるスペースが確保されています。パーティションテーブルにより多くのスペースを割り当てることで、より多くのパーティションを定義できるようになります(この機能をサポートしているツールは今の所 gdisk しか知られていません)。
  • GPT では、セクタ番号を格納するために64ビットの LBA を使用します(アドレシング可能な最大ディスクサイズは 2 ZiB です)。MBR では、ドライブごとに 2 TiB までしかアドレシングできません。[1]
  • GPT では、バックアップのヘッダとパーティションテーブルがディスクの末尾に格納されており、プライマリのヘッダが破損してしまった場合にバックアップを使って復元を試みることができます。
  • CRC32 checksum により、ヘッダとパーティションテーブルのエラーと破損を検出します。

#パーティショニングツール のセクションには、GPT や MBR のテーブルを作成/変更するためにどのツールを利用できるかを示す表があります。

ヒント MBR と GPT は互いに変換することが可能です。gdisk#MBR と GPT の変換 を見てください。

パーティションレスディスク

パーティションレスディスク(別名 superfloppy)とは、パーティションテーブルを持たないストレージデバイスのことであり、1つのファイルシステムがストレージデバイス全体を占めます。パーティションレスデバイスに存在するブートセクタは、volume boot record (VBR) と呼ばれます。

Btrfs パーティショニング

Btrfs はデータストレージデバイス全体を占有して、MBR や GPT パーティションスキームを置き換えることができます。詳しい説明は Btrfs#パーティショニング を見て下さい。

パーティションスキーム

ハードドライブをパーティショニングするのに厳格なルールはありませんが、以下に一般的なガイダンスを記します。ディスクのパーティショニングスキームは、使用できるディスク容量の制限のほかに、求められる柔軟性、スピード、セキュリティなどの理由で決定されます。ユーザーの決定はコンピュータを使う癖や条件によって様々なものになりえます。Arch Linux と Windows OS のデュアルブートを考えているのなら、Windows と Arch のデュアルブートを読んでください。

ノート
ヒント Btrfs を使用している場合、サブボリュームはパーティションを模倣するために使用できます。Btrfs#サブボリュームをマウントする セクションを見てください。

シングルルートパーティション

このスキームが最もシンプルかつ柔軟であり、消費者グレードのデバイスのストレージサイズが増加していることを鑑みると、ほとんどの場合これで十分です。必要に応じてスワップファイルを作成することもでき、簡単にそのサイズを変更できます。通常、まず単一の / パーティションから考え始めて、それから RAID、暗号化、共有メディアパーティションなどのユースケースに合わせてパーティションを分割していくのが道理にかなっています。いくつかの一般的な専用パーティション及び一般的でない専用パーティションの説明は #パーティションを分割する を参照してください

警告 ブートローダーに / 内の /boot ディレクトリにアクセスする機能が存在しない場合、/boot パーティションは分割された物理パーティションにする必要があります (つまり、LVM、ソフトウェア RAID、ファイルシステムのサブボリュームなどではなく、ディスク上のメインのパーティションテーブル上に作成する必要があるということ)。よって、カーネルと initramfs のイメージが存在する、ブロックデバイス、スタックされたブロックデバイス (LVM、RAID、dm-crypt、LUKS など)、ファイルシステムに至るまでの全てを、ブートローダーがサポートしていなければならなりません。

GPT パーティションは、タイプ GUID BC13C2FF-59E6-4262-A352-B275FD6F7172 ("Linux root (x86-64)", "Linux x86-64 root (/)") である必要があります。MBR パーティションは、デフォルトの "Linux" タイプ ID 83 である必要があります。

パーティションを分割する

パーティションをパス毎に分割することで異なるファイルシステムとマウントオプションが使えるようになります。メディアパーティションなどの場合、オペレーティングシステム間で共有できます。

パーティショニングの際に利用できるレイアウト例を以下に挙げています。以下のサブセクションでは、独立したパーティションに配置して / 下のマウントポイントにマウントできるディレクトリのいくつかを詳細に説明しています。これらのディレクトリの内容に関する完全な説明は file-hierarchy(7) を見てください。

/

ルートディレクトリはディレクトリ階層のトップです。このディレクトリでは主要なファイルシステムがマウントされ、他の全てのファイルシステムの幹になります。すべてのファイルとディレクトリはルートディレクトリ / の下に現れます、それらが異なる物理デバイスに保存されている場合でも同様です。ルートファイルシステムには、システムの起動、修復、回復、修繕に必要なものがなければなりません。そのため、/ 下の特定のディレクトリは、分割されたパーティションになりえません。

/ パーティション(ルートパーティション)は必須の、一番重要なパーティションです。このパーティションで他の全てのパーティションを置き換えることができます。

警告 (/boot 以外の)起動に必要なディレクトリは必ず / と同じパーティション、あるいは initramfs によって初期ユーザ空間にマウントされるパーティションに配置されなくてはなりません。そのような起動に必須なディレクトリとしては /etc と /usr があります[2]。

/ には伝統的に /usr ディレクトリが含まれており、インストールされているソフトウェアの量によっては非常に肥大化することがあります。最近のハードディスクでは、ほとんどのユーザにとって 15 から 20 GiB あれば十分でしょう。スワップファイルをここに保存するつもりであれば、パーティションのサイズをもっと大きくする必要があるかもしれません。

GPT パーティションは、タイプ GUID BC13C2FF-59E6-4262-A352-B275FD6F7172 ("Linux root (x86-64)", "Linux x86-64 root (/)") である必要があります。MBR パーティションは、デフォルトの "Linux" タイプ ID 83 である必要があります。

/boot

/boot ディレクトリには、カーネルや initramfs イメージ、ブートローダの設定ファイルやブートローダのステージが含まれています。また、このディレクトリには、カーネルがユーザ空間のプログラムを実行し始める前に使用されるデータも格納されています。/boot は通常のシステム運用では必要ありませんが、ブート時やカーネルのアップグレード(初期 RAM ディスクの生成)の際に必要になります。

警告
  • ブートローダーには、/boot パーティションにアクセスする機能が存在している必要があります。よって、カーネルと initramfs のイメージが存在する、ブロックデバイス、スタックされたブロックデバイス (LVM、RAID、dm-crypt、LUKS など)、ファイルシステムに至るまでの全てを、ブートローダーがサポートしていなければならなりません。
  • ファイルシステムには、ブートローダーがまだ対応していない新しい機能が導入されることがあります (例: FS#79857、FS#59047、FS#58137、FS#51879、FS#46856、FS#38750、FS#21733、fscrypt によって暗号化されたディレクトリ)。その場合、ブートローダーと互換性の無い機能を無効化しない限り、そのファイルシステムを /boot に対して使用するべきではありません。この問題は FAT32 を使用することで回避することができます。FAT32 は事実上全てのブートローダーによってサポートされており、新しい機能が追加されることもないからです。

ブートローダーの要件と機能に関する詳細は「Arch ブートプロセス#ブートローダー」を参照してください。

ノート UEFI システムにおいては、EFI システムパーティションを /boot にマウントすることで、別のパーティションを作成する必要がなくなります。詳細は「EFI システムパーティション#パーティションのマウント」を参照してください。

EFI システムパーティションを /boot として使用する場合、(EFI システムパーティションの記事で説明されているように) 最小の推奨サイズは 300 MiB であり、適切なパーティションタイプが設定されていなければなりません。

EFI システムパーティションを /boot として使用しない場合、/boot の推奨サイズは 200 MiB であり、パーティションタイプを Extended Boot Loader (XBOOTLDR) Partition に設定することが推奨されます (これは、GPT パーティションタイプ GUID BC13C2FF-59E6-4262-A352-B275FD6F7172 (gdisk ではタイプ ea00)、または MBR パーティションタイプ ID ea です)。

ノート 複数のカーネルをインストールしたい、または将来的に他のカーネルを追加するときに備えておきたい場合、念の為に EFI システムパーティションのサイズを 1 GiB にしておくと良いでしょう。

/home

/home ディレクトリには、ユーザー固有の設定ファイル、キャッシュ、アプリケーションのデータ、メディアファイルが含まれます。

/home を分割することで / を別個にパーティションしなおすことができますが、分割してなくとも /home に触れずに Arch を再インストールすることはできます - 他のトップレベルディレクトリは削除する必要があり、それから pacstrap を実行することができます。

異なるディストリビューションのユーザー間で home ディレクトリを共有するべきではありません、なぜならソフトウェアのバージョンやパッチによって互換性がないことがあるからです。代わりに、メディアパーティションを共有したり、少なくとも、同じ /home パーティションにある別の home ディレクトリを使うなどしてください。このパーティションのサイズは様々です。

GPT パーティションは、タイプ GUID 933AC7E1-2EB4-4F13-B844-0E14E2AEF915 ("Linux home", "Linux /home") である必要があります。MBR パーティションは、デフォルトの "Linux" タイプ ID 83 である必要があります。

スワップ

スワップは、仮想メモリとして使用されるディスク領域を提供するファイル、またはパーティションです。スワップファイルとスワップパーティションのパフォーマンスは同等ですが、スワップファイルのほうが必要に応じてサイズを変更しやすいです。スワップパーティションは基本的にオペレーションシステム間で共有することができますが、ハイバネーションが使われる場合はそうでありません。

歴史的に、スワップパーティションのサイズは物理 RAM のサイズの2倍にするという一般的なルールがありました。しかし、コンピュータがより多くのメモリを搭載するようになってから、このルールは時代遅れになりました。例えば、512 MiB の RAM を搭載する平均的なデスクトップマシンでは、通常「2倍ルール」は適切です。十分な量の RAM (1024 MiB 以上)が利用できる場合は、スワップパーティションを小さくしてもよいでしょう。

ハイバネート(suspend to disk)する場合、RAM と同じサイズのスワップパーティションを作成することが推奨されます。カーネルは、スワップ領域に収まるように suspend-to-disk イメージを圧縮しようとしますが、スワップ領域のサイズが RAM よりも大幅に小さい場合にハイバネートが成功する保証はありません。詳細は サスペンドとハイバネート#ハイバネーション を見てください。

GPT パーティションは、タイプ GUID 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F ("Linux swap") である必要があります。MBR パーティションは、タイプ ID 82 ("Linux swap") である必要があります。

/data

「データ」パーティションをマウントして、すべてのユーザが共有する様々なファイルを格納することができます。/home パーティションをこの用途に使うこともできます。このパーティションのサイズは様々です。

GPT パーティションは、デフォルトの "Linux filesystem" タイプ GUID 0FC63DAF-8483-4772-8E79-3D69D8477DE4 である必要があります。MBR パーティションは、デフォルトの "Linux" タイプ ID 83 である必要があります。

/var

/var ディレクトリには、スプールディレクトリ・ファイル、管理用のログデータ、pacman のキャッシュなどの可変データが置かれます。キャッシングやロギングなどに使われるため頻繁に読み書きされます。分割したパーティションに配置することで、ログなどによってディスク容量が不足するのを回避できます。

/usr を読み込み専用でマウントするための選択肢としても存在します。歴史的に、(インストールやシステムメンテナンスと対照的に)システムオペレーションでは /var に置かれるものは全て /usr に書き出されます。

ノート

/var には、他のデータに混じって pacman のキャッシュが含まれます。パッケージのアップグレードによってシステムが不安定なった際に、保存されている以前のバージョンのパッケージにダウングレードしなければならなくなった場合に備えて、これらのパッケージを保管しておくと便利です。Pacman のキャッシュは、システムが拡張されたり更新されたりするたびに大きくなります。しかし、スペースの問題が生じた場合は、キャッシュを安全にクリアできます。

デスクトップシステムにおいては 8~12 GiB の /var があれば十分なはずです。どれだけ多くのソフトウェアをインストールするかにも依りますが。NVIDIA、Wayland そして GDM を使用しているユーザは、ビデオメモリ全体を格納するのに十分な空き領域を持つようにこのパーティションのサイズを設定することを検討してください。

GPT パーティションは、タイプ GUID 4D21B016-B534-45C2-A9FB-5C16E091FD2D ("Linux variable data", "Linux /var") である必要があります。MBR パーティションは、デフォルトの "Linux" タイプ ID 83 である必要があります。

レイアウト例

以下の例では、/dev/sda をディスクの例として使い、1番目のパーティションとして /dev/sda1 が存在するとします。パーティショニングするディスクが NVMe ディスク(例えば、/dev/nvme0n1p1 から始まるパーティションを持つ /dev/nvme0n1)であったり、SD カードや eMMC ディスク(例えば、/dev/mmcblk0p1 から始まるパーティションを持つ /dev/mmcblk0)であったりすると、ブロックデバイスの命名規則が異なります。詳細は デバイスファイル#ブロックデバイスの名前 を見てください。

ノート
  • UEFI ブートは "boot" フラグと関係ありません。UEFI ブートは NVRAM 上のブートエントリにのみ依存しています。Parted とそのフロントエンドは、パーティションが EFI システムパーティションであることを示すために GPT 上で "boot" フラグを使用します。
  • すべての必要なパーティションを同一のディスク上に置く必要はありませんし、すべてのディスクで同じ種類のパーティションテーブルを使用する必要もありません。

UEFI/GPT レイアウト例

インストールされたシステムでのマウントポイント パーティション パーティションタイプ GUID パーティション属性 推奨サイズ
/boot または /efi1 /dev/sda1 C12A7328-F81F-11D2-BA4B-00A0C93EC93B: EFI システムパーティション 1 GiB
[SWAP] /dev/sda2 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F: Linux スワップ 少なくとも 4 GiB。ハイバネーションを行う場合は RAM と同じサイズ
/ /dev/sda3 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709: Linux x86-64 root (/) デバイスの残りの領域。少なくとも 23 GiB から 32 GiB

BIOS/MBR レイアウト例

インストールされたシステムでのマウントポイント パーティション パーティションタイプ ID ブートフラグ 推奨サイズ
[SWAP] /dev/sda1 82: Linux スワップ No 少なくとも 4 GiB。ハイバネーションを行う場合は RAM と同じサイズ
/ /dev/sda2 83: Linux Yes デバイスの残りの領域。少なくとも 23 GiB から 32 GiB
N/A 未割り当て領域2 N/A N/A ディスクの末尾に少なくとも 16.5 KiB

BIOS/GPT レイアウト例

インストールされたシステムでのマウントポイント パーティション パーティションタイプ GUID パーティション属性 推奨サイズ
なし /dev/sda1 21686148-6449-6E6F-744E-656564454649: BIOS ブートパーティション3 1 MiB
[SWAP] /dev/sda2 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F: Linux スワップ 少なくとも 4 GiB。ハイバネーションを行う場合は RAM と同じサイズ
/ /dev/sda3 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709: Linux x86-64 root (/) デバイスの残りの領域。少なくとも 23 GiB から 32 GiB
  1. ブートローダが、カーネルと initramfs のイメージのある /efi のファイルシステム(とそこにあるファイル)にアクセスできる場合、ESP は /efi にマウントすることができます。詳細は EFI システムパーティション#典型的なマウントポイント と Arch ブートプロセス#ブートローダーセクションにある警告を見てください。
  2. 512バイトセクタ33個(16.5 KiB)以上のパーティショニングされていない領域をディスクの末尾に作成します。これは、将来的に GPT に変換できるようにするためのものです。この領域は、バックアップ GPT ヘッダのために必要です。すべての MBR ディスクに対してこのようなパーティショニングされていない領域を確保することが推奨されます。
  3. BIOS ブートパーティションは、GPT ディスクから GRUB を BIOS ブートする場合にのみ必要です。/boot とは関係ありません。このパーティションはファイルシステムでフォーマットしてはいけませんし、マウントしてもいけません。

ツール

パーティショニングツール

以下のプログラムは、デバイスのパーティションテーブルとパーティションを作成/操作するために使用されます。使用する正確なコマンドはリンク先の記事を見てください。

この表は、あなたのニーズにあうユーティリティを選ぶ際に役立ちます:

名称 パッケージ MBR GPT CLI TUI スクリプティングユーティリティ
fdisk util-linux Yes Yes fdisk(8) cfdisk(8) sfdisk(8)
GPT fdisk gptfdisk No Yes gdisk(8) cgdisk(8) sgdisk(8)
Parted parted Yes Yes parted(8) No parted(8)

GUI フロントエンド

  • blivet-gui — ストレージ設定のためのグラフィカルツール。python-blivetAUR と libblockdev を介して parted をバックエンドとして使用します。
https://github.com/storaged-project/blivet-gui || blivet-guiAUR
  • GNOME Disks — ストレージデバイスを管理するための GNOME ユーティリティ。udisks2 と libblockdev を介して parted をバックエンドとして使用します。gnome の一部です。
https://wiki.gnome.org/Apps/Disks || gnome-disk-utility
  • GParted — ディスクパーティションをグラフィカルに管理するためのパーティションエディタ。データ損失無しでパーティションをリサイズ、コピー、移動することができます。parted をバックエンドとして使用します。
https://gparted.org/ || gparted
  • KDE Partition Manager — コンピュータ上のディスク、パーティション、そしてファイルシステムの管理をアシストするユーティリティ。kpmcore を介して sgdisk をバックエンドとして使用します。kde-system の一部です。
https://apps.kde.org/partitionmanager/ || partitionmanager

バックアップ

リカバリ

  • gpart — 破壊された MBR パーティションテーブルの内容を推測するユーティリティ。使用法は gpart(8) man ページで説明されています。
https://github.com/baruch/gpart || gpart
  • GPT fdisk — (ディスクの先頭にある)プライマリ GPT ヘッダを(ディスクの末尾にある)セカンダリ GPT ヘッダから復元できるパーティショニングツール(その逆も可)。
https://www.rodsbooks.com/gdisk/ || gptfdisk
  • TestDisk — MBR と GPT の両方の失われたパーティションを復元できるユーティリティ。
https://www.cgsecurity.org/index.html?testdisk.html[リンク切れ 2023-05-06] || testdisk

パーティションアライメント

経験則として、パーティションの開始位置とサイズをメビバイト単位に揃えるというものがあります。Advanced Format#パーティションのアライメント を見てください。

警告 パーティションのアライメントを誤ると、dm-crypt/LUKS で 4096 バイトのセクタを使用できなくなります。

GPT カーネルサポート

カーネル構成の CONFIG_EFI_PARTITION オプションは、カーネルでの GPT サポートを有効にします (名前は EFI システムパーティションに似た EFI PARTITION ですが)。このオプションはカーネルに組み込まれている必要があり、ロード可能なモジュールとしてコンパイルされてはなりません。このオプションは、GPT ディスクがデータストレージのみに使用され、起動には使用されない場合でも必要です。このオプションは、すべての Arch の 公式にサポートされているカーネル でデフォルトで有効になっています。カスタムカーネルの場合は、CONFIG_EFI_PARTITION=y を実行してこのオプションを有効にします。

トラブルシューティング

古い BIOS をだまして GPT から起動させる

一部の古い BIOS (2010年以前のもの) は、ブートセクターを解析しようとし、ブート可能な MBR パーティションが含まれていない場合はブートを拒否します。これは、このディスクでGPTを使用する場合に問題になります。これは、 BIOS の観点から、タイプee の起動不可能な MBR パーティションが1つだけ含まれているためです(つまり、保護 MBR パーティション) fdisk -t mbr /dev/sda を使用して、保護MBRエントリを起動可能としてマークできます。これは一部の BIOS で機能します。ただし、 UEFI 仕様では、保護 MBR パーティションエントリを起動できないように禁止されており、 UEFI ベースのボードはレガシーブートモードでもこれを考慮します。したがって、これは、最新の UEFI ベースのボードと起動可能な MBR パーティションの検索を要求する古い BIOS の両方で起動することになっている GPT ベースの USB フラッシュドライブを作成する場合に重要です。 fdisk や gdisk などの従来のツールを使用してこの問題を解決することはできませんが、両方の種類の BIOS に適した偽の MBR パーティションエントリをバイトシーケンスとして手動で作成することはできます。

以下のコマンドは、2番目の MBR パーティションスロットを上書きし、タイプ0 (つまり未使用) の起動可能なパーティションを追加して、デバイスの最初のセクターのみをカバーします。 GPT や、通常は保護 MBR パーティションを含む最初の MBR パーティションエントリには干渉しません。

# printf '\200\0\0\0\0\0\0\0\0\0\0\0\001\0\0\0' | dd of=/dev/sda bs=1 seek=462

最終的に次のようになります:

# fdisk -t mbr -l /dev/sda
Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 sectors
Disk model: ST3250820AS
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot Start       End   Sectors   Size Id Type
/dev/sda1           1 488397167 488397167 232.9G ee GPT
/dev/sda2  *        0         0         1   512B  0 Empty

Partition table entries are not in disk order.

ファームウェア RAID が有効なときにドライブが表示されない

SATA ドライブや NVMe ドライブがファームウェアのセットアップ画面で表示されるのに、Linux (例えば fdisk -l) では表示されない場合、コントローラがファームウェア RAID モードになっている可能性があります。

NVMe の場合、journal に以下のように表示されるはずです:

kernel: ahci 0000:00:17.0: Found 1 remapped NVMe devices.
kernel: ahci 0000:00:17.0: Switch your BIOS from RAID to AHCI mode to use them.

解決方法は、ファームウェアセットアップ画面を開いて SATA コントローラオペレーションモードを RAID から AHCI に変更することです。設定は別の名前 (例: "Intel Rapid Storage Technology"、"Intel RST"、"Intel VMD controller"、"VMD" など) であったり、コントローラごとやポートごとの設定があったりする場合があることに注意してください。

警告 Windows とデュアルブートをする場合、コントローラのモードを変更する前に準備が必要です。How to Enable AHCI in Windows 8 and Windows 10 after Installation を参照してください。
ノート 一部のファームウェアには専用の NVMe RAID モードの設定がなく、(単語の意味が通りませんが) SATA コントローラのオペレーションモード設定が NVMe コントローラにも適用されます。これらのファームウェアでは、"SATA オペレーションモード" が NVMe コントローラで "AHCI" に設定されている場合、"ファームウェア RAID の無いネイティブなオペレーションモードを使用する" と解釈されます。[3][4][5]

参照

翻訳ステータス: このページは en:Partitioning の翻訳バージョンです。最後の翻訳日は 2023-11-21 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。