/usr/ports を mkuzip で圧縮ファイルシステムにする2014年01月20日 13時14分37秒

/usr/ports を mkuzip で圧縮ファイルシステムにする。これ自体は、何も新しい事では無いのだが、また今回更新するのに、色々と調べてしまった。次こそは、検索一発でいきたいところ。

/usr/ports はファイル数が多いこと。まだ、1GB で十分収まる。

$ df -ki /usr/ports
Filesystem    1024-blocks   Used  Avail Capacity iused  ifree %iused  Mounted on
/dev/md0.uzip      911262 581356 257006    69%  153598 394176   28%   /usr/ports
newfs-i を用いて、多めに inode を作成する。使うデバイスは、mdconfig の swap 型だ。論理メモリを用いるが物理メモリは十分にあるので、すべてオンメモリ。

また、portsupgrade を使うので、mkuzip 前に INDEX を生成しておく必要がある。INDEX を作っておかないと、一回ずつ 生成されてしまい大変な事になる。

最後に、uzip のブロックは最大値に。geom_uzip で単一ブロックへのみ、キャッシュされているので、一ブロックの大きさを最大に。

以上の作業を一気に行うとこうなる。

$ mdconfig -a -t swap -s 1GB
md2
$ newfs -U -i 512 /dev/md2
density increased from 512 to 2048
/dev/md2: 1024.0MB (2097152 sectors) block size 16384, fragment size 2048
        using 9 cylinder groups of 118.88MB, 7608 blks, 60864 inodes.
        with soft updates
super-block backups (for fsck -b #) at:
 160, 243616, 487072, 730528, 973984, 1217440, 1460896, 1704352, 1947808
$ mount -o async,noatime /dev/md2 /usr/ports
$ tar tf /usr/uzip/ports-9.2.txz | head
usr/ports/
usr/ports/x11-toolkits
$ tar xf /usr/uzip/ports-9.2.txz -C /
$ portupgrade -na
$ umount /usr/ports
$ mkuzip -v -s 130048 -o /usr/uzip/ports-9.2-20131008.uzip /dev/md2