From 7b45d06d80f498a6ea9630c51c11ca46ac5ad1d7 Mon Sep 17 00:00:00 2001 From: Miloslav Trmac Date: Sun, 6 Aug 2006 22:27:49 +0000 Subject: Support Debian-like "tmp" option in /etc/crypptab (#201382, based on a patch by Lars Volker ) --- rc.d/rc.sysinit | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'rc.d/rc.sysinit') diff --git a/rc.d/rc.sysinit b/rc.d/rc.sysinit index cb07660c..c04a434d 100755 --- a/rc.d/rc.sysinit +++ b/rc.d/rc.sysinit @@ -105,7 +105,7 @@ key_is_random() { # encrypted but /var/lib/random-seed is needed to initialize swap. init_crypto() { local have_random dst src key opt mode owner params makeswap skip arg opt - local param value rc ret + local param value rc ret mke2fs mdir ret=0 have_random=$1 @@ -135,6 +135,7 @@ init_crypto() { fi params="" makeswap="" + mke2fs="" skip="" # Parse the options field, convert to cryptsetup parameters # and contruct the command line @@ -172,6 +173,9 @@ init_crypto() { ;; swap) makeswap=yes + ;; + tmp) + mke2fs=yes esac done if [ "$skip" = "yes" ]; then @@ -205,8 +209,18 @@ init_crypto() { ret=1 continue fi - if [ "$makeswap" = "yes" -a -b "/dev/mapper/$dst" ]; then - mkswap "/dev/mapper/$dst" 2>/dev/null >/dev/null + if [ -b "/dev/mapper/$dst" ]; then + if [ "$makeswap" = "yes" ]; then + mkswap "/dev/mapper/$dst" 2>/dev/null >/dev/null + fi + if [ "$mke2fs" = "yes" ]; then + if mke2fs "/dev/mapper/$dst" 2>/dev/null >/dev/null \ + && mdir=$(mktemp -d /tmp/mountXXXXXX); then + mount "/dev/mapper/$dst" "$mdir" && chmod 1777 "$mdir" + umount "$mdir" + rmdir "$mdir" + fi + fi fi done < /etc/crypttab return $ret -- cgit v1.2.1