GPT を用いてディスクのパーティションを設定 ― 2009年02月19日 00時02分21秒
何も設定していないが、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: http://uyota.asablo.jp/blog/2009/02/19/4129056/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。