gjournal を新規に作る2008年01月25日 11時05分16秒

一パーティションを壊して、新規に gjournal を作る。このパーティションにあるデータは既に古いので、壊れても差し仕えない。むしろ、このデータは使いようが無い。どうせ、一つしかパーティションが無いので、データとジャーナルを同じパーティション上に置く。

まず、-j jsize で指定する大きさを調べる。


% vi /usr/src/sbin/geom/class/geom_jornal.c
                if (jsize == -1) {
                        /*
                         * No journal size specified. 1GB should be safe
                         * default.
                         */
                        jsize = 1073741824ULL;
                } else {
                        if (jsize < 104857600) {
                                gctl_error(req, "Journal too small.");
                                return;
                        }
                        if ((jsize % ssize) != 0) {
                                gctl_error(req, "Invalid journal size.");
                                return;
                        }
                }

初期値は 1GB で、キロバイト単位で指定するようだ。


# bsdlabel /dev/ad0s3
# /dev/ad0s3:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  a:  1048576       16    4.2BSD     2048 16384     8
  b:  2097152  1048592    unused        0     0
  c: 20964825        0    unused        0     0         # "raw" part, don't edit
  d:  6291456  3145744    4.2BSD     2048 16384 28552
  e: 11527625  9437200    4.2BSD     2048 16384 28552

ad0s3e を使う。ここには古いシステムの /usr が入っている、6.1-RELEASE 時代のだ。7.0 系に既に移行をしているので、データを保存する理由はない。


# kldload geom_journal
# gjournal label /dev/ad0s3e
gjournal: File system exists on /dev/ad0s3e and this operation would destroy it.
Use -f if you really want to do it.

既にある UFS パーティションを認識して、警告を出してきた。消してもかまわないので、-f を与えて強制する。

# gjournal label -f /dev/ad0s3e
# newfs -J /dev/ad0s3e.journal 
/dev/ad0s3e.journal: 4604.7MB (9430472 sectors) block size 16384, fragment size 2048
        using 26 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
super-block backups (for fsck -b #) at:
 160, 376512, 752864, 1129216, 1505568, 1881920, 2258272, 2634624, 3010976,
 3387328, 3763680, 4140032, 4516384, 4892736, 5269088, 5645440, 6021792,
 6398144, 6774496, 7150848, 7527200, 7903552, 8279904, 8656256, 9032608,
 9408960

.jornal が付いたデバイスができる。 newfs に -J を追加し、ジャーナルをとるように指定する。
  
# mount -oasync /dev/ad0s3e.journal /mnt/ufs
# mount 
...
/dev/ad0s3e.journal on /mnt/ufs (ufs, asynchronous, local, gjournal)

gjournal を使っていると、async でも安全らしい。

前回次回

コメント

コメントをどうぞ

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

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

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

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2008/01/25/2578222/tb

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