ufs_copy で -a と -c を併用すると失敗する2009年02月18日 01時25分07秒

ufs_copy は mkuzip よりも速いと書いたが若干問題があるようだ。

ufs_copy に -a を渡すと非同期 IO を使う。kldload aio が必要になる。これだけで使った場合は問題は起きなかった。

そして、-c を渡すと Liunx の cloopfs、FreeBSD の geom_uzip 形式のディスクイメージが作れる。これ単体でも問題が起きないのは確認した。

しかし、非同期 IO の -a と圧縮の -c を同時に使うと、壊れたディスクイメージが出来てしまう。


$ ufs_copy -a -c -B /dev/da0.journal /usr/local/tmp/da0.uzip
$ mdconfig -a -t vnode -f /usr/local/tmp/da0.uzip 
 md4
$ mount -r /dev/md4.uzip /mnt/backup/
mount: /dev/md4.uzip : Invalid argument
$ tunefs -p /dev/md4
tunefs: /dev/md4: could not read superblock to fill out disk
$ tunefs -p /dev/md4.uzip 
tunefs: /dev/md4.uzip: could not read superblock to fill out disk
$ dumpfs /dev/md4.uzip 
dumpfs: /dev/md4.uzip: could not read superblock to fill out disk

ディスクのバックアップを取った後に、newfs をやってからイメージが読めないのに気が付いた。すぐに再構築出来るデータしかなかったとはいえ、少々迂闊だった。1998 年製の IBM の4GB の 2.5 インチディスクだ。5MB/s ぐらいしか出ない。壊れても惜しくないディスクなので、逆に酷使していたが人為的なミスは避けたい。

ufs_copy fails with aio + compression2009年02月18日 06時03分52秒

Sysutils/ufs_copy in ports is a very useful tool to duplicate a disk-image. It swipes the disk and copy only the blocks being used. It is like dd except that ufs_copy does not copy garbage. It is faster than level-0 dump because ufs_copy uses sequential read and write; however, no incremental.

Ufs_copy also supports asynchronous I/O which makes coping faster. kldload aio needs to be done, prior. I verified that it works fine.

Ufs_copy, in addision, takes -c option to create a compressed filesystem image. It uses a copy of cloopfs source code. That is GEOM uzip equivalent. Indeed, it is ufs_copy -c is equivalent to mkuzip(1) excpet that mkuzip copies every block. ufs_copy is faster and results higher compression rate because how ufs_copy handles unused blocks. This works very well, too.

However, be CAUTIONED. When -a, asynchronous, and -c, compression, are used together, ufs_copy generates unreadable disk image.


$ ufs_copy -a -c -B /dev/da0.journal /usr/local/tmp/da0.uzip
$ mdconfig -a -t vnode -f /usr/local/tmp/da0.uzip 
 md4
$ mount -r /dev/md4.uzip /mnt/backup/
mount: /dev/md4.uzip : Invalid argument
$ tunefs -p /dev/md4
tunefs: /dev/md4: could not read superblock to fill out disk
$ tunefs -p /dev/md4.uzip 
tunefs: /dev/md4.uzip: could not read superblock to fill out disk
$ dumpfs /dev/md4.uzip 
dumpfs: /dev/md4.uzip: could not read superblock to fill out disk

最近はよく喋る2009年02月18日 11時50分33秒

もう二歳と四ヵ月半。前にも同じことを書いた気がするが、子供の言語の成長は早い。二歳を越えた頃から一気に伸びている。最近は、修飾語も増えて文章に幅が出るようになった。「とっても」「あっつい」など、修飾後を連ねる。「熱い」にしても、その加減まで表現できるようになってきている。

また、似たような文章を主語を変えて連ねて話す。主語自体を同格の「と」で、まとめることはまだ出来ない。例えば、遊びに行くときなど、一人一人の名前をあげて、どこそこに行くと繰り返す。

考えてみると、子供の使う文章はいつも三人称だ。数はしっかり十までは数えられる。二十までいけるときもある。しかし、まだ人を集団として話すことはないようだ。みんなでお出かけするとは言ったことがない。

以前は、電話を持っても子供は聞き役に徹していた。対面話せたが、電話だと受話器を耳に当てているだけ。最近は、電話に出ると、一所懸命に話続ける。電話越しでは、聞きづらいのもあって何を言っているのか分からない事も多いが、報告することがたくさんあるみたいだ。