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

提供: ArchWiki
ナビゲーションに移動 検索に移動
(文字列「[[zh-cn:」を「[[zh-hans:」に置換)
(2人の利用者による、間の5版が非表示)
3行目: 3行目:
 
[[en:Partitioning]]
 
[[en:Partitioning]]
 
[[es:Partitioning]]
 
[[es:Partitioning]]
  +
[[hu:Partitioning]]
 
[[it:Partitioning]]
 
[[it:Partitioning]]
  +
[[pl:Partitioning]]
 
[[ru:Partitioning]]
 
[[ru:Partitioning]]
[[zh-cn:Partitioning]]
+
[[zh-hans:Partitioning]]
 
{{Related articles start}}
 
{{Related articles start}}
  +
{{Related|Arch ファイルシステム階層}}
  +
{{Related|ファイルシステム}}
  +
{{Related|fdisk}}
  +
{{Related|GNU Parted}}
 
{{Related|fstab}}
 
{{Related|fstab}}
 
{{Related|LVM}}
 
{{Related|LVM}}
 
{{Related|スワップ}}
 
{{Related|スワップ}}
{{Related|ファイルシステム}}
 
 
{{Related articles end}}
 
{{Related articles end}}
   
21行目: 26行目:
 
==パーティションテーブル==
 
==パーティションテーブル==
   
パーティションの情報はパーティションテーブルに保存されます。現在、主に使われている形式は2つ存在します。昔ながらの [[Master Boot Record|Master Boot Record]] と新しい [[GUID Partition Table|GUID Partition Table]]。後者は MBR 形式に存在するいくつかの制限を取り除くように改良されています。
+
パーティションの情報はパーティションテーブルに保存されます。現在、主に使われている形式は2つ存在します。昔ながらの [[Master Boot Record]] と新しい [[GUID Partition Table]]。後者は MBR 形式に存在するいくつかの制限を取り除くように改良されています。
  +
  +
{{Note|既存のテーブルは {{ic|parted ''/dev/sda'' print}} または {{ic|fdisk -l ''/dev/sda''}} で確認できます ({{ic|''/dev/sda''}} はデバイス名に置き換えてください)。}}
   
 
=== Master Boot Record ===
 
=== Master Boot Record ===
36行目: 43行目:
 
'''プライマリ'''パーティションは起動することができるパーティションで、1つのディスクもしくは RAID ボリュームに対して4つまでプライマリパーティションを作成できます (MBR)。パーティションを4つ以上作りたいときは、拡張パーティションを用いてその中に論理パーティションを内包する形で構成する必要があります。拡張パーティションは論理パーティションのコンテナにすることができます。1つのハードディスクに作れる拡張パーティションは1つだけです。拡張パーティションはプライマリパーティションとしてもカウントされます。もしディスクに拡張パーティションがあるなら、作れるプライマリパーティションは3つになります(3つのプライマリと1つの拡張で合計4つ)。論理パーティションの数は他のパーティションと違って制限がありません。Windows とのデュアルブートをするには Windows 本体をプライマリパーティションに含める必要があります。
 
'''プライマリ'''パーティションは起動することができるパーティションで、1つのディスクもしくは RAID ボリュームに対して4つまでプライマリパーティションを作成できます (MBR)。パーティションを4つ以上作りたいときは、拡張パーティションを用いてその中に論理パーティションを内包する形で構成する必要があります。拡張パーティションは論理パーティションのコンテナにすることができます。1つのハードディスクに作れる拡張パーティションは1つだけです。拡張パーティションはプライマリパーティションとしてもカウントされます。もしディスクに拡張パーティションがあるなら、作れるプライマリパーティションは3つになります(3つのプライマリと1つの拡張で合計4つ)。論理パーティションの数は他のパーティションと違って制限がありません。Windows とのデュアルブートをするには Windows 本体をプライマリパーティションに含める必要があります。
   
ディスクパーティション番号には、次のような法則があります。まずプライマリーパーティションを {{ic|sda1}} から {{ic|sda2}}、{{ic|sda3}} と言う順番で番号を振っていき、拡張パーティションは {{ic|sda4}} になります。{{ic|sda4}} 上の論理パーティションが {{ic|sda5}}, {{ic|sda6}},... という具合につづきます。
+
ディスクパーティション番号には、次のような法則があります。まずプライマリーパーティションを {{ic|sda1}} から {{ic|sda2}}、{{ic|sda3}} と言う順番で番号を振っていき、拡張パーティションは {{ic|sda4}} になります。{{ic|sda4}} 上の論理パーティションが {{ic|sda5}}, {{ic|sda6}},... という具合につづきます。
   
 
=== GUID Partition Table ===
 
=== GUID Partition Table ===
46行目: 53行目:
 
{{Wikipedia/ja|Btrfs}}
 
{{Wikipedia/ja|Btrfs}}
   
Btrfs はデータストレージデバイス全体を占有して [[Master Boot Record|MBR]] や [[GUID Partition Table|GPT]] パーティションスキームを置き換えることができます。詳しい説明は [[Btrfs#パーティショニング|Btrfs パーティショニング]]を見て下さい。
+
Btrfs はデータストレージデバイス全体を占有して [[Master Boot Record|MBR]] や [[GUID Partition Table|GPT]] パーティションスキームを置き換えることができます。詳しい説明は [[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 に対してメリットがいくつかあります。フォーマッティングツールである ''fdisk'' (MBR) と ''gdisk'' (GPT) の最近の開発によって、同じくらい簡単に GPT や MBR を使うことができパフォーマンスを最適化できます。
   
 
要約すると:
 
要約すると:
56行目: 63行目:
 
* 古い BIOS を使う Windows (32ビット、64ビット両方) とのデュアルブートをするなら、MBR を使うべきです。
 
* 古い BIOS を使う Windows (32ビット、64ビット両方) とのデュアルブートをするなら、MBR を使うべきです。
 
* BIOS の代わりに [[Unified Extensible Firmware Interface|UEFI]] を使う64ビットの Windows とデュアルブートをするなら、GPT を使うべきです。
 
* BIOS の代わりに [[Unified Extensible Firmware Interface|UEFI]] を使う64ビットの Windows とデュアルブートをするなら、GPT を使うべきです。
  +
* 古いハードウェアにインストールする場合 (特にノートパソコンにインストールする場合)、BIOS が GPT をサポートしていない可能性があるので MBR を選択しましょう。
 
* 上の条件に当てはまらないなら、自由に GPT と MBR を選んでください。GPT の方が新しいので、ここでの推奨は GPT です。
 
* 上の条件に当てはまらないなら、自由に GPT と MBR を選んでください。GPT の方が新しいので、ここでの推奨は GPT です。
 
* [[Unified Extensible Firmware Interface|UEFI]] ブートではいつでも GPT を使うことが推奨されます。UEFI ファームウェアによっては UEFI-MBR ブートが出来ないからです。
 
* [[Unified Extensible Firmware Interface|UEFI]] ブートではいつでも GPT を使うことが推奨されます。UEFI ファームウェアによっては UEFI-MBR ブートが出来ないからです。
88行目: 96行目:
   
 
ソフトウェア RAID0 (ストライプ) をインストールするには {{ic|/boot}} パーティションを分割して作る必要があります。
 
ソフトウェア RAID0 (ストライプ) をインストールするには {{ic|/boot}} パーティションを分割して作る必要があります。
  +
  +
{{Note|他のファイルシステムのドライバーを含んでいない UEFI ブートローダーを使用してブートする場合、[[ESP]] は {{ic|/boot}} にマウントすることが推奨されます。例えば [[EFISTUB]] や [[systemd-boot]] などのローダーが該当します。}}
   
 
====/home====
 
====/home====
99行目: 109行目:
 
====/var====
 
====/var====
   
{{ic|/var}} ディレクトリにはスプールディレクトリ・ファイル、管理用のログデータ、[[pacman|pacman]] のキャッシュ、[[Arch Build System|ABS]] ツリーなどの可変データが置かれます。キャッシングやロギングなどに使われるため頻繁に読み書きされます。分割したパーティションに配置することで、ログなどによってディスク容量が不足するのを回避できます。
+
{{ic|/var}} ディレクトリにはスプールディレクトリ・ファイル、管理用のログデータ、[[pacman]] のキャッシュ、[[Arch Build System|ABS]] ツリーなどの可変データが置かれます。キャッシングやロギングなどに使われるため頻繁に読み書きされます。分割したパーティションに配置することで、ログなどによってディスク容量が不足するのを回避できます。
   
 
{{ic|/usr}} を読み込み専用でマウントするための選択肢としても存在します。歴史的に、(インストールやシステムメンテナンスと対照的に)システムオペレーションでは {{ic|/var}} に置かれるものは全て {{ic|/usr}} に書き出されます。
 
{{ic|/usr}} を読み込み専用でマウントするための選択肢としても存在します。歴史的に、(インストールやシステムメンテナンスと対照的に)システムオペレーションでは {{ic|/var}} に置かれるものは全て {{ic|/usr}} に書き出されます。
126行目: 136行目:
 
; /boot — 200 MB : {{ic|/boot}} パーティションに必要な容量は約 100 MB です。ただし複数のカーネル・ブートイメージを使うことを考えると、200 から 300 MB がベターでしょう。
 
; /boot — 200 MB : {{ic|/boot}} パーティションに必要な容量は約 100 MB です。ただし複数のカーネル・ブートイメージを使うことを考えると、200 から 300 MB がベターでしょう。
 
; / — 15-20 GB : root ファイルシステム ({{ic|/}}) には基本的に {{ic|/usr}} ディレクトリが含まれるので、必要な容量はインストールするソフトウェアの数によります。最近のハードディスクを使うユーザーのほとんどは 15-20 GB で十分だと思います。このパーティションにスワップファイルを保存する予定ならば、サイズをやや大きめにする必要があるでしょう。
 
; / — 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 ほどで、インストールされるソフトウェアの数によります。
+
; /var — 8-12 GB : {{ic|/var}} ファイルシステムには [[Arch Build System|ABS]] ツリーや [[pacman]] キャッシュなどのデータを収納します。パッケージのキャッシュを保持することはダウングレードをするときなどに役立つので、{{ic|/var}} はサイズが増えていく傾向があります。特に pacman のキャッシュはシステムを拡張したりアップデートするときに増加します。ただし、容量が足らなくなったときは問題なくキャッシュを削除可能です。デスクトップシステムでは {{ic|/var}} に必要な容量は 8-12GB ほどで、インストールされるソフトウェアの数によります。
 
; /home — [不定] : {{ic|/home}} ファイルシステムは一般的にユーザーのデータ(ダウンロードしたファイル・マルチメディアなど)を置くところです。デスクトップシステムでは、{{ic|/home}} はドライブの中で一番大きなファイルシステムにするのが普通です。
 
; /home — [不定] : {{ic|/home}} ファイルシステムは一般的にユーザーのデータ(ダウンロードしたファイル・マルチメディアなど)を置くところです。デスクトップシステムでは、{{ic|/home}} はドライブの中で一番大きなファイルシステムにするのが普通です。
 
; swap — [不定] : 歴史的に、物理メモリの容量の2倍のスワップパーティションを用意するべきという一般法則がありました。より大容量のメモリがコンピュータに積まれるようになり、この法則はすでに現状にあてはまりません。メモリが 512 MB 以下のマシンでは、2倍ルールが基本的に適合します。大容量のメモリ(1024MB 以上)を積んでいるときは、スワップパーティションは小さく、または作らなくてもかまわないでしょう。2GB 以上の物理 RAM を持っているなら、スワップパーティションがないほうが一般的に良いパフォーマンスを発揮すると思われます。
 
; swap — [不定] : 歴史的に、物理メモリの容量の2倍のスワップパーティションを用意するべきという一般法則がありました。より大容量のメモリがコンピュータに積まれるようになり、この法則はすでに現状にあてはまりません。メモリが 512 MB 以下のマシンでは、2倍ルールが基本的に適合します。大容量のメモリ(1024MB 以上)を積んでいるときは、スワップパーティションは小さく、または作らなくてもかまわないでしょう。2GB 以上の物理 RAM を持っているなら、スワップパーティションがないほうが一般的に良いパフォーマンスを発揮すると思われます。
133行目: 143行目:
   
 
==パーティショニングツール==
 
==パーティショニングツール==
  +
*{{App|fdisk|Linux に含まれているターミナルパーティショニングツール。|https://www.kernel.org/|{{Pkg|util-linux}}}}
 
  +
{{Warning|デバイスをパーティションするときは、使用するパーティションテーブルにあったパーティショニングツールを使って下さい。互換性のないツールを使用するとテーブルが破壊され、既存のパーティションやデータが読み込めなくなる可能性があります。}}
*{{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|[[fdisk]]|Linux に含まれているタミナルパーティシグツール。|https://www.kernel.org/|{{Pkg|util-linux}}}}
*{{App|cgdisk|cfdisk の GPT バョン。|http://www.rodsbooks.com/gdisk/|{{Pkg|gptfdisk}}}}
+
*{{App|[[fdisk|cfdisk]]|ncurses ライブラリを使ったタミナルパーティシグツール。|https://www.kernel.org/|{{Pkg|util-linux}}}}
*{{App|sgdisk|gdisk のスクリプタブルバージョン。|http://www.rodsbooks.com/gdisk/sgdisk-walkthrough.html|{{Pkg|gptfdisk}}}}
+
*{{App|[[fdisk|gdisk]]|fdisk [[GUID Partition Table|GPT]] バージョン。|http://www.rodsbooks.com/gdisk/|{{Pkg|gptfdisk}}}}
  +
*{{App|[[fdisk|cgdisk]]|cfdisk の GPT バージョン。|http://www.rodsbooks.com/gdisk/|{{Pkg|gptfdisk}}}}
  +
*{{App|[[fdisk|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|[[GNU Parted]]|ターミナルパーティショニングツール。|https://www.gnu.org/software/parted/parted.html|{{pkg|parted}}}}
*{{App|[[GParted|GParted]]|GTK によるグラフィカルツール。|http://gparted.sourceforge.net/|{{Pkg|gparted}}}}
+
*{{App|[[GParted]]|GTK によるグラフィカルツール。|http://gparted.sourceforge.net/|{{Pkg|gparted}}}}
 
*{{App|Partitionmanager|Qt によるグラフィカルツール。|http://sourceforge.net/projects/partitionman/|{{Pkg|partitionmanager}}}}
 
*{{App|Partitionmanager|Qt によるグラフィカルツール。|http://sourceforge.net/projects/partitionman/|{{Pkg|partitionmanager}}}}
  +
*{{App|QtParted|Partitionmanager の類似ツール、[[Arch User Repository|AUR]] から利用可能。|http://qtparted.sourceforge.net/|{{AUR|qtparted}}}}
 
  +
ユーティリティを選択するときは以下の表を参考にしてください:
  +
  +
{| class="wikitable"
  +
! ユーザーの操作
  +
! MBR
  +
! GPT
  +
|-
  +
| ダイアログ
  +
| fdisk <br> parted
  +
| fdisk <br> gdisk <br> parted
  +
|-
  +
| 擬似グラフィック
  +
| cfdisk
  +
| cfdisk <br> cgdisk
  +
|-
  +
| 非インタラクティブ
  +
| sfdisk <br> parted
  +
| sfdisk <br> sgdisk <br> parted
  +
|-
  +
| グラフィカル
  +
| GParted <br> partitionmanager
  +
| GParted <br> partitionmanager
  +
|}
   
 
== パーティションアライメント ==
 
== パーティションアライメント ==
156行目: 191行目:
 
=== ソリッドステートドライブ ===
 
=== ソリッドステートドライブ ===
   
ソリッドステートドライブは[[wikipedia:ja:フラッシュメモリ|フラッシュメモリ]]を使用しているため、ハードドライブとは事情が大きく異なります。ランダムアクセスによる読み取りが可能な一方、消去 (書き換えとランダム書き込み) は[[wikipedia:ja:フラッシュメモリ#種別|ブロック単位]]でしか行うことができません。さらに、''消去ブロックサイズ'' (erase block size, EBS) は標準の''ブロックサイズ''よりもずっと大きくなっており、例えば 128KiB と 4KiB だったりするため、EBS の倍数にアライメントする必要があります。
+
ソリッドステートドライブは[[wikipedia:ja:フラッシュメモリ|フラッシュメモリ]]を使用しているため、ハードドライブとは事情が大きく異なります。ランダムアクセスによる読み取りが可能な一方、消去 (書き換えとランダム書き込み) は[[wikipedia:ja:フラッシュメモリ#種別|ブロック単位]]でしか行うことができません。さらに、''消去ブロックサイズ'' (erase block size, EBS) は標準の''ブロックサイズ''よりもずっと大きくなっており、例えば 128KiB と 4KiB だったりするため、EBS の倍数にアライメントする必要があります。[[ソリッドステートドライブ/NVMe|NVMe]] ドライブの中には 4KiB にアライメントする必要があるドライブがありますが、全てではありません
   
 
=== パーティショニングツール ===
 
=== パーティショニングツール ===
162行目: 197行目:
 
過去、正しいアライメントをするにはパーティションの際に手動で計算して設定する必要がありました。最近のパーティションツールはほとんど自動的にパーティションアライメントを実行します:
 
過去、正しいアライメントをするにはパーティションの際に手動で計算して設定する必要がありました。最近のパーティションツールはほとんど自動的にパーティションアライメントを実行します:
   
* fdisk
+
* ''fdisk''
* gdisk
+
* ''gdisk''
* gparted
+
* ''gparted''
* parted
+
* ''parted''
 
パーティションが整列しているか確認するには、以下のように {{ic|/usr/bin/blockdev}} を使って確かめて下さい。'0' が帰ってくるならば、パーティションはアライメントされています:
 
 
# blockdev --getalignoff /dev/<partition>
 
0
 
 
== GPT を使う - 新しい方法 ==
 
 
=== Gdisk の使い方===
 
 
{{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'' を利用することができます。
 
 
''gdisk'' の典型的な使用方法の概要:
 
 
* root であなたのドライブに対して {{ic|gdisk}} を起動して下さい (''disk-device'' は {{ic|/dev/sda}} などに置き換えて下さい):
 
:{{bc|# gdisk ''disk-device''}}
 
* ドライブが新品の時や、やり直しをしたい場合は、空の 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}} 属性を有効にしなくてはなりません。
 
* [[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 を起動する場合はあてはまりません。
 
}}
 
 
== MBR を使う - レガシーな方法 ==
 
   
  +
既存のパーティションが存在する場合、[[parted]] を使ってデバイスのパーティションのアライメントを確認できます。例えば、{{ic|/dev/sda}} の1番目のパーティションのアライメントを確認するには:
MBR を使う場合、パーティションテーブルを編集するためのユーティリティは ''fdisk'' と呼ばれています。最近のバージョンの ''fdisk'' はデフォルトの表示単位にシリンダーを使用する古いシステムのサポートや、MS-DOS との互換性をデフォルトで廃止しています。最新の ''fdisk'' は自動的に全てのパーティションを2048セクタ (1024 KiB) にアライメントをするため、SSD メーカーによって使用されている EBS サイズ全てで問題なく整列されます。つまりデフォルト設定で正しいアライメントが行われます。
 
   
  +
# parted /dev/sda
昔の ''fdisk'' は、デフォルトの表示単位にシリンダーを使っていて、SSD のアライメントと干渉する MS-DOS との互換性も残っていました。そのため、2008-2009年あたりのインターネットのガイドを調べたら、大げさに書かれているのが見て取れると思います。最新の ''fdisk'' では、物事はもっとシンプルになり、そのことはこの記事にも反映されています。
 
  +
(parted) align-check optimal 1
  +
1 aligned
   
  +
{{Warning|1={{ic|/usr/bin/blockdev}} の {{ic|--getalignoff}} オプションを使ってパーティションのアライメントを確認する方法は[https://bbs.archlinux.org/viewtopic.php?id=174141 信頼性がない] という報告があります。}}
=== Fdisk の使い方 ===
 
* あなたのドライブを指定して {{ic|fdisk}} を root で起動します (''disk-device'' は {{ic|/dev/sda}} などに置き換えて下さい):
 
:{{bc|# fdisk ''disk-device''}}
 
* ドライブが新品の時や、やり直しをしたい場合は、空の DOS パーティションテーブルを {{ic|o}} コマンドで作成します。
 
* {{ic|n}} コマンドで新しいパーティションを作ります (プライマリ/最初のパーティション)。
 
* {{ic|+''x''G}} 形式を使ってパーティションを ''x'' ギガバイトまで拡張します。例えば、15 GiB のパーティションを作りたい場合は、{{ic|+15G}} と入力してください。
 
* {{ic|t}} コマンドで、パーティションのシステム ID を Linux のデフォルトタイプ ({{ic|type 83}}) から望ましいタイプに変更してください。これは任意のステップであり、スワップ、NTFS、LVM などの異なるタイプのパーティションを作りたいときにしてください。{{ic|l}} コマンドを使うことで利用できるパーティションタイプを全て一覧することができます。
 
* 同じようにして他のパーティションも割り振ります。
 
* {{ic|w}} コマンドでテーブルをディスクに書き込み終了します。
 
* [[ファイルシステム]]で新しいパーティションをフォーマットしてください。
 
   
 
==参照==
 
==参照==

2017年2月9日 (木) 21:10時点における版

関連記事

ハードドライブをパーティショニングして論理的なパーティションを作ることで他から独立してアクセスすることができるようになります。

ハードドライブ全体を1つのパーティションにすることもできますし、ハードドライブの容量を分割して複数のパーティションを作ることもできます。複数のパーティションが必要になる場合は様々です: 例えばデュアル・マルチブートや、スワップパーティションなど。他にも、パーティショニングは論理的にデータを分担する方法としても用いられ、オーディオ・ビデオファイルのためにパーティションを分割するようなことがあります。一般的なパーティショニング形態は下で詳しく記述しています。

それぞれのパーティションは使う前にファイルシステムでフォーマットしなければなりません。

パーティションテーブル

パーティションの情報はパーティションテーブルに保存されます。現在、主に使われている形式は2つ存在します。昔ながらの Master Boot Record と新しい GUID Partition Table。後者は MBR 形式に存在するいくつかの制限を取り除くように改良されています。

ノート: 既存のテーブルは parted /dev/sda print または fdisk -l /dev/sda で確認できます (/dev/sda はデバイス名に置き換えてください)。

Master Boot Record

この項目について詳しくは Wikipedia の記事を見て下さい: マスターブートレコード

MBR はもともとパーティションを4つまでサポートしていましたが、後になって、この制限を回避するために拡張・論理パーティションが導入されました。

パーティションには3つのタイプがあります:

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

プライマリパーティションは起動することができるパーティションで、1つのディスクもしくは RAID ボリュームに対して4つまでプライマリパーティションを作成できます (MBR)。パーティションを4つ以上作りたいときは、拡張パーティションを用いてその中に論理パーティションを内包する形で構成する必要があります。拡張パーティションは論理パーティションのコンテナにすることができます。1つのハードディスクに作れる拡張パーティションは1つだけです。拡張パーティションはプライマリパーティションとしてもカウントされます。もしディスクに拡張パーティションがあるなら、作れるプライマリパーティションは3つになります(3つのプライマリと1つの拡張で合計4つ)。論理パーティションの数は他のパーティションと違って制限がありません。Windows とのデュアルブートをするには Windows 本体をプライマリパーティションに含める必要があります。

ディスクのパーティション番号には、次のような法則があります。まずプライマリーパーティションを sda1 から sda2sda3 と言う順番で番号を振っていき、拡張パーティションは sda4 になります。sda4 上の論理パーティションが sda5, sda6,... という具合につづきます。

GUID Partition Table

この項目について詳しくは Wikipedia の記事を見て下さい: GUIDパーティションテーブル

パーティションタイプは Primary しかありません。ディスクや RAID ボリュームごとに作れるパーティションの数には制限がありません。

Btrfs パーティショニング

この項目について詳しくは Wikipedia の記事を見て下さい: Btrfs

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

GPT か MBR の選択

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

要約すると:

  • ブートローダに GRUB Legacy を使う場合、MBR を使うべきです。
  • 古い BIOS を使う Windows (32ビット、64ビット両方) とのデュアルブートをするなら、MBR を使うべきです。
  • BIOS の代わりに UEFI を使う64ビットの Windows とデュアルブートをするなら、GPT を使うべきです。
  • 古いハードウェアにインストールする場合 (特にノートパソコンにインストールする場合)、BIOS が GPT をサポートしていない可能性があるので MBR を選択しましょう。
  • 上の条件に当てはまらないなら、自由に GPT と MBR を選んでください。GPT の方が新しいので、ここでの推奨は GPT です。
  • UEFI ブートではいつでも GPT を使うことが推奨されます。UEFI ファームウェアによっては UEFI-MBR ブートが出来ないからです。

パーティション形態

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

警告: ブートローダのための領域を残しておくことを忘れないで下さい。MBR や GRUB-Legacy では問題になりませんでしたが、最近のパーティションスキームでは特別な、小さなパーティションが必要になることがあります。

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

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

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

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

マウントポイント

パーティションを分割すると以下のマウントポイントを選ぶことができます、実際の必要にあわせて決めてください。

Root パーティション

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

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

警告: (/boot 以外の) 起動に必要なディレクトリはかならず同じパーティション /initramfs によってユーザースペースの初期にマウントされるパーティションに配置されなくてはなりません。起動に必要なディレクトリ: /etc/usr [1]

/boot

/boot ディレクトリにはブートローダの設定ファイルや実行領域だけでなく、カーネルや ramdisk イメージも入ります。またカーネルがユーザースペースのプログラムを起動する前に使われるデータも保存されます。/boot は通常のシステムオペレーションには必要ありませんが、起動中やカーネルアップグレードの時(initial ramdisk を再生成する時)だけ使われます。

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

ノート: 他のファイルシステムのドライバーを含んでいない UEFI ブートローダーを使用してブートする場合、ESP/boot にマウントすることが推奨されます。例えば EFISTUBsystemd-boot などのローダーが該当します。

/home

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

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

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

/var

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

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

ノート: /var には小さいファイルが多く入ります。もしパーティションを分割するなら、ファイルシステムタイプ(下を見て下さい)の選択ではこのことを考えて下さい。

/tmp

systemd によって tmpfs としてマウントされることで、デフォルトで分割パーティションになっています。

スワップ

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

ノート: スワップパーティションサイズについての古い法則は suspend-to-disk を使う場合はあてはまりません。サスペンドメソッドはデフォルトで利用できるメモリの 40% のイメージを使います。TuxOnIce では、atomic コピーは圧縮して通常約 70% だけ使います。[2]

パーティションの大きさはどうすればいいですか?

ノート:
  • 以下はただの推奨事項です。パーティションのサイズに関する厳格なルールは存在しません。
  • 可能であれば、それぞれのファイルシステムに 25% の容量を加えて、フラグメンテーションを防いだり将来の拡張のために余剰を残して下さい。

パーティションのサイズは個々人の好みによりますが、以下の情報が約に立つかもしれません:

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

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

警告: デバイスをパーティションするときは、使用するパーティションテーブルにあったパーティショニングツールを使って下さい。互換性のないツールを使用するとテーブルが破壊され、既存のパーティションやデータが読み込めなくなる可能性があります。
  • fdisk — Linux に含まれているターミナルパーティショニングツール。
https://www.kernel.org/ || util-linux
  • cfdisk — ncurses ライブラリを使ったターミナルパーティショニングツール。
https://www.kernel.org/ || util-linux
  • gdisk — fdisk の GPT バージョン。
http://www.rodsbooks.com/gdisk/ || gptfdisk
  • cgdisk — cfdisk の GPT バージョン。
http://www.rodsbooks.com/gdisk/ || gptfdisk
  • sgdisk — gdisk のスクリプタブルバージョン。
http://www.rodsbooks.com/gdisk/sgdisk-walkthrough.html || gptfdisk
  • GNU Parted — ターミナルパーティショニングツール。
https://www.gnu.org/software/parted/parted.html || parted
  • GParted — GTK によるグラフィカルツール。
http://gparted.sourceforge.net/ || gparted
  • Partitionmanager — Qt によるグラフィカルツール。
http://sourceforge.net/projects/partitionman/ || partitionmanager

ユーティリティを選択するときは以下の表を参考にしてください:

ユーザーの操作 MBR GPT
ダイアログ fdisk
parted
fdisk
gdisk
parted
擬似グラフィック cfdisk cfdisk
cgdisk
非インタラクティブ sfdisk
parted
sfdisk
sgdisk
parted
グラフィカル GParted
partitionmanager
GParted
partitionmanager

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

パフォーマンスや寿命を最適化するのに、正しいパーティションアライメントを設定することは重要です。これはファイルシステムレベルだけでなくハードウェアレベルでも全ての I/O 操作に決まったブロックがあるためです。アライメントの鍵は、使用しているハードウェアに応じて、特定のブロックサイズにあわせてパーティショニングすることです。パーティションがブロックサイズの倍数で始まるように整列されてない場合、パーティションの開始オフセットによって全てが歪むので、ファイルシステムのアライメントは無意味になってしまいます。

ハードディスクドライブ

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

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

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

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

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

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

  • fdisk
  • gdisk
  • gparted
  • parted

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

# parted /dev/sda
(parted) align-check optimal 1
1 aligned
警告: /usr/bin/blockdev--getalignoff オプションを使ってパーティションのアライメントを確認する方法は信頼性がない という報告があります。

参照