2011/03/21

ディスク流用時のハマり点

Intel Mac (Mac OS X) 等にて使用した HDD を、FreeBSD に流用して使用するときは、ちょっとしたハマりポイントがある。
それは、パーティションテーブルが GPT (GUID Partition Table) になっており、旧来の MBR (Master Boot Record) ではない、と言うことだ。
FreeBSD の sysinstall では MBR しか扱えないため、GPT のディスクを繋ぐと、スライス操作が行えないという事態に陥る。

FreeBSD 8 系以降で GPT を扱うには、gpart コマンドを用いる。
(7 系では gpt コマンド)

ディスクを GPT から MBR にするのであれば、すべてのパーティションを削除して、GPT エントリを削除することになる。
そのためには、以下のように操作する。
(以下の操作に出てくる da0 は操作するデバイス。 /dev/ を付けてはいけない)

まず、GPT の情報を取得する。
# gpart show da0
=>        34  1953525101  da0  GPT  (932G)
          34           6       - free -  (3.0K)
          40      409600    1  efi  (200M)
      409640  1953115495       - free -  (931G)

次に、存在するパーティションを削除する。
(ここでは、1 しかないので、これだけ削除する)
# gpart delete -i 1 da0
da0p1 deleted

必要であれば、もう一度 GPT の情報を取得する。
# gpart show da0
=>        34  1953525101  da0  GPT  (932G)
          34  1953525101       - free -  (932G)

すべてのパーティションを削除したので、GPT エントリを削除する。
# gpart destroy da0
da0 destroyed

以上で GPT は削除できたので、あとは sysinstall でも fdisk ででもスライスを切ればよい。


もっとも、FreeBSD は 7 系より GPT にも対応している上、MBR では 2TiB までしか扱えないため、これを機に GPT に乗り換えてしまうというのも手ではある。
その場合は、gpart にてスライスを追加していくことになるため、サイズ指定をブロック数で行わざるを得ず、ちょっとわかりにくいかもしれない。
(1 ブロックは 512 バイトですので、割り算して求めて下さいな)


man gpart
and good luck!