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

提供: ArchWiki
ナビゲーションに移動 検索に移動
(表現を少し修正)
 
(7人の利用者による、間の35版が非表示)
1行目: 1行目:
 
[[Category:ファイルシステム]]
 
[[Category:ファイルシステム]]
  +
[[Category:ブートプロセス]]
[[ar:Partitioning]]
 
  +
[[Category:システムリカバリ]]
  +
[[de:Partitionierung]]
 
[[en:Partitioning]]
 
[[en:Partitioning]]
  +
[[fa:پارتیشن بندی]]
[[es:Partitioning]]
 
[[it:Partitioning]]
+
[[pt:Partitioning]]
 
[[ru:Partitioning]]
 
[[ru:Partitioning]]
[[zh-cn:Partitioning]]
+
[[tr:Partitioning]]
  +
[[zh-hans:Partitioning]]
 
{{Related articles start}}
 
{{Related articles start}}
  +
{{Related|ファイルシステム}}
  +
{{Related|fdisk}}
  +
{{Related|gdisk}}
  +
{{Related|parted}}
 
{{Related|fstab}}
 
{{Related|fstab}}
 
{{Related|LVM}}
 
{{Related|LVM}}
 
{{Related|スワップ}}
 
{{Related|スワップ}}
{{Related|ファイルシテム}}
+
{{Related|Arch ブートプロセス}}
  +
{{Related|Unified Extensible Firmware Interface}}
 
{{Related articles end}}
 
{{Related articles end}}
   
ハードドライブを''パーティショニング''して論理的なパーティション作ることで他から独立してアクセスすることができるようになります。
+
パーティショニングとは[[Wikipedia:ja:記憶装置#二次記憶装置|二次記憶装置]]上に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)|ボリューム]]と呼ばれます。
   
  +
== パーティションテーブル ==
ハードドライブ全体を1つのパーティションにすることもできますし、ハードドライブの容量を分割して複数のパーティションを作ることもできます。複数のパーティションが必要になる場合は様々です: 例えばデュアル・マルチブートや、[[スワップ]]パーティションなど。他にも、パーティショニングは論理的にデータを分担する方法としても用いられ、オーディオ・ビデオファイルのためにパーティションを分割するようなことがあります。一般的なパーティショニング形態は下で詳しく記述しています。
 
   
  +
主に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}} です。ブロックデバイスの命名に関する詳細は [[デバイスファイル#ブロックデバイスの名前]] を見てください。}}
パーティションの情報はパーティションテーブルに保存されます。現在、主に使われている形式は2つ存在します。昔ながらの [[Master Boot Record|Master Boot Record]] と新しい [[GUID Partition Table|GUID Partition Table]]。後者は MBR 形式に存在するいくつかの制限を取り除くように改良されています。
 
   
 
=== Master Boot Record ===
 
=== Master Boot Record ===
{{Wikipedia/ja|マスターブートレコード}}
 
   
  +
[[Wikipedia:Master boot record|Master Boot Record]] (MBR) は、ストレージデバイスの最初の512バイトです。これには、オペレーティングシステムのブートローダーとストレージデバイスのパーティションテーブルが含まれています。[[Wikipedia:ja:Basic Input/Output System|BIOS]] システムの[[ブートプロセス]]で重要な役割を果たします。MBR の構造については、[[Wikipedia:Master boot record#Disk partitioning]] を参照してください。
MBR はもともとパーティションを4つまでサポートしていましたが、後になって、この制限を回避するために拡張・論理パーティションが導入されました。
 
   
  +
{{Note|
パーティションには3つのタイプがあります:
 
  +
* MBR はパーティションにありません。これは、デバイスの最初のセクター(物理オフセット0)にあり、最初のパーティションの前にあります。
  +
* パーティションレスデバイスまたは個々のパーティション内に存在するブートセクターは、代わりに [[Wikipedia:Volume boot record|volume boot record (VBR)]] と呼ばれます。
  +
}}
  +
  +
==== Master Boot Record (bootstrap code) ====
  +
  +
MBR の先頭440バイトは、'''bootstrap code 領域''' です。BIOS システムでは、通常、MBR にブートローダーの最初のステージが含まれています。bootstrap code は、[[dd#MBR のバックアップと復元|dd を使って]]バックアップしたり、バックアップから復元したり、消去したりすることができます。
  +
  +
==== Master Boot Record (partition table) ====
  +
  +
MBR パーティションテーブル(またの名を DOS パーティションテーブル、MS-DOS パーティションテーブル)には、3つのパーティションタイプがあります:
   
 
* Primary (プライマリ)
 
* Primary (プライマリ)
34行目: 60行目:
 
** Logical (論理)
 
** Logical (論理)
   
'''プライマリ'''パーティションは起動することができるパーティションで1つのディスクもしくは RAID ボリュームに対して4つまでプライマリパーティションを作成できます (MBR)。パーティションを4つ以上作りたいときは、拡張パーティションを用いてそ中に論理パーティションを内包する形で構成する必要があります。拡張パーティションは論理パーティションのコンテナすることができます。1つのハードディスクに作れる拡張パーティションは1つだけです。拡張パーティションはプライマリパーティションとしてもカウントされます。もしディスクに拡張パーティションがある作れるプライマリパーティションは3つになります(3つプライマリと1拡張で合計4つ)。論理パーティションの数は他のパーティションと違って制限がありません。Windows とのデュアルブートをするには Windows 本体をプライマリパーティションに含める必要があります。
+
'''プライマリ'''パーティションは起動可能にすることができ、ディスク RAID ボリュームごとに4つまで作成できます。MBR パーティションテーブルで5つ以上のパーティション必要になった場合、プライマリパーティションのうち1を'''拡張'''パーティションに置き換えて、そ中に'''論理'''パーティションを作成する必要があります。
   
  +
拡張パーティションは論理パーティションの入れ物と考えることができます。1つのハードディスクには2つ以上の拡張パーティションを格納することはできません。拡張パーティションはプライマリパーティションとしてもカウントされるので、ディスクに1つの拡張パーティションが存在している場合、追加できるプライマリパーティションは3つだけです(つまり、3つのプライマリパーティションと1つの拡張パーティション)。拡張パーティション内に存在できる論理パーティションの数に制限はありません。Windows とデュアルブートするシステムでは、Windows をプライマリパーティションに格納する必要があります。
ディスクのパーティション番号には、次のような法則があります。まずプライマリーパーティションを {{ic|sda1}} から {{ic|sda2}}、{{ic|sda3}} と言う順番で番号を振っていき、拡張パーティションは {{ic|sda4}} になります。{{ic|sda4}} 上の論理パーティションが {{ic|sda5}}, {{ic|sda6}},... という具合につづきます。
 
   
  +
''sda1'' から ''sda3'' をプライマリパーティションとし、''sda4'' を拡張パーティションとするのが慣例です。''sda4'' 上の論理パーティションは、''sda5''、''sda6'' などのようになります。
=== GUID Partition Table ===
 
{{Wikipedia/ja|GUIDパーティションテーブル}}
 
   
  +
{{Tip|MBR ディスクをパーティショニングする際、[[gdisk#MBR と GPT の変換|GPT に変換する]]時に備えて、少なくとも512バイトセクタ33個分(16.5 KiB)の未割り当て領域をディスクの末尾に確保することを検討してください。この空き領域は、バックアップ GPT ヘッダを格納するために必要になります。}}
パーティションタイプは '''Primary''' しかありません。ディスクや RAID ボリュームごとに作れるパーティションの数には制限がありません。
 
   
=== Btrfs パーティショニング ===
+
=== GUID Partition Table ===
  +
{{Wikipedia/ja|Btrfs}}
 
  +
[[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]] パーティショニングスキーム方式の後継として設計されました。
   
  +
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 ブートを行うために利用できます。
Btrfs はデータストレージデバイス全体を占有して [[Master Boot Record|MBR]] や [[GUID Partition Table|GPT]] パーティションスキームを置き換えることができます。詳しい説明は [[Btrfs#パーティショニング|Btrfs パーティショニング]]を見て下さい。
 
   
 
=== GPT か MBR の選択 ===
 
=== GPT か MBR の選択 ===
   
[[GUID Partition Table|GUID Partition Table]] (GPT) は新しい、最新のパーティションスタイルです。古い [[Master Boot Record|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 を使うべきです。
 
* 上の条件に当てはまらないなら、自由に GPT と MBR を選んでください。GPT の方が新しいので、ここでの推奨は GPT です。
 
* [[Unified Extensible Firmware Interface|UEFI]] ブートではいつでも GPT を使うことが推奨されます。UEFI ファームウェアによっては UEFI-MBR ブートが出来ないからです。
 
   
  +
GPT か MBR を選択する際に考慮すべきポイントは:
== パーティション形態 ==
 
   
  +
* レガシー BIOS を使って(32ビットと64ビットに関わらず) Windows とデュアルブートする場合、MBR スキームを使用する必要があります。
ハードドライブをパーティショニングするのに厳格なルールはありませんが、以下に一般的なガイダンスを記します。どうパーティショニングするかは、使用できるディスク容量の制限のほかに、求められる柔軟性・スピード・セキュリティなどの理由で決定されます。ユーザーの決定はコンピュータを使う癖や条件によって様々なものになりえます。Arch Linux と Windows OS のデュアルブートを考えているのなら、[[Windows と Arch のデュアルブート]]を読んでください。
 
  +
* BIOS モードではなく [[UEFI]] モードで64ビット Windows とデュアルブートする場合、GPT スキームを使用する必要があります。
  +
* 古いハードウェア(特に、古いノートパソコン)上にインストールする場合、MBR を選択することを検討してください。そのハードウェアの BIOS が GPT に対応していないかもしれないからです(しかし、[[#古い BIOS をだまして GPT から起動させる]] に解決策があります)。
  +
* 2 TiB よりも大きいディスクをパーティショニングする場合、GPT を使う必要があります。
  +
* [[UEFI]] ブートでは常に GPT を使うことが推奨されます。一部の UEFI 実装は UEFI モードでの MBR からの起動をサポートしていないからです。
  +
* 上記のどれにも当てはまらない場合、GPT と MBR から自由に選んでください。GPT のほうがよりモダンなので、この場合、GPT を選ぶことが推奨されます。
   
  +
MBR に対する GPT のメリットは:
{{Warning|ブートローダのための領域を残しておくことを忘れないで下さい。MBR や GRUB-Legacy では問題になりませんでしたが、最近のパーティションスキームでは特別な、小さなパーティションが必要になることがあります。}}
 
   
  +
* GPT はユニークなディスク GUID と、各パーティションごとにユニークなパーティション GUID([[PARTUUID]])を提供します。これは、パーティションやディスクを参照するための、ファイルシステムに依存しない良い手段です。GUID は、[https://uapi-group.org/specifications/specs/discoverable_partitions_specification/ Discoverable Partitions Specification] の前提条件であり、Systemd を有効化した initramfs で利用できます。
=== シングル root パーティション ===
 
  +
* 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 のテーブルを作成/変更するためにどのツールを利用できるかを示す表があります。
このスキームが一番シンプルで、ほとんどの場合これで十分です。必要に応じて[[スワップ#スワップファイル|スワップファイル]]を作成することもでき、簡単にサイズを変更できます。一般的に、まず1つのパーティション {{ic|/}} で初めて、それから、RAID や暗号化、共有メディアパーティションなどの目的にあわせてパーティションを分割するのは道理にかなっています。GPT でパーティションされた BIOS システムに GRUB をインストールするときは追加の BIOS boot パーティションが必要になるので注意してください。
 
  +
  +
{{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]] はデータストレージデバイス全体を占有して、[[#Master Boot Record|MBR]] や [[#GUID Partition Table|GPT]] パーティションスキームを置き換えることができます。詳しい説明は [[Btrfs#パーティショニング]] を見て下さい。
  +
  +
== パーティションスキーム ==
  +
  +
ハードドライブをパーティショニングするのに厳格なルールはありませんが、以下に一般的なガイダンスを記します。ディスクのパーティショニングスキームは、使用できるディスク容量の制限のほかに、求められる柔軟性、スピード、セキュリティなどの理由で決定されます。ユーザーの決定はコンピュータを使う癖や条件によって様々なものになりえます。Arch Linux と Windows OS のデュアルブートを考えているのなら、[[Windows と Arch のデュアルブート]]を読んでください。
  +
  +
{{Note|
  +
* 通常、[[UEFI]] システムでは [[EFI システムパーティション]]が必要です。
  +
* [[#GUID Partition Table|GPT]] でパーティショニングされた BIOS システムでは、[[GRUB]] をブートローダとして使う場合、[[BIOS ブートパーティション]]が必要です。
  +
}}
  +
  +
{{Tip|[[Btrfs]] を使用している場合、サブボリュームはパーティションを模倣するために使用できます。[[Btrfs#サブボリュームをマウントする]] セクションを見てください。}}
  +
  +
=== シングルルートパーティション ===
  +
  +
このスキームが最もシンプルかつ柔軟であり、消費者グレードのデバイスのストレージサイズが増加していることを鑑みると、ほとんどの場合これで十分です。必要に応じて[[スワップファイル]]を作成することもでき、簡単にそのサイズを変更できます。通常、まず単一の {{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 ディレクトリは階層のトップであり、プライマリファイルシステムがマウントされ他の全てのファイルシステムの幹になります。すべてのファイルとディレクトリは root ディレクトリ {{ic|/}} の下に表示されます、それらが異なる物理デバイスに保存されている場合でも同様です。root ファイルシステムには、システムのブート・リストア・リカバー・リペアに必要なものがなければなりません。そのため、{{ic|/}} 下の特定ディレクトリは分割パーティションになりえません。
+
[[Wikipedia:ja:ルートディレクトリ|ルートディレクトリ]]ディレクトリ階層のトップです。このディレクトでは主要なファイルシステムがマウントされ他の全てのファイルシステムの幹になります。すべてのファイルとディレクトリはルートディレクトリ {{ic|/}} の下にれます、それらが異なる物理デバイスに保存されている場合でも同様です。ルートファイルシステムには、システムの起動、修復、回復、修繕に必要なものがなければなりません。そのため、{{ic|/}} 下の特定ディレクトリは分割されたパーティションになりえません。
   
{{ic|/}} パーティション、または root パーティションは必須の、一番重要なパーティションです。このパーティションで他の全てのパーティションを置き換えることができます。
+
{{ic|/}} パーティション(ルートパーティション)は必須の、一番重要なパーティションです。このパーティションで他の全てのパーティションを置き換えることができます。
   
{{Warning|({{ic|/boot}} 以外の) 起動に必要なディレクトリは'''かならず'''同じパーティション {{ic|/}} か [[mkinitcpio|initramfs]] によってユーザースペースの初期にマウントされるパーティションに配置されなくてはなりません。起動に必なディレクトリ: {{ic|/etc}} と {{ic|/usr}} [http://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 ディスクの生成)の際に必要になります。
====/home====
 
   
  +
{{Warning|
{{ic|/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}} を分割することで {{ic|/}} を別個にパーティションしなおすことができますが、分割してなくとも {{ic|/home}} に触れずに Arch を再インストールすることはできます - 他のトップレベルディレクトリは削除する必要があり、それから pacstrap を実行することができます。
 
  +
}}
   
異なるディトリビューションのユーザー間で home ディレクリを共有するべきはありませんなぜならソフトウェアョンやパッチによって互換性がないことがあるからです。代わりに、メディアパーティションを共有したり、少なくとも、同じ {{ic|/home}} パーティションにある別 home ディレク使うなどしてください。
+
{{Note|UEFI シテムにおいては、[[EFI システムパティション]]を {{ic|/boot}} にマウントすることで、ティションを作成する必要がなくなります。詳細は「[[EFI システムパーティション#パーティションのマウン]]」参照してください。}}
   
  +
EFI システムパーティションを {{ic|/boot}} として使用する場合、([[EFI システムパーティション]]の記事で説明されているように) 最小の推奨サイズは 300 MiB であり、適切なパーティションタイプが設定されていなければなりません。
====/var====
 
   
  +
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}} です)。
{{ic|/var}} ディレクトリにはスプールディレクトリ・ファイル、管理用のログデータ、[[pacman|pacman]] のキャッシュ、[[Arch Build System|ABS]] ツリーなどの可変データが置かれます。キャッシングやロギングなどに使われるため頻繁に読み書きされます。分割したパーティションに配置することで、ログなどによってディスク容量が不足するのを回避できます。
 
   
  +
{{Note|複数のカーネルをインストールしたい、または将来的に他のカーネルを追加するときに備えておきたい場合、念の為に EFI システムパーティションのサイズを 1 GiB にしておくと良いでしょう。}}
{{ic|/usr}} を読み込み専用でマウントするための選択肢としても存在します。歴史的に、(インストールやシステムメンテナンスと対照的に)システムオペレーションでは {{ic|/var}} に置かれるものは全て {{ic|/usr}} に書き出されます。
 
   
  +
==== /home ====
{{Note|{{ic|/var}} には小さいファイルが多く入ります。もしパーティションを分割するなら、ファイルシステムタイプ(下を見て下さい)の選択ではこのことを考えて下さい。}}
 
   
  +
{{ic|/home}} ディレクトリには、ユーザー固有の設定ファイル、キャッシュ、アプリケーションのデータ、メディアファイルが含まれます。
==== /tmp ====
 
   
  +
{{ic|/home}} を分割することで {{ic|/}} を別個にパーティションしなおすことができますが、分割してなくとも {{ic|/home}} に触れずに Arch を再インストールすることはできます - 他のトップレベルディレクトリは削除する必要があり、それから pacstrap を実行することができます。
systemd によって {{ic|tmpfs}} としてマウントされることで、デフォルトで分割パーティションになっています。
 
  +
  +
異なるディストリビューションのユーザー間で home ディレクトリを共有するべきではありません、なぜならソフトウェアのバージョンやパッチによって互換性がないことがあるからです。代わりに、メディアパーティションを共有したり、少なくとも、同じ {{ic|/home}} パーティションにある別の home ディレクトリを使うなどしてください。このパーティションのサイズは様々です。
  +
  +
GPT パーティションは、タイプ GUID {{ic|933AC7E1-2EB4-4F13-B844-0E14E2AEF915}} ("Linux home", "Linux /home") である必要があります。MBR パーティションは、デフォルトの "Linux" タイプ ID {{ic|83}} である必要があります。
   
 
==== スワップ ====
 
==== スワップ ====
   
[[スワップ]]パーティションは仮想メモリを提供ます。[[スワップ#スワップファイル|スワップファイル]]を使うことも考えてください、パーティションを作るに比べてパフォーマンスのオーバーヘッドがないばかりなく、必要に応じてより簡単にリサイズできます。swap パーティションは''基本的に''オペレーションシステム間で共有することができますが、ハイバネーションが使われる場合はそうでありません。
+
[[スワップ]]は仮想メモリとして使用されるディスク領域を提供するファイル、たはパーティションです。スワップファイルスワップパーティションのパフォーマンスは同等すがスワップファイルのほうが必要に応じてサイズを変更しやすいです。スワップパーティションは''基本的に''オペレーションシステム間で共有することができますが、ハイバネーションが使われる場合はそうでありません。
  +
  +
歴史的に、スワップパーティションのサイズは物理 RAM のサイズの2倍にするという一般的なルールがありました。しかし、コンピュータがより多くのメモリを搭載するようになってから、このルールは時代遅れになりました。例えば、512 MiB の RAM を搭載する平均的なデスクトップマシンでは、通常「2倍ルール」は適切です。十分な量の RAM (1024 MiB 以上)が利用できる場合は、スワップパーティションを小さくしてもよいでしょう。
  +
  +
ハイバネート(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]] のキャッシュなどの可変データが置かれます。キャッシングやロギングなどに使われるため頻繁に読み書きされます。分割したパーティションに配置することで、ログなどによってディスク容量が不足するのを回避できます。
{{Note|スワップパーティションサイズについての古い法則は [[サスペンドとハイバネート|suspend-to-disk]] を使う場合はあてはまりません。サスペンドメソッドはデフォルトで利用できるメモリの 40% のイメージを使います。[[TuxOnIce]] では、atomic コピーは圧縮して通常約 70% だけ使います。[http://tuxonice.net/features]}}
 
   
  +
{{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|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}} である必要があります。
==パーティショニングツール==
 
*{{App|fdisk|Linux に含まれているターミナルパーティショニングツール。|https://www.kernel.org/|{{Pkg|util-linux}}}}
 
*{{App|cfdisk|ncurses ライブラリを使ったターミナルパーティショニングツール。|https://www.kernel.org/|{{Pkg|util-linux}}}}
 
{{Warning|''cfdisk'' によって作成された最初のパーティションは、通常のセクター2048ではなくセクター63から始まります。SSD や最近のフォーマット (4k セクター) を使っているドライブでパフォーマンスが落ちることがあり、[[GRUB#msdos-style エラーメッセージ|GRUB2]] と一緒に使うと問題がおこることがあります。GRUB Legacy や Syslinux では問題ありません。}}
 
*{{App|gdisk|fdisk の [[GUID Partition Table|GPT]] バージョン。|http://www.rodsbooks.com/gdisk/|{{Pkg|gptfdisk}}}}
 
*{{App|cgdisk|cfdisk の GPT バージョン。|http://www.rodsbooks.com/gdisk/|{{Pkg|gptfdisk}}}}
 
*{{App|sgdisk|gdisk のスクリプタブルバージョン。|http://www.rodsbooks.com/gdisk/sgdisk-walkthrough.html|{{Pkg|gptfdisk}}}}
 
*{{App|[[GNU Parted]]|ターミナルパーティショニングツール。|https://www.gnu.org/software/parted/parted.html|{{pkg|parted}}}}
 
*{{App|[[GParted|GParted]]|GTK によるグラフィカルツール。|http://gparted.sourceforge.net/|{{Pkg|gparted}}}}
 
*{{App|Partitionmanager|Qt によるグラフィカルツール。|http://sourceforge.net/projects/partitionman/|{{Pkg|partitionmanager}}}}
 
*{{App|QtParted|Partitionmanager の類似ツール、[[Arch User Repository|AUR]] から利用可能。|http://qtparted.sourceforge.net/|{{AUR|qtparted}}}}
 
   
== パーティションアラメント ==
+
=== アウ ===
  +
  +
以下の例では、{{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"
  +
! インストールされたシステムでのマウントポイント
  +
! パーティション
  +
! [[Wikipedia:GUID Partition Table#Partition type GUIDs|パーティションタイプ GUID]]
  +
! [[Wikipedia:GUID Partition Table#Partition entries (LBA 2–33)|パーティション属性]]
  +
! 推奨サイズ
  +
|-
  +
| {{ic|/boot}} または {{ic|/efi}}<sup>1</sup>
  +
| {{ic|/dev/sda1}}
  +
| {{ic|C12A7328-F81F-11D2-BA4B-00A0C93EC93B}}: [[EFI システムパーティション]]
  +
|
  +
| 1 GiB
  +
|-
  +
| {{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
  +
|}
   
  +
==== BIOS/MBR レイアウト例 ====
パフォーマンスや寿命を最適化するのに、正しいパーティションアライメントを設定することは重要です。これはファイルシステムレベルだけでなくハードウェアレベルでも全ての I/O 操作に決まった[[wikipedia:ja:ブロック (データ)|ブロック]]があるためです。アライメントの鍵は、使用しているハードウェアに応じて、特定の''ブロックサイズ''にあわせてパーティショニングすることです。パーティションが''ブロックサイズ''の倍数で始まるように整列されてない場合、パーティションの開始オフセットによって全てが歪むので、ファイルシステムのアライメントは無意味になってしまいます。
 
   
  +
{| 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>
  +
| {{Grey|N/A}}
  +
| {{Grey|N/A}}
  +
| ディスクの末尾に少なくとも 16.5 KiB
  +
|}
   
  +
==== BIOS/GPT レイアウト例 ====
伝統的に、ハードドライブを扱うときには、読み書きするデータの''シリンダー''・''ヘッド''・''セクタ''を指定していました ([[wikipedia:ja:Cylinder head sector|CHS アドレッシング]])。これらは放射状に位置していて、ドライブヘッド(=プラッタ)とデータの軸位置は別々でした。現在の[[wikipedia:ja:Logical Block Addressing|ロジカルブロックアドレッシング]]では、ハードドライブ全体が1つの連続したデータストリームとして扱われており、[[wikipedia:ja:ディスクセクタ|セクタ]]という言葉はアドレス指定できる一番小さな単位を示しています。
 
   
  +
{| class="wikitable"
標準の''セクタサイズ''は 512B ですが、最近の高容量なハードドライブはもっと大きな値、大抵は 4KiB を使っています。512B より大きい値を使うことは [[Advanced Format]] と呼ばれます。
 
  +
! インストールされたシステムでのマウントポイント
  +
! パーティション
  +
! [[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 ブートプロセス#ブートローダー]]セクションにある警告を見てください。
=== ソリッドステートドライブ ===
 
  +
# 512バイトセクタ33個(16.5 KiB)以上のパーティショニングされていない領域をディスクの末尾に作成します。これは、将来的に [[GPT fdisk#MBR と GPT の変換|GPT に変換できる]]ようにするためのものです。この領域は、バックアップ GPT ヘッダのために必要です。すべての MBR ディスクに対してこのようなパーティショニングされていない領域を確保することが推奨されます。
  +
# BIOS ブートパーティションは、GPT ディスクから [[GRUB]] を BIOS ブートする場合にのみ必要です。{{ic|/boot}} とは関係ありません。このパーティションはファイルシステムでフォーマットしてはいけませんし、マウントしてもいけません。
   
  +
== ツール ==
ソリッドステートドライブは[[wikipedia:ja:フラッシュメモリ|フラッシュメモリ]]を使用しているため、ハードドライブとは事情が大きく異なります。ランダムアクセスによる読み取りが可能な一方、消去 (書き換えとランダム書き込み) は[[wikipedia:ja:フラッシュメモリ#種別|ブロック単位]]でしか行うことができません。さらに、''消去ブロックサイズ'' (erase block size, EBS) は標準の''ブロックサイズ''よりもずっと大きくなっており、例えば 128KiB と 4KiB だったりするため、EBS の倍数にアライメントする必要があります。
 
   
 
=== パーティショニングツール ===
 
=== パーティショニングツール ===
   
  +
以下のプログラムは、デバイスのパーティションテーブルとパーティションを作成/操作するために使用されます。使用する正確なコマンドはリンク先の記事を見てください。
過去、正しいアライメントをするにはパーティションの際に手動で計算して設定する必要がありました。最近のパーティションツールはほとんど自動的にパーティションアライメントを実行します:
 
   
  +
この表は、あなたのニーズにあうユーティリティを選ぶ際に役立ちます:
* fdisk
 
* gdisk
 
* gparted
 
* parted
 
   
  +
{| class="wikitable sortable"
パーティションが整列しているか確認するには、以下のように {{ic|/usr/bin/blockdev}} を使って確かめて下さい。'0' が帰ってくるならば、パーティションはアライメントされています:
 
  +
|-
  +
! 名称
  +
! パッケージ
  +
! 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 フロントエンド ====
# blockdev --getalignoff /dev/<partition>
 
0
 
   
  +
* {{App|blivet-gui|ストレージ設定のためのグラフィカルツール。{{AUR|python-blivet}} と {{Pkg|libblockdev}} を介して ''parted'' をバックエンドとして使用します。|https://github.com/storaged-project/blivet-gui|{{AUR|blivet-gui}}}}
== GPT を使う - 新しい方法 ==
 
  +
* {{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|ディスクパーティションをグラフィカルに管理するためのパーティションエディタ。データ損失無しでパーティションをリサイズ、コピー、移動することができます。''parted'' をバックエンドとして使用します。|https://gparted.org/|{{Pkg|gparted}}}}
  +
* {{App|KDE Partition Manager|コンピュータ上のディスク、パーティション、そしてファイルシステムの管理をアシストするユーティリティ。{{Pkg|kpmcore}} を介して ''sgdisk'' をバックエンドとして使用します。{{Grp|kde-system}} の一部です。|https://apps.kde.org/partitionmanager/|{{Pkg|partitionmanager}}}}
   
=== Gdisk の使い方===
+
=== バックアップ ===
   
  +
* [[fdisk]] はパーティションテーブルのバックアップを作成できます。[[fdisk#パーティションテーブルのバックアップとリストア]] を見てください。
{{ic|fdisk}} と同じ機能を持つ GPT 用のツールである、{{ic|gdisk}} によって、ほとんどの全ての SSD と互換性のある 2048 セクター (または 1024KiB) ブロックサイズベースの自動パーティションアライメントができます。GNU parted も GPT をサポートしていますが、パーティションのアライニングについては[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=601813 あまりユーザーフレンドリーとは言えません]。Arch のインストール ISO による環境には ''gdisk'' コマンドが含まれています。インストールした後に必要ならば、{{Pkg|gptfdisk}} パッケージで ''gdisk'' を利用することができます。
 
  +
* [[GPT fdisk]] は、protective MBR、メイン GPT ヘッダ、バックアップ GPT ヘッダ、そしてパーティションテーブルのコピー一つからなるバイナリバックアップを作成できます。[[GPT fdisk#パーティションテーブルのバックアップとリストア]] を見てください。
   
  +
=== リカバリ ===
''gdisk'' の典型的な使用方法の概要:
 
   
  +
* {{App|[[Wikipedia:gpart|gpart]]|破壊された MBR パーティションテーブルの内容を推測するユーティリティ。使用法は {{man|8|gpart}} man ページで説明されています。|https://github.com/baruch/gpart|{{Pkg|gpart}}}}
* root であなたのドライブに対して {{ic|gdisk}} を起動して下さい (''disk-device'' は {{ic|/dev/sda}} などに置き換えて下さい):
 
  +
* {{App|[[GPT fdisk#GPT ヘッダのリカバリ|GPT fdisk]]|(ディスクの先頭にある)プライマリ GPT ヘッダを(ディスクの末尾にある)セカンダリ GPT ヘッダから復元できるパーティショニングツール(その逆も可)。|https://www.rodsbooks.com/gdisk/|{{Pkg|gptfdisk}}}}
:{{bc|# gdisk ''disk-device''}}
 
  +
* {{App|[[ファイルリカバリ#TestDisk と PhotoRec|TestDisk]]|MBR と GPT の両方の失われたパーティションを復元できるユーティリティ。|https://www.cgsecurity.org/index.html?testdisk.html{{Dead link|2023|05|06|status=404}}|{{Pkg|testdisk}}}}
* ドライブが新品の時や、やり直しをしたい場合は、空の GUID パーティションテーブル (GPT) を {{ic|o}} コマンドで作成します。
 
* {{ic|n}} コマンドで新しいパーティションを作ります (プライマリ/最初のパーティション)。
 
* 新規パーティションの場合、''gdisk'' は一番高いアライメントを選択します。そうでない場合は、全てのパーティションオフセットを分ける2つのうち大きい方を選択します。
 
* 2048番目より前のセクタから開始するよう選択したときは ''gdisk'' は自動的に2048番目のディスクセクタからパーティションが始まるように移動します。2048セクタのアライメントを確実にするためです (1セクタは 512B なので、どんな SSD の NAND 消去ブロックにも丁度合う 1024KiB アライメントになります)。
 
* {{ic|+''x''&#123;M,G&#125;}} 形式を使ってパーティションを x メビバイト・ギガバイトまで拡張します。アライメントのサイズ (1024kiB) の倍数でないサイズを選んだ場合、''gdisk'' はパーティションを一番近い倍数にまで縮小させます。例えば、15 GiB のパーティションを作りたい場合は、{{ic|+15G}} と入力してください。残り容量全て使うときは、エンターだけ押すか、{{ic|+0}} と入力します。
 
* パーティションの type id を選択します、ほとんどの場合はデフォルトの {{ic|Linux filesystem}} (コード {{ic|8300}}) で問題ありません。{{ic|L}} を押せばコードの一覧が表示されます。LVM を使うつもりならば {{ic|Linux LVM}} ({{ic|8e00}}) を選択してください。
 
* 同じようにして他のパーティションも割り振ります。
 
* テーブルをディスクに書き込み {{ic|w}} コマンドで終了します。
 
* [[ファイルシステム]]で新しいパーティションをフォーマットしてください。
 
   
  +
== パーティションアライメント ==
{{Note|
 
  +
* BIOS 環境で GPT でパーティションされたディスクから起動するとき、[[GRUB|GRUB]] を使ってディスクを起動する場合は、出来る限りディスクの最初に、ファイルシステムがなくてパーティションタイプが {{ic|BIOS boot}} か {{ic|bios_grub}} (''gdisk'' タイプコード {{ic|EF02}}) の [[GRUB#GUID Partition Table (GPT) 特有の手順|BIOS boot partition]] を作成する必要があります。[[Syslinux|Syslinux]] ではこの {{ic|bios_grub}} パーティションを作る必要はありませんが、{{ic|/boot}} パーティションは分割して、(''gdisk'' を使って) パーティションの {{ic|Legacy BIOS Bootable partition}} 属性を有効にしなくてはなりません。
 
  +
経験則として、パーティションの開始位置とサイズをメビバイト単位に揃えるというものがあります。[[Advanced Format#パーティションのアライメント]] を見てください。
* [[GRUB Legacy]] は GPT をサポートしていません、[[BURG|BURG]], [[GRUB|GRUB]], [[Syslinux|Syslinux]] を使って下さい。
 
  +
* BIOS モード (32ビットの Windows 全てと64ビットの Windows XP でだけ使えます) で Windows (XP, Vista, 7) とのデュアルブートをするつもりならば、Windows が GPT ディスクからの起動をサポートしていないので GPT を使ってはいけません!下で記述している MBR でのパーティションと BIOS モードでのブート方法を使う必要があります。この制限は、UEFI モードで最近の64ビットの Windows を起動する場合はあてはまりません。
 
  +
{{Warning|パーティションのアライメントを誤ると、[[dm-crypt|dm-crypt/LUKS]] で 4096 バイトのセクタを使用できなくなります。}}
  +
  +
== GPT カーネルサポート ==
  +
  +
カーネル構成の {{ic|CONFIG_EFI_PARTITION}} オプションは、カーネルでの GPT サポートを有効にします (名前は [[EFI システムパーティション]]に似た EFI PARTITION ですが)。このオプションはカーネルに組み込まれている必要があり、ロード可能なモジュールとしてコンパイルされてはなりません。このオプションは、GPT ディスクがデータストレージのみに使用され、起動には使用されない場合でも必要です。このオプションは、すべての Arch の [[カーネル#公式サポートカーネル|公式にサポートされているカーネル]] でデフォルトで有効になっています。カスタムカーネルの場合は、{{ic|1=CONFIG_EFI_PARTITION=y}} を実行してこのオプションを有効にします。
  +
  +
== トラブルシューティング ==
  +
  +
=== 古い BIOS をだまして GPT から起動させる ===
  +
  +
一部の古い BIOS (2010年以前のもの) は、ブートセクターを解析しようとし、ブート可能な MBR パーティションが含まれていない場合はブートを拒否します。これは、このディスクでGPTを使用する場合に問題になります。これは、 BIOS の観点から、タイプ{{ic|ee}} の起動不可能な MBR パーティションが1つだけ含まれているためです(つまり、保護 MBR パーティション) {{ic|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
  +
  +
最終的に次のようになります:
  +
  +
{{hc|# fdisk -t mbr -l /dev/sda|2=
  +
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 が有効なときにドライブが表示されない ===
== MBR を使う - レガシーな方法 ==
 
  +
  +
SATA ドライブや NVMe ドライブがファームウェアのセットアップ画面で表示されるのに、Linux (例えば {{ic|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.
  +
  +
解決方法は、ファームウェアセットアップ画面を開いて [[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]}}
MBR を使う場合、パーティションテーブルを編集するためのユーティリティは ''fdisk'' と呼ばれています。最近のバージョンの ''fdisk'' はデフォルトの表示単位にシリンダーを使用する古いシステムのサポートや、MS-DOS との互換性をデフォルトで廃止しています。最新の ''fdisk'' は自動的に全てのパーティションを2048セクタ (1024 KiB) にアライメントをするため、SSD メーカーによって使用されている EBS サイズ全てで問題なく整列されます。つまりデフォルト設定で正しいアライメントが行われます。
 
   
  +
== 参照 ==
昔の ''fdisk'' は、デフォルトの表示単位にシリンダーを使っていて、SSD のアライメントと干渉する MS-DOS との互換性も残っていました。そのため、2008-2009年あたりのインターネットのガイドを調べたら、大げさに書かれているのが見て取れると思います。最新の ''fdisk'' では、物事はもっとシンプルになり、そのことはこの記事にも反映されています。
 
   
  +
* [[Wikipedia:ja:パーティション]]
=== Fdisk の使い方 ===
 
  +
* [[Wikipedia:Binary prefix]]
* あなたのドライブを指定して {{ic|fdisk}} を root で起動します (''disk-device'' は {{ic|/dev/sda}} などに置き換えて下さい):
 
  +
* [https://thestarman.pcministry.com/asm/mbr/DiskTerms.htm Understanding Disk Drive Terminology]
:{{bc|# fdisk ''disk-device''}}
 
  +
* [https://kb.iu.edu/d/aijw What is a Master Boot Record (MBR)?]
* ドライブが新品の時や、やり直しをしたい場合は、空の DOS パーティションテーブルを {{ic|o}} コマンドで作成します。
 
  +
* Rod Smith 氏のページ [https://www.rodsbooks.com/gdisk/whatsgpt.html What's a GPT?] と [https://rodsbooks.com/gdisk/booting.html Booting OSes from GPT]
* {{ic|n}} コマンドで新しいパーティションを作ります (プライマリ/最初のパーティション)。
 
  +
* [https://developer.ibm.com/tutorials/l-gpt/ Make the most of large drives with GPT and Linux - IBM Developer]
* {{ic|+''x''G}} 形式を使ってパーティションを ''x'' ギガバイトまで拡張します。例えば、15 GiB のパーティションを作りたい場合は、{{ic|+15G}} と入力してください。
 
  +
* [https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-and-gpt-faq Microsoft の Windows と GPT FAQ]
* {{ic|t}} コマンドで、パーティションのシステム ID を Linux のデフォルトタイプ ({{ic|type 83}}) から望ましいタイプに変更してください。これは任意のステップであり、スワップ、NTFS、LVM などの異なるタイプのパーティションを作りたいときにしてください。{{ic|l}} コマンドを使うことで利用できるパーティションタイプを全て一覧することができます。
 
  +
* [https://www.thomas-krenn.com/en/wiki/Partition_Alignment Partition Alignment] (例付き)
* 同じようにして他のパーティションも割り振ります。
 
* {{ic|w}} コマンドでテーブルをディスクに書き込み終了します。
 
* [[ファイルシステム]]で新しいパーティションをフォーマットしてください。
 
   
  +
{{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 printfdisk -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 上の論理パーティションは、sda5sda6 などのようになります。

ヒント: 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 はデータストレージデバイス全体を占有して、MBRGPT パーティションスキームを置き換えることができます。詳しい説明は 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#79857FS#59047FS#58137FS#51879FS#46856FS#38750FS#21733fscrypt によって暗号化されたディレクトリ)。その場合、ブートローダーと互換性の無い機能を無効化しない限り、そのファイルシステムを /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-blivetAURlibblockdev を介して parted をバックエンドとして使用します。
https://github.com/storaged-project/blivet-gui || blivet-guiAUR
  • GNOME Disks — ストレージデバイスを管理するための GNOME ユーティリティ。udisks2libblockdev を介して 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 フラッシュドライブを作成する場合に重要です。 fdiskgdisk などの従来のツールを使用してこの問題を解決することはできませんが、両方の種類の 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 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。