2008-01-05
λ [FreeBSD] kern.securelevel=1 の時の mergemaster
/var/tmp/temproot/var/empty に chflags schg がかかっていて /var/tmp/temproot が消せなくなってしまう現象が 少しだけ以前から懸案だった。 make installworld する際には、再起動して kern.securelevel を落とさないといけないので、普通の運用だとかなりどうでもいいんだが。 マイナーアップグレードだと make buildworld 中に mergemaster かけてしまったりする俺。
/var/tmp/temproot を一時的に md(4) を使ったRAMdiskにする作戦でやってみたところうまくいった。 ということでメモ
#!/bin/sh
PAGER=cat
export PAGER
# jail 向けの mergemaster 指令
makejail () {
J=$1
# mergemaster -p -D /var/jail/$J
mergemaster -D /var/jail/$J
cp /usr/local/etc/rc.d/svscan.sh /var/jail/$J/etc/rc.d/
}
mkdir -p /var/temp/temproot
/sbin/mdmfs -s 20m md /var/tmp/temproot
mergemaster
makejail mimori.org
umount /var/tmp/temproot
rmdir /var/temp/temproot
# この環境では /tmp も md(4) を適用しているので md1 が自動割当の対象になる
mdconfig -d -u 1
[ツッコミを入れる]
[]
using plugin: amazon calendar2 category html_anchor makelirs makerss recent_comment3 recent_trackback3 squeeze tb-send tb-show recent_list
Copyright(C) 2003-2007 by KAMIYA Satosi (上美谷 智史) All rights reserved.