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

次のメニューでは、ディスク領域を割り当てる方法を選択します。 メニューで選択できるオプションは、インストールする FreeBSD のバージョンに依存します。

図2.11 FreeBSD 9.x におけるパーティションの分割の選択肢
FreeBSD 9.x におけるパーティションの分割の選択肢

図2.12 FreeBSD 10.x 以降でのパーティション分割の選択
FreeBSD 10.x 以降でのパーティション分割の選択

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

この章では、 ディスクパーティションをレイアウトする際の検討事項を説明します。 その後、各パーティションの作成方法について説明します。

2.6.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.6.2. Guided によるパーティションの分割

この方法を選択すると、 メニューには利用可能なディスクが表示されます。 複数のディスクが接続されている場合には、 FreeBSD をインストールするディスクを選択してください。

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

ディスクを選択したら、次のメニューでは、 ディスクのすべてにインストールを行うか、 または空き容量にパーティションを作成してインストールを行うかを設定します。 [ Entire Disk ] を選択すると、 一般的なパーティションレイアウトが自動的に作成されます。 [ Partition ] を選択すると、 ディスクの使用していない領域にパーティションレイアウトを作成します。

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

パーティションのレイアウトを作成したら、 インストールの条件を満たしているかどうかを深く確認してください。 [ Revert ] を選択すると、 パーティションをオリジナルの値にリセットします。 また、[ Auto ] を選択すると、 FreeBSD パーティションを自動的に作成します。 パーティションを手動で作成、変更、削除することもできます。 正しくパーティションを作成出来たら、 [ Finish ] を選択し、 インストールを進めてください。

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

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

この方法を選択すると、 パーティションエディタが起動します。

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

インストール先のドライブ (この例では ada0) を選び、 [ Create ] を選択すると、 利用可能なパーティションスキームの一覧が表示されます。

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

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

表2.1 パーティションスキーム
省略形説明
APMPowerPC® で使われている Apple Partition Map
BSDMBR を用いない BSD ラベル。 BSD 以外のディスクユーティリティは認識しないため、しばしば dangerously dedicated mode と呼ばれます。
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.18 手動でパーティションを作成する
手動でパーティションを作成する

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

  • 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.1「伝統的なファイルシステムのパーティションを作成する。」 にあります。

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

ヒント:

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

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

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

ヒント:

名前の衝突を避けるため、 各パーティションには、一意的な名前使ってください。 コンピュータ名、使用、位置情報を表す単語をラベルに追加できます。 たとえば、lab という名前のコンピュータの UFS の root パーティションには、 labroot または rootfs-lab といった名前を使ってください。

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

伝統的なパーティションレイアウト (/, /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.6.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.19 ZFS パーティションメニュー
ZFS パーティションメニュー

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

図2.20 ZFS プールタイプ
ZFS プールタイプ

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

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

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

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

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

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

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

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

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

図2.25 最終確認
最終確認

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

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

高度なインストールを行うには、bsdinstall が提供するパーティション分割のメニューは柔軟性にかけることがあります。 高度な技術を持つユーザは、パーティションメニューで Shell オプションを選択することで、 手動でドライブを分割して、ファイルシステムを作成し、 /tmp/bsdinstall_etc/fstab を作成し、 /mnt 以下にファイルシステムをマウントできます。 以上を実行したら、 exit を実行して bsdinstall に戻り、 インストールを続けてください。

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

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

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