2005 年 5 月 1 日 (日) 自宅

先日の「FreeBSDのgbde(4)による重要データの暗号化」に関してその後の補足です。 結局、あれ以来ほぼ毎日常用していますが、 特に暗号化自体に起因する問題は起きていません。 ただし、半自動化スクリプトは書き換えました。

まずは GBDE を起動して暗号化されたメールスプールなどをマウントするためのスクリプトである ~/bin/gbdeattach.sh です。 前のバージョンでは fsck をしていなかったので、 fsck を preen モードで起動するように改良しました (/etc/fstab に記述がないので、「fsck -t ufs」の指定が必要です)。 また、正常にマウントできたかどうかを確認するため、 df の結果を 5 秒表示するようにしました。

#!/bin/sh
if [ ! -d /home/cryptfs/hosokawa/Mail ] ; then
	if sudo mdconfig -a -t vnode -u 9 -f /home/cryptfs/hosokawa.img ; then 
		sudo gbde attach /dev/md9 -l /home/cryptfs/md9
		if [ -c /dev/md9.bde ] ; then
			sudo fsck -t ufs -p /dev/md9.bde 
			sudo mount /dev/md9.bde /home/cryptfs/hosokawa
		else
			echo "Cannot init gbde."
			sudo mdconfig -d -u 9
			sleep 1
		fi
	fi
fi
/bin/df
/bin/sleep 5

また、マウント解除用の ~/bin/gbdedetach.sh も df に関する改良を加えました。

#!/bin/sh
[ -d /home/cryptfs/hosokawa/Mail ] && \
	sudo umount /home/cryptfs/hosokawa && \
	sudo gbde detach /dev/md9 && \
	sudo mdconfig -d -u 9
/bin/df
/bin/sleep 5

で、fsck だけを実行するための ~/bin/gbdefsck.sh も加えてみました。

#!/bin/sh
if [ ! -d /home/cryptfs/hosokawa/Mail ] ; then
	if sudo /sbin/mdconfig -a -t vnode -u 9 -f /home/cryptfs/hosokawa.img ; then 
		sudo /sbin/gbde attach /dev/md9 -l /home/cryptfs/md9
		if [ -c /dev/md9.bde ] ; then
			sudo /sbin/fsck -t ufs -p /dev/md9.bde
			sudo /sbin/gbde detach /dev/md9
			sudo /sbin/mdconfig -d -u 9
		else
			echo "Cannot init gbde."
			sudo /sbin/mdconfig -d -u 9
			sleep 1
		fi
	fi
fi

で、現状で判明している問題ですが、 異常終了後に、 イメージファイルが含まれるファイルシステムがバックグラウンド fsck を行っている最中に、 そのイメージを fsck しようとすると、 デッドロックの類が生じるようです。 まあ、無理もないといえば無理もありませんが…。 とりあえず、 バックグラウンド fsck が終了したことを確認してから gbdeattach.sh を起動することで回避しています。

その他は結構うまく動いています。 あとはサスペンド時、 もしくはレジューム時に強制 umount が可能かどうかを考えています。


このサイトへのリンクには何ら許可は必要ありません。 ただし、無断で写真をダウンロードして他の場所に掲載したり、 画像加工の素材として利用するなど、再配布に当たる行為はしないようにしてください。 また、このサイトへのリンクであることを明示すること無しに <img src="..."> などで他のページの内部に画像ファイルを取り込むことも、 ご遠慮下さい。