GPT を用いてディスクのパーティションを設定2009年02月19日 00時02分21秒

データを壊したついでに、新しいことを試す。今回は、fdisk や bsdlabel ではなく、gpt にて、ディスクを区切ってみる。実は、FreeBSD 6.4/7.1 からサポートされたらしい。リリースノートを見た時は、全然気にしていなかった。

何も設定していないが、gpt で表示を試みる。


$ gpt show /dev/da0
gpt show: error: bogus map
gpt show: unable to open device '/dev/da0': No such file or directory
$ ls -sld /dev/da0
0 crw-r-----  1 root  operator    0, 144 Feb 18 22:05 /dev/da0
$ gpt create /dev/da0
gpt create: error: bogus map
gpt create: unable to open device '/dev/da0': No such file or directory
$ dd if=/dev/zero of=/dev/da0 count=10
10+0 records in
10+0 records out
5120 bytes transferred in 0.307595 secs (16645 bytes/sec)

しかし、gpt で表示しようとしても、パーティションを作ろうとしても成功しない。ls や dd だと問題なく使えている。

さて、問題はパス名の指定の仕方だった。4G のディスクなので、size は 512 バイトのブロックで表される様だ。


$ gpt show da0
    start     size  index  contents
        0  8007552

/dev を省略しても動くようにしてあるコマンドは多い。しかし、/dev を付けると逆に動かない物は初めて見た。

さて、gpt でデバイスにアクセス出来たので初期化する。


$ gpt create da0
$ gpt show da0
    start     size  index  contents
        0        1         PMBR
        1        1         Pri GPT header
        2       32         Pri GPT table
       34  8007485
  8007519       32         Sec GPT table
  8007551        1         Sec GPT header
$ ls -lsd /dev/da0*
0 crw-r-----  1 root  operator    0, 144 Feb 18 22:29 /dev/da0

取り敢えず、何か出来た。しかし、da0 以下には何も作られていない。まだ、パーティションは無い状態だ。

およそ、3.8 G のパーティションを作る。


$ ls -lsd /dev/da0*
0 crw-r-----  1 root  operator    0, 144 Feb 18 22:29 /dev/da0
$ gpt add -s 7600000 da0
$ gpt show da0
    start     size  index  contents
        0        1         PMBR
        1        1         Pri GPT header
        2       32         Pri GPT table
       34  7600000      1  GPT part - FreeBSD UFS/UFS2
  7600034   407485
  8007519       32         Sec GPT table
  8007551        1         Sec GPT header
$ ls -lsd /dev/da0*
0 crw-r-----  1 root  operator    0, 144 Feb 18 22:31 /dev/da0
0 crw-r-----  1 root  operator    0, 150 Feb 18 22:05 /dev/da0p1

これが、da0p1 として作成された。

第二パーティションは、最後まで使いたい。今回は単純に add を実行する。


$ gpt add da0
$ gpt show da0
    start     size  index  contents
        0        1         PMBR
        1        1         Pri GPT header
        2       32         Pri GPT table
       34  7600000      1  GPT part - FreeBSD UFS/UFS2
  7600034   407485      2  GPT part - FreeBSD UFS/UFS2
  8007519       32         Sec GPT table
  8007551        1         Sec GPT header
$ ls -lsd /dev/da0*
0 crw-r-----  1 root  operator    0, 144 Feb 18 22:32 /dev/da0
0 crw-r-----  1 root  operator    0, 150 Feb 18 22:05 /dev/da0p1
0 crw-r-----  1 root  operator    0, 152 Feb 18 22:05 /dev/da0p2

しっかり、最後まで確保され、/dev/ad0p2 が出来た。

これをジャーナルを付けて利用する。


$ gjournal label /dev/da0p1 /dev/da0p2
$ newfs -i 1024 -J /dev/da0p1.journal
/dev/da0p1.journal: 3710.9MB (7599996 sectors) block size 16384, fragment size 2
048
        using 32 cylinder groups of 118.88MB, 7608 blks, 60864 inodes.
super-block backups (for fsck -b #) at:
 160, 243616, 487072, 730528, 973984, 1217440, 1460896, 1704352, 1947808,
 2191264, 2434720, 2678176, 2921632, 3165088, 3408544, 3652000, 3895456,
 4138912, 4382368, 4625824, 4869280, 5112736, 5356192, 5599648, 5843104,
 6086560, 6330016, 6573472, 6816928, 7060384, 7303840, 7547296
$ ls -lsd /dev/da0*
0 crw-r-----  1 root  operator    0, 144 Feb 18 22:32 /dev/da0
0 crw-r-----  1 root  operator    0, 150 Feb 18 22:34 /dev/da0p1
0 crw-r-----  1 root  operator    0, 148 Feb 18 22:34 /dev/da0p1.journal
0 crw-r-----  1 root  operator    0, 152 Feb 18 22:34 /dev/da0p2

実は、数 GB 程度の小さいデバイスには、gjounral は推奨されていない。このディスクは実験用なので、意図的に gjournal やその他の機能を試すのに使っている。

次回

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2009/02/19/4129056/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。