gpt Howto

gpt(8)を使って2TB以上の容量のディスクパーティションを利用するための方法です。試験環境は以下の通りです。

pci5: <PCI bus> on pcib5
3ware device driver for 9000 series storage controllers, version: 3.60.02.012
twa0: <3ware 9000 series Storage Controller> port 0x3000-0x303f mem 0xde000000-dfffffff,0xda300000-0xda300fff irq 16 at device 12.0 on pci5
twa0: [FAST]
twa0: INFO: (0x15: 0x1300): Controller details:: Model 9590SE-16ML, 16 ports, Firmware FE9X 3.04.00.005, BIOS BE9X 3.04.00.002
 :
da1 at twa0 bus 0 target 1 lun 0
da1: <AMCC 9590SE-16M DISK 3.04> Fixed Direct Access SCSI-3 device
da1: 100.000MB/s transfers
da1: 2860920MB (5859164160 512 byte sectors: 255H 63S/T 364716C)

FreeBSDのbsdlabel(disklabel)コマンドでは、セクター数が2^32 - 1 個以上のディスクを扱えません。通常は512バイト/セクターですので、2TBが上限ということになります。

# disklabel da1
disklabel: disks with more than 2^32-1 sectors are not supported

このようなディスクもあつかえる規格としてGPTというものがあり、FreeBSDでもサポートしています(ちょっとマニュアルには怖い記述がありますが)。このGPTの管理ツールであるgpt(8)を使ってパーティションを作成し、実際に利用できるようになるまでの手順について説明します。

GPTの作成

GPTを作成していない状態で gpt show コマンドを実行すると、以下のような感じで表示されます。

# gpt show da1
       start        size  index  contents
           0  5859164160

全容量が表示されるだけで、何もありません。 この状態で gpt create コマンドを使って新しい空のGPTテーブルを作成します。

# gpt create da1

もう一度gpt showで確認すると、テーブルが作成されているのが分かります。

  1. gpt show da1
    start size index contents
    0 1 PMBR
    1 1 Pri GPT header
    2 32 Pri GPT table
    34 5859164093
    5859164127 32 Sec GPT table
    5859164159 1 Sec GPT header

パーティションの作成

gpt add コマンドを利用して、パーティションを作成します。今回はディスク全体を1パーティションとして使うので、オプションは特に指定しません。

# gpt add da1
da1p1 added

これで、ディスク全体がid:1の1つのパーティションとして登録されます。

# gpt show da1
       start        size  index  contents
           0           1         PMBR
           1           1         Pri GPT header
           2          32         Pri GPT table
          34  5859164093      1  GPT part - FreeBSD UFS/UFS2
  5859164127          32         Sec GPT table
  5859164159           1         Sec GPT header

ファイルシステムの初期化

パーティションは出来ましたので、次にnewfsコマンドでファイルシステムを初期化します。

# newfs da1p1

進捗状況がずらずらと表示されるので、完了するまでしばらく待ちます。

マウント

以上で準備は完了したので、マウント先のディレクトリを作成してマウントします。

# mkdir /mnt/da1p1
# mount /dev/da1p1 /mnt/da1p1
# df /mnt/da1p1
Filesystem 1K-blocks  Used      Avail Capacity  Mounted on
/dev/da1p1 2837413242    4 2610420180     0%    /mnt/da1p1

fstabへの登録

起動時に自動的にマウントするように、/etc/fstabに以下の行を追加します。

/dev/da1p1              /mnt/da1p1      ufs     rw              2       2
Last modified:2008/04/07 01:49:27
Keyword(s):
References:[雑記録] [SideMenu]