gpart を使って GPT パーティションを設定2009年03月09日 12時23分33秒

以前にgpt(8) を使って GPT パーティションの設定をした。しかし、gpt(8) は既に古く gpart(8) を用いるとの指摘を受け、gpart を試して見ることにした。当時は手元に無かった 8-CURRENT 環境だと確かに、gpt は存在しない。なお、以下では GPT はパーティション様式を示すのに、gpt はプログラムを指す様に使い分けている。

まずは、何も使っていないデバイスでの表示を試みた。


$ gpart show -s GPT ad1
gpart: illegal option -- s

何も表示されない。GPT パーティションを先に作らねばいけないようだ。

create を使って GPT を作ってみる。


$ gpart create -s GPT /dev/ad1
gpart: provider '/dev/ad1': Invalid argument

gpt(8) と同じように、/dev があると気に入らないようだ。いつも、/dev を含めたフルパスを使っているので、GPT ではよくエラーになる。

一気に四パーティションを作る。


$ gpart create -s GPT ad1
ad1 created
$ gpart show ad1
=>     34  2097085  ad1  GPT  (1073.7MB)
       34  2097085       - free -  (1073.7MB)
$ gpart add -b 34 -s 500000 -t freebsd ad1
ad1s1 added
$ gpart show ad1
=>     34  2097085  ad1  GPT  (1073.7MB)
       34   500000    1  freebsd  (256.0MB)
   500034  1597085       - free -  (817.7MB)
$ gpart add -b 500034 -s 500000 -t freebsd ad1
ad1s2 added
$ gpart show ad1
=>     34  2097085  ad1  GPT  (1073.7MB)
       34   500000    1  freebsd  (256.0MB)
   500034   500000    2  freebsd  (256.0MB)
  1000034  1097085       - free -  (561.7MB)

$ gpart show ad1
=>     34  2097085  ad1  GPT  (1073.7MB)
       34   500000    1  freebsd  (256.0MB)
   500034   500000    2  freebsd  (256.0MB)
  1000034  1097085       - free -  (561.7MB)

$ gpart add -b 1000034 -s 500000 -t freebsd ad1
ad1s3 added
$ gpart show ad1
=>     34  2097085  ad1  GPT  (1073.7MB)
       34   500000    1  freebsd  (256.0MB)
   500034   500000    2  freebsd  (256.0MB)
  1000034   500000    3  freebsd  (256.0MB)
  1500034   597085       - free -  (305.7MB)

$ gpart add -b 1500034 -s 597085 -t freebsd ad1
ad1s4 added
$ gpart show ad1
=>     34  2097085  ad1  GPT  (1073.7MB)
       34   500000    1  freebsd  (256.0MB)
   500034   500000    2  freebsd  (256.0MB)
  1000034   500000    3  freebsd  (256.0MB)
  1500034   597085    4  freebsd  (305.7MB)


使い勝手としては、始点を指定する必要の無い gpt の方が便利だった。毎回、始点を確かめるために show を繰り返した。

もう一つ gpt と gpart の違いがこれだ。上でも作った報告をするときにパーティションの名前は表示される。


$ ls /dev/ad1*
/dev/ad1        /dev/ad1s1      /dev/ad1s2      /dev/ad1s3      /dev/ad1s4

gpt で作った GPT パーティションは /dev/ad1p1 の様に、p で区切られていたが、gpart で作った GPT パーティションは /dev/ad1s1 の様に s で区切られている。これは、7.1-RELEASE と 8-CURRENT の違いではなく、gpt で作られたか gpart で作られたかの違いだ。7.1-RELEASE で作成した GPT パーティションも p で区切られる。

前回

コメント

_ 野村 亮 ― 2009年09月28日 12時28分43秒

区切りの'p'と's'はgpt で作られたか gpart で作られたかの違いではなく、gpartで指定した"-t freebsd"というのが、bsdlabelでの分割を前提とした従来のスライスの格納を意味するから's'(スライス)が使われるようです。ufs/ufs2ファイルシステムの格納を意味する"-t freebsd-ufs"とすると'p'(パーティション)で区切られます。

コメントをどうぞ

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

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

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

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2009/03/09/4162452/tb

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