「パーティショニング」の版間の差分
(→Partitionless disk: 翻訳抜けを修正) |
(GPT カーネルサポートを翻訳して追加) |
||
20行目: | 20行目: | ||
ハードドライブを''パーティショニング''して論理的なパーティションを作ることで他から独立してアクセスすることができるようになります。 |
ハードドライブを''パーティショニング''して論理的なパーティションを作ることで他から独立してアクセスすることができるようになります。 |
||
− | ハードドライブ全体を |
+ | ハードドライブ全体を1つのパーティションにすることもできますし、ハードドライブの容量を分割して複数のパーティションを作ることもできます。複数のパーティションが必要になる場合は様々です: 例えばデュアル・マルチブートや、[[スワップ]]パーティションなど。他にも、パーティショニングは論理的にデータを分担する方法としても用いられ、オーディオ・ビデオファイルのためにパーティションを分割するようなことがあります。一般的なパーティショニング形態は下で詳しく記述しています。 |
それぞれのパーティションは使う前に[[ファイルシステム]]でフォーマットしなければなりません。 |
それぞれのパーティションは使う前に[[ファイルシステム]]でフォーマットしなければなりません。 |
||
86行目: | 86行目: | ||
=== シングル root パーティション === |
=== シングル root パーティション === |
||
− | このスキームが一番シンプルで、ほとんどの場合これで十分です。必要に応じて[[スワップ#スワップファイル|スワップファイル]]を作成することもでき、簡単にサイズを変更できます。一般的に、まず |
+ | このスキームが一番シンプルで、ほとんどの場合これで十分です。必要に応じて[[スワップ#スワップファイル|スワップファイル]]を作成することもでき、簡単にサイズを変更できます。一般的に、まず1つのパーティション {{ic|/}} で初めて、それから、RAID や暗号化、共有メディアパーティションなどの目的にあわせてパーティションを分割するのは道理にかなっています。GPT でパーティションされた BIOS システムに GRUB をインストールするときは追加の BIOS boot パーティションが必要になるので注意してください。 |
=== パーティションを分割する === |
=== パーティションを分割する === |
||
104行目: | 104行目: | ||
====/boot==== |
====/boot==== |
||
− | {{ic|/boot}} ディレクトリにはブートローダの設定ファイルや実行領域だけでなく、カーネルや ramdisk イメージも入ります。またカーネルがユーザースペースのプログラムを起動する前に使われるデータも保存されます。{{ic|/boot}} は通常のシステムオペレーションには必要ありませんが、起動中やカーネルアップグレードの時 |
+ | {{ic|/boot}} ディレクトリにはブートローダの設定ファイルや実行領域だけでなく、カーネルや ramdisk イメージも入ります。またカーネルがユーザースペースのプログラムを起動する前に使われるデータも保存されます。{{ic|/boot}} は通常のシステムオペレーションには必要ありませんが、起動中やカーネルアップグレードの時(initial ramdisk を再生成する時)だけ使われます。 |
ソフトウェア RAID0 (ストライプ) をインストールするには {{ic|/boot}} パーティションを分割して作る必要があります。 |
ソフトウェア RAID0 (ストライプ) をインストールするには {{ic|/boot}} パーティションを分割して作る必要があります。 |
||
112行目: | 112行目: | ||
====/home==== |
====/home==== |
||
− | {{ic|/home}} ディレクトリにはユーザー設定ファイル |
+ | {{ic|/home}} ディレクトリにはユーザー設定ファイル("ドットファイル"と呼ばれます)、キャッシュ、アプリケーションのデータ、メディアファイルが含まれます。 |
{{ic|/home}} を分割することで {{ic|/}} を別個にパーティションしなおすことができますが、分割してなくとも {{ic|/home}} に触れずに Arch を再インストールすることはできます - 他のトップレベルディレクトリは削除する必要があり、それから pacstrap を実行することができます。 |
{{ic|/home}} を分割することで {{ic|/}} を別個にパーティションしなおすことができますが、分割してなくとも {{ic|/home}} に触れずに Arch を再インストールすることはできます - 他のトップレベルディレクトリは削除する必要があり、それから pacstrap を実行することができます。 |
||
− | 異なるディストリビューションのユーザー間で home ディレクトリを共有するべきではありません、なぜならソフトウェアのバージョンやパッチによって互換性がないことがあるからです。代わりに、メディアパーティションを共有したり、少なくとも、同じ |
+ | 異なるディストリビューションのユーザー間で home ディレクトリを共有するべきではありません、なぜならソフトウェアのバージョンやパッチによって互換性がないことがあるからです。代わりに、メディアパーティションを共有したり、少なくとも、同じ {{ic|/home}} パーティションにある別の home ディレクトリを使うなどしてください。 |
====/var==== |
====/var==== |
||
122行目: | 122行目: | ||
{{ic|/var}} ディレクトリにはスプールディレクトリ・ファイル、管理用のログデータ、[[pacman]] のキャッシュ、[[Arch Build System|ABS]] ツリーなどの可変データが置かれます。キャッシングやロギングなどに使われるため頻繁に読み書きされます。分割したパーティションに配置することで、ログなどによってディスク容量が不足するのを回避できます。 |
{{ic|/var}} ディレクトリにはスプールディレクトリ・ファイル、管理用のログデータ、[[pacman]] のキャッシュ、[[Arch Build System|ABS]] ツリーなどの可変データが置かれます。キャッシングやロギングなどに使われるため頻繁に読み書きされます。分割したパーティションに配置することで、ログなどによってディスク容量が不足するのを回避できます。 |
||
− | {{ic|/usr}} を読み込み専用でマウントするための選択肢としても存在します。歴史的に、 |
+ | {{ic|/usr}} を読み込み専用でマウントするための選択肢としても存在します。歴史的に、(インストールやシステムメンテナンスと対照的に)システムオペレーションでは {{ic|/var}} に置かれるものは全て {{ic|/usr}} に書き出されます。 |
− | {{Note|{{ic|/var}} には小さいファイルが多く入ります。もしパーティションを分割するなら、ファイルシステムタイプ |
+ | {{Note|{{ic|/var}} には小さいファイルが多く入ります。もしパーティションを分割するなら、ファイルシステムタイプ(下を見て下さい)の選択ではこのことを考えて下さい。}} |
==== /tmp ==== |
==== /tmp ==== |
||
136行目: | 136行目: | ||
{{Note|スワップパーティションサイズについての古い法則は [[サスペンドとハイバネート|suspend-to-disk]] を使う場合はあてはまりません。サスペンドメソッドはデフォルトで利用できるメモリの 40% のイメージを使います。[[TuxOnIce]] では、atomic コピーは圧縮して通常約 70% だけ使います。[http://tuxonice.net/features]}} |
{{Note|スワップパーティションサイズについての古い法則は [[サスペンドとハイバネート|suspend-to-disk]] を使う場合はあてはまりません。サスペンドメソッドはデフォルトで利用できるメモリの 40% のイメージを使います。[[TuxOnIce]] では、atomic コピーは圧縮して通常約 70% だけ使います。[http://tuxonice.net/features]}} |
||
− | ====パーティションの大きさはどうすればいいですか |
+ | ====パーティションの大きさはどうすればいいですか?==== |
{{Note| |
{{Note| |
||
148行目: | 148行目: | ||
; / — 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]] キャッシュなどのデータを収納します。パッケージのキャッシュを保持することはダウングレードをするときなどに役立つので、{{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}} ファイルシステムは一般的にユーザーのデータ |
+ | ; /home — [不定] : {{ic|/home}} ファイルシステムは一般的にユーザーのデータ(ダウンロードしたファイル・マルチメディアなど)を置くところです。デスクトップシステムでは、{{ic|/home}} はドライブの中で一番大きなファイルシステムにするのが普通です。 |
− | ; swap — [不定] : 歴史的に、物理メモリの容量の |
+ | ; swap — [不定] : 歴史的に、物理メモリの容量の2倍のスワップパーティションを用意するべきという一般法則がありました。より大容量のメモリがコンピュータに積まれるようになり、この法則はすでに現状にあてはまりません。メモリが 512 MB 以下のマシンでは、2倍ルールが基本的に適合します。大容量のメモリ(1024MB 以上)を積んでいるときは、スワップパーティションは小さく、または作らなくてもかまわないでしょう。2GB 以上の物理 RAM を持っているなら、スワップパーティションがないほうが一般的に良いパフォーマンスを発揮すると思われます。 |
− | : {{Note|スワップパーティション・ファイルにハイバネートするつもりならば、[[サスペンドとハイバネート#スワップパーティション |
+ | : {{Note|スワップパーティション・ファイルにハイバネートするつもりならば、[[サスペンドとハイバネート#スワップパーティション(ファイル)のサイズについて]]を見てください。}} |
; /data - [不定] : 全てのユーザーによって共有するファイルを置くために "data" パーティションをマウントしても良いでしょう。同じ目的で {{ic|/home}} パーティションを使ってもかまいません。 |
; /data - [不定] : 全てのユーザーによって共有するファイルを置くために "data" パーティションをマウントしても良いでしょう。同じ目的で {{ic|/home}} パーティションを使ってもかまいません。 |
||
196行目: | 196行目: | ||
=== ハードディスクドライブ === |
=== ハードディスクドライブ === |
||
− | 伝統的に、ハードドライブを扱うときには、読み書きするデータの''シリンダー''・''ヘッド''・''セクタ''を指定していました ([[wikipedia:ja:Cylinder head sector|CHS アドレッシング]])。これらは放射状に位置していて、ドライブヘッド |
+ | 伝統的に、ハードドライブを扱うときには、読み書きするデータの''シリンダー''・''ヘッド''・''セクタ''を指定していました ([[wikipedia:ja:Cylinder head sector|CHS アドレッシング]])。これらは放射状に位置していて、ドライブヘッド(=プラッタ)とデータの軸位置は別々でした。現在の[[wikipedia:ja:Logical Block Addressing|ロジカルブロックアドレッシング]]では、ハードドライブ全体が1つの連続したデータストリームとして扱われており、[[wikipedia:ja:ディスクセクタ|セクタ]]という言葉はアドレス指定できる一番小さな単位を示しています。 |
標準の''セクタサイズ''は 512B ですが、最近の高容量なハードドライブはもっと大きな値、大抵は 4KiB を使っています。512B より大きい値を使うことは [[Advanced Format]] と呼ばれます。 |
標準の''セクタサイズ''は 512B ですが、最近の高容量なハードドライブはもっと大きな値、大抵は 4KiB を使っています。512B より大きい値を使うことは [[Advanced Format]] と呼ばれます。 |
||
220行目: | 220行目: | ||
{{Warning|1={{ic|/usr/bin/blockdev}} の {{ic|--getalignoff}} オプションを使ってパーティションのアライメントを確認する方法は[https://bbs.archlinux.org/viewtopic.php?id=174141 信頼性がない] という報告があります。}} |
{{Warning|1={{ic|/usr/bin/blockdev}} の {{ic|--getalignoff}} オプションを使ってパーティションのアライメントを確認する方法は[https://bbs.archlinux.org/viewtopic.php?id=174141 信頼性がない] という報告があります。}} |
||
+ | |||
+ | == 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}} を実行してこのオプションを有効にします。 |
||
==参照== |
==参照== |
2020年12月24日 (木) 13:26時点における版
ハードドライブをパーティショニングして論理的なパーティションを作ることで他から独立してアクセスすることができるようになります。
ハードドライブ全体を1つのパーティションにすることもできますし、ハードドライブの容量を分割して複数のパーティションを作ることもできます。複数のパーティションが必要になる場合は様々です: 例えばデュアル・マルチブートや、スワップパーティションなど。他にも、パーティショニングは論理的にデータを分担する方法としても用いられ、オーディオ・ビデオファイルのためにパーティションを分割するようなことがあります。一般的なパーティショニング形態は下で詳しく記述しています。
それぞれのパーティションは使う前にファイルシステムでフォーマットしなければなりません。
パーティションテーブル
パーティションの情報はパーティションテーブルに保存されます。現在、主に使われている形式は2つ存在します。昔ながらの Master Boot Record と新しい GUID Partition Table。後者は MBR 形式に存在するいくつかの制限を取り除くように改良されています。
Master Boot Record
Master Boot Record (MBR) は、ストレージデバイスの最初の512バイトです。 これには、オペレーティングシステムのブートローダーとストレージデバイスの Partition Table が含まれています。 BIOS システムの ブートプロセス で重要な役割を果たします。 MBR 構造については、Wikipedia:Master boot record#Diskpartitioning を参照してください。
Master Boot Record (bootstrap code)
MBRの最初の440バイトは、bootstrap code 領域 です。 BIOS システムでは、通常、ブートローダーの最初のステージが含まれています。 bootstrap code は、バックアップ、バックアップからの復元、または消去することができます usingdd
Master Boot Record (partition table)
MBR Partition Table (DOS または MS-DOS Partition Table とも呼ばれます) には、次の3種類のパーティションがあります。
- Primary (プライマリ)
- Extended (拡張)
- Logical (論理)
GUID Partition Table
パーティションタイプは Primary しかありません。ディスクや RAID ボリュームごとに作れるパーティションの数には制限がありません。
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 ブートが出来ないからです。
Partitionless disk
パーティションレスディスク別名 what-is-a-superfloppysuperfloppy は、ストレージデバイス全体を占める1つのファイルシステムを持つパーティションテーブルです。 パーティションレスデバイスに存在するブートセクタは、volume boot record (VBR) と呼ばれます。
Btrfs パーティショニング
Btrfs はデータストレージデバイス全体を占有して MBR や GPT パーティションスキームを置き換えることができます。詳しい説明は Btrfs#パーティショニング を見て下さい。
パーティション形態
ハードドライブをパーティショニングするのに厳格なルールはありませんが、以下に一般的なガイダンスを記します。どうパーティショニングするかは、使用できるディスク容量の制限のほかに、求められる柔軟性・スピード・セキュリティなどの理由で決定されます。ユーザーの決定はコンピュータを使う癖や条件によって様々なものになりえます。Arch Linux と Windows OS のデュアルブートを考えているのなら、Windows と Arch のデュアルブートを読んでください。
シングル root パーティション
このスキームが一番シンプルで、ほとんどの場合これで十分です。必要に応じてスワップファイルを作成することもでき、簡単にサイズを変更できます。一般的に、まず1つのパーティション /
で初めて、それから、RAID や暗号化、共有メディアパーティションなどの目的にあわせてパーティションを分割するのは道理にかなっています。GPT でパーティションされた BIOS システムに GRUB をインストールするときは追加の BIOS boot パーティションが必要になるので注意してください。
パーティションを分割する
パーティションをパス毎に分割することで異なるファイルシステムとマウントオプションが使えるようになります。メディアパーティションなどの場合、オペレーティングシステム間で共有できます。
マウントポイント
パーティションを分割すると以下のマウントポイントを選ぶことができます、実際の必要にあわせて決めてください。
Root パーティション
root ディレクトリは階層のトップであり、プライマリファイルシステムがマウントされ他の全てのファイルシステムの幹になります。すべてのファイルとディレクトリは root ディレクトリ /
の下に表示されます、それらが異なる物理デバイスに保存されている場合でも同様です。root ファイルシステムには、システムのブート・リストア・リカバー・リペアに必要なものがなければなりません。そのため、/
下の特定ディレクトリは分割パーティションになりえません。
/
パーティション、または root パーティションは必須の、一番重要なパーティションです。このパーティションで他の全てのパーティションを置き換えることができます。
/boot
/boot
ディレクトリにはブートローダの設定ファイルや実行領域だけでなく、カーネルや ramdisk イメージも入ります。またカーネルがユーザースペースのプログラムを起動する前に使われるデータも保存されます。/boot
は通常のシステムオペレーションには必要ありませんが、起動中やカーネルアップグレードの時(initial ramdisk を再生成する時)だけ使われます。
ソフトウェア RAID0 (ストライプ) をインストールするには /boot
パーティションを分割して作る必要があります。
/home
/home
ディレクトリにはユーザー設定ファイル("ドットファイル"と呼ばれます)、キャッシュ、アプリケーションのデータ、メディアファイルが含まれます。
/home
を分割することで /
を別個にパーティションしなおすことができますが、分割してなくとも /home
に触れずに Arch を再インストールすることはできます - 他のトップレベルディレクトリは削除する必要があり、それから pacstrap を実行することができます。
異なるディストリビューションのユーザー間で home ディレクトリを共有するべきではありません、なぜならソフトウェアのバージョンやパッチによって互換性がないことがあるからです。代わりに、メディアパーティションを共有したり、少なくとも、同じ /home
パーティションにある別の home ディレクトリを使うなどしてください。
/var
/var
ディレクトリにはスプールディレクトリ・ファイル、管理用のログデータ、pacman のキャッシュ、ABS ツリーなどの可変データが置かれます。キャッシングやロギングなどに使われるため頻繁に読み書きされます。分割したパーティションに配置することで、ログなどによってディスク容量が不足するのを回避できます。
/usr
を読み込み専用でマウントするための選択肢としても存在します。歴史的に、(インストールやシステムメンテナンスと対照的に)システムオペレーションでは /var
に置かれるものは全て /usr
に書き出されます。
/tmp
systemd によって tmpfs
としてマウントされることで、デフォルトで分割パーティションになっています。
スワップ
スワップパーティションは仮想メモリを提供します。スワップファイルを使うことも考えてください、パーティションを作るのに比べてパフォーマンスのオーバーヘッドがないばかりでなく、必要に応じてより簡単にリサイズできます。swap パーティションは基本的にオペレーションシステム間で共有することができますが、ハイバネーションが使われる場合はそうでありません。
パーティションの大きさはどうすればいいですか?
パーティションのサイズは個々人の好みによりますが、以下の情報が約に立つかもしれません:
- /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 に含まれているターミナルパーティショニングツール。
- cfdisk — ncurses ライブラリを使ったターミナルパーティショニングツール。
- cgdisk — cfdisk の GPT バージョン。
- sgdisk — gdisk のスクリプタブルバージョン。
- GNU Parted — ターミナルパーティショニングツール。
- GParted — GTK によるグラフィカルツール。
- Partitionmanager — Qt によるグラフィカルツール。
ユーティリティを選択するときは以下の表を参考にしてください:
ユーザーの操作 | 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
GPT カーネルサポート
カーネル構成の CONFIG_EFI_PARTITION
オプションは、カーネルでの GPT サポートを有効にします(名前は EFI PARTITION ですが) このオプションはカーネルに組み込まれている必要があり、ロード可能なモジュールとしてコンパイルされてはなりません。 このオプションは、 GPT ディスクがデータストレージのみに使用され、起動には使用されない場合でも必要です。 このオプションは、すべての Arch の 公式にサポートされているカーネル でデフォルトで有効になっています。 カスタムカーネルの場合は、 CONFIG_EFI_PARTITION=y
を実行してこのオプションを有効にします。