2.7. ディスク領域の割り当て

FreeBSD へディスク領域を割り当てるには 4 つの方法があります。 Guided によるパーティションの分割方法では、 ディスクパーティションを自動的に設定します。 一方 Manual によるパーティションの分割方法は、 高度な知識を持つユーザ向けで、 カスタマイズしたパーティションを作成できます。 FreeBSD 10 以降で利用可能な ZFS オプションは、 ブート環境に対応した root-on-ZFS システムを構築します。 暗号化された root-on-ZFS システムを構築することもできます。 その他の方法として、シェルを利用し、 gpart(8), fdisk(8), bsdlabel(8) のようなコマンドラインのプログラムを実行する方法があります。

図2.12 パーティションの分割の方法を Guided, Manual もしくは Shell から選択
パーティションの分割の方法を Guided, Manual もしくは Shell から選択

図2.13 Guided, Manual, Shell または ZFS パーティションの選択
Guided, Manual, Shell または ZFS パーティションの選択

この章では、 ディスクパーティションをレイアウトする際の検討事項を説明します。 その後、Guided Partitioning および Manual Partitioning screens の使用方法について説明します。

2.7.1. パーティションレイアウトのデザイン

ファイルシステムのレイアウトを行う際には、 ハードディスクの外周部は内周部よりもデータ転送が速いということを思い出してください。 これに従えば、 小さくて激しくアクセスされるファイルシステムを外周付近に、 /usr のようなより大きなパーティションはディスクの内側に配置すべきでしょう。 そのため、パーティションを作成する際には、/、 スワップ、/var, /usr のような順で作ってゆくのがよいでしょう。

/var パーティションのサイズは、 あなたが計算機をどのように使おうとしているかを反映します。 このパーティションには主としてメールボックスやログファイル、 プリンタスプールが置かれます。 メールボックスとログファイルは、 システムのユーザ数やログの保持期間に依存して予期し得ぬサイズにまで成長する可能性があります。 概して、ほとんどのユーザは、/var にギガバイト以上の空き容量を必要とはしないでしょう。

注記:

時には、たくさんのディスク容量が /var/tmp に必要になるときがあります。 新しいソフトウェアをインストールする際、 package のツールは、package の一時的なコピーを /var/tmp 以下に展開します。 /var/tmp 以下に十分なディスク容量が用意されていないと、 Firefox, OpenOfficeLibreOffice のような、 大きなソフトウェア package のインストールが、 困難になることがあります。

/usr パーティションには、 FreeBSD Ports Collection およびシステムのソースコードを含む、 システムをサポートするのに必要な多くのファイル群が置かれます。 このパーティションには、少なくとも 2 ギガバイトを用意することをおすすめします。

パーティションのサイズを考える時、 必要量を念頭に置いてください。 別のパーティションには潤沢にスペースが余っているのに、 あるパーティションでスペースが足らないままというのは、 フラストレーションがたまるものです。

経験からスワップパーティションのサイズは物理メモリ (RAM) の 2 倍というのが一般的です。 RAM の少ないシステムでは、 もっとスワップを増した方が性能がよくなります。 スワップが少なすぎる設定は、 あなたが後にメモリを増設したときに問題を起すばかりではなく、 VM ページスキャニングコードの能率を落します。

複数の SCSI ディスクや異なるコントローラで操作される複数の IDE ディスクを持つ大規模なシステムでは、 それぞれのドライブ (4 台まで) にスワップを設定することを推奨します。 各ドライブのスワップパーティションはほぼ同一サイズであるべきです。 カーネルは任意のサイズを扱うことができますが、 内部のデータ構造は最大のスワップパーティションの 4 倍に調節されます。 スワップパーティションをほぼ同一のサイズにしておくことで、 カーネルはスワップスペースを最適なかたちでディスクをまたいでストライプさせることができます。 あなたが通常スワップをたくさん使わないとしても、 多くのスワップサイズを用意しておくと良いでしょう。 プログラムが暴走しても再起動させられる前に回復することが容易になります。

システムを適切にパーティション化することで、 小さいが書き込みの激しいパーティションによって引き起こされるフラグメント化を、 読み出し専門のパーティションにまで波及させずにすみます。 また、書き込みの激しいパーティションをディスクの周辺部に配置することで、 I/O パフォーマンスを増大させることができます。 大きなパーティション内の I/O パフォーマンスもまた必要とされているでしょうが、 ディスク周辺部へ移動させたとしても、 /var を周辺部に移動させることによって大きな効果が得られたのとは対照的に、 意味のあるパフォーマンスの増加は見込めないでしょう。

2.7.2. Guided によるパーティションの分割

複数のディスクが接続されている場合には、 FreeBSD をインストールするディスクを選択してください。

図2.14 複数のディスクから選択する
複数のディスクから選択する

ディスクのすべて、または一部を FreeBSD に割り当てます。 [ Entire Disk ] を選択すると、 一般的なパーティションレイアウトが作成されます。 [ Partition ] を選択すると、 ディスクの使用していない領域にパーティションレイアウトを作成します。

図2.15 Entire Disk または Partition の選択
Entire Disk または Partition の選択

パーティションのレイアウトを作成したら、 正しく作成できているかどうか注意深く確認してください。 間違いを発見したら、 [ Revert ] を選択して、 直前に作成したパーティションをリセットしてください。 また、[ Auto ] を選択すると、 自動的にもう一度 FreeBSD パーティションを作成します。 パーティションを手動で作成、変更、削除できます。 正しくパーティションを作成出来たら、 [ Finish ] を選択し、 インストールを進めてください。

図2.16 作成されたパーティションの確認
作成されたパーティションの確認

2.7.3. Manual によるパーティションの分割

Manual によるパーティションの分割では、 直接パーティションエディタが起動します。

図2.17 Manual によるパーティションの分割
Manual によるパーティションの分割

ドライブ (この例では ada0) を選び、 [ Create ] を選択すると、 partitioning scheme を選択するメニューが表示されます。

図2.18 手動でパーティションを作成する
手動でパーティションを作成する

PC 互換のコンピュータでは、通常 GPT によるパーティション分割が最も適切な選択となります。 GPT に対応していないような古い PC オペレーティングシステムでは、 MBR パーティションを使う必要があります。 他のパーティションスキームは、使うことがまれであったり、 古いコンピュータで用いられます。

表2.1 パーティションスキーム
省略形説明
APMPowerPC® Macintosh® で使われている Apple Partition Map (http://support.apple.com/kb/TA21692)
BSDMBR を用いない BSD ラベル。しばしば dangerously dedicated mode と呼ばれます。 bsdlabel(8) をご覧ください。
GPTGUID Partition Table (http://en.wikipedia.org/wiki/GUID_Partition_Table)
MBRMaster Boot Record (http://en.wikipedia.org/wiki/Master_boot_record)
PC98NEC PC-98 コンピュータで使われている MBR の亜種 (http://en.wikipedia.org/wiki/Pc9801)
VTOC8Volume Table Of Contents。 Sun SPARC64 および UltraSPARC コンピュータで使われます。

パーティションスキームを選択して作成した後で、 もう一度 [ Create ] を選択すると、 新しいパーティションが作成されます。

図2.19 手動でパーティションを作成する
手動でパーティションを作成する

標準の FreeBSD GPT のインストールでは、 少なくとも 3 つのパーティションが使われます。

標準的な FreeBSD GPT パーティション
  • freebsd-boot - FreeBSD ブートコード。

  • freebsd-ufs - FreeBSD UFS ファイルシステム。

  • freebsd-swap - FreeBSD スワップ空間。

他のパーティション形式に freebsd-zfs があります。 これは FreeBSD ZFS ファイルシステムを含めるためのものです。 The Z File System (ZFS) をご覧ください。 利用可能な GPT パーティションタイプについては、gpart(8) をご覧ください。

複数のファイルシステムのパーティションを使うことができます。 /, /var, /tmp そして /usr といった伝統的なパーティション分割のレイアウトを好む人もいます。 レイアウトの例が 例2.3「伝統的なファイルシステムのパーティションを作成する。」 にあります。

サイズを入力する際に、 K (キロバイト)、M (メガバイト)、 G (ギガバイト) といった通常の省略形を使用出来ます。

ヒント:

セクタを適切に配置することで、 最良のパフォーマンスを得ることができます。 また、パーティションサイズを 4K バイトの偶数倍にすると、 512 バイトまたは 4K バイトのセクタでドライブが配置しやすくなります。 一般的に、 4K の偶数倍の場所からパーティションが開始するように設定する簡単な方法は、 1M または 1G の偶数倍のパーティションサイズを用いることです。 ただし、例外があり、現在のところ freebsd-boot パーティションは、 ブートコードの制限により 512K 以下である必要があります。

ファイルシステムを持つパーティションでは、 マウントポイントが必要となります。 1 つの UFS パーティションだけを作成するのであれば、 マウントポイントは / となります。

同様に label の作成も必要です。 ラベルは作成したパーティションを認識するための名前です。 ドライブ名や番号は、 ドライブが別のコントローラやポートに接続されると変わることがありますが、 パーティションラベルは変わりません。 /etc/fstab のようなファイルの中で、 ドライブ名やパーティション番号ではなく、ラベルを参照することにより、 システムがハードウェアの変更に対して、より寛容になります。 GPT のラベルは、ディスクが接続されると /dev/gpt/ に現れます。他のパーティションスキームでは別のラベルとなり、 /dev/ 以下の異なるディレクトリにラベルが現れます。

ヒント:

同じ名前による衝突を避けるため、 すべてのファイルシステムに対し、一意的な名前使ってください。 コンピュータ名、使用、位置情報を表す単語をラベルに追加できます。 たとえば、研究室のコンピュータの UFS のルートパーティションを labroot または rootfs-lab とします。

例2.3 伝統的なファイルシステムのパーティションを作成する。

伝統的なパーティションレイアウト (/, /var, /tmp および /usr ディレクトリが各パーティションの別のファイルシステム) を作成するには、 GPT パーティションスキームを作成し、 その後、示されているようにパーティションを作成してください。 示されているパーティションサイズは 20G のディスク用です。 ディスクにより多くの容量があれば、swap または /var パーティションを大きく取ると良いでしょう。 ここで示されているラベルには、 example を意味する ex が付けられていますが、 実際には上で説明したように、 これとは別のユニークなラベルをつけてください。

FreeBSD の gptboot は、 デフォルトでは最初に見つかった UFS パーティションが、 / パーティションであることを前頭としています。

パーティションタイプサイズマウントポイントラベル
freebsd-boot512K
freebsd-ufs2G/exrootfs
freebsd-swap4Gexswap
freebsd-ufs2G/varexvarfs
freebsd-ufs1G/tmpextmpfs
freebsd-ufsデフォルト (ディスクの残りのすべての容量)/usrexusrfs

カスタムパーティション を作成したら [ Finish ] を選択して、 インストールを先に進んでください。

2.7.4. root-on-ZFS パーティションの自動作成

root-on-ZFS のインストール時の自動作成は、 FreeBSD 10.0-RELEASE から対応しました。 このパーティションのモードは、 ディスクのすべての領域に対して機能するので、 ディスク上にあるすべての内容を消去してしまいます。 インストーラは、ZFS が 4k セクタを使うように、 自動的に 4k の境界にアラインするようパーティションを作成します。 512 バイトセクタのディスクでも利用できます。 512 バイトのディスクで作成されたプールに、 将来ストレージ空間を追加したり、壊れたディスクの置き換えにおいて、4k セクタのディスクを追加できるようにしておくことにはメリットがあります。 インストーラはオプションとして、 GELI ディスクの暗号化にも対応しています。 暗号化を有効にすると、/boot ディレクトリを含む 2 GB の暗号化されていないブートプールが作成されます。 ここには、カーネルとシステムを起動するのに必要なファイルが含まれます。 ユーザがサイズを選択可能な swap パーティションも作成され、 残りのスペースが ZFS プールとして使われます。

インストーラの ZFS メインメニューには、 プールの作成をコントロールする数多くのオプションが用意されています。

図2.20 ZFS パーティションメニュー
ZFS パーティションメニュー

最も重要なオプションは、 仮想デバイスのタイプおよびプールを構成するディスクの選択です。 現在のところ、自動の ZFS インストーラは、 ストライプモードを除き、 単一のトップレベルの仮想デバイスの作成のみに対応しています。 より複雑なプールを作成するには、Shell Mode で説明されている方法でプールを作成してください。 インストーラは、ストライプ (推奨されません。冗長性なし)、ミラー (ベストなパフォーマンス。使用できる容量は最小) および RAID-Z 1, 2 および 3 (それぞれ 1, 2 および 3 ディスクの同時障害へ対応)、 といったさまざまなタイプのプールの作成に対応しています。 プールタイプを選択するとスクリーンの下に説明が表示され、 各タイプにおいて必要なディスク数や、RAID-Z の場合には、 各設定に対して最適なディスクの数のアドバイスが表示されます。

図2.21 ZFS プールタイプ
ZFS プールタイプ

プールのタイプを選択したら、 利用可能なディスクの一覧が表示されます。 その後、プールを構成するディスクを、1 つまたは複数選択してください。 十分なディスクが選択されたかどうか設定が検証されます。 もし、問題があるようでしたら、 <Change Selection> を選択して、ディスクの一覧にもどってください。 もしくは、 <Cancel> を選択して、 プールのタイプを変更してください。

図2.22 ディスクの選択
ディスクの選択

図2.23 問題のある選択
問題のある選択

この一覧の中に抜けているディスクがある時や、 インストーラが立ち上がった後にディスクを接続した場合に、 最新の利用可能なディスクの一覧を見るには、 - Rescan Devices を選択してください。 間違ったディスクをアクシデントで破壊しないように、 適切なディスクが選択されていることを確認するには、 - Disk Info メニュー選択して、 各ディスクのパーティションテーブル、および、 デバイスモデル番号およびシリアル番号などのさまざまな情報を確認してください。

図2.24 ディスクの解析
ディスクの解析

メニューでは、プールの名前の入力、4k セクタ制限の設定の無効化、 暗号化の有効 / 無効の設定、パーティションテーブルタイプの GPT (推奨) と MBR の切り替え、 スワップ領域の容量を選択することもできます。 すべてのオプションが適切な値に設定されたら、 メニューのトップにある >>> Install オプションを選択してください。

geli(8) ディスク暗号化を有効にしていたら、 ディスクを暗号化するのに用いるパスフレーズを 2 度求められます。

図2.25 ディスク暗号化パスワード
ディスク暗号化パスワード

インストーラは ZFS プールを作成するために選択されたドライブの中身を破棄することの最終確認を行います。

図2.26 最終確認
最終確認

その後のインストールの過程は、通常通りに進みます。

2.7.5. シェルモードによるパーティションの作成

高度なインストールを行うには、bsdinstall のインタフェースは、 柔軟性にかけます。 パーティションメニューで Shell オプションを選択すると、 シェルを使えるようになります。 ドライブを分割し、ファイルシステムを作成し、fstab(5) ファイルを /tmp/bsdinstall_etc/fstab に作成し、 /mnt 以下にファイルシステムをマウントしてください。 以上を実行したら、 exit を実行して、 bsdinstall に戻り、インストールを続け、配布物のセットの展開を開始してください。

本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、 ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。

本文書に関する質問については、 <doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。