kern.securelevel=1 の時の mergemaster

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
広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。