[arch-projects] [RFC 18/23] Support the tmp= option for running mkfs on mapped device

Tom Gundersen teg at jklm.no
Fri May 18 19:15:41 EDT 2012


On Fri, May 18, 2012 at 6:22 PM, Matthew Monaco <dgbaley27 at 0x01b.net> wrote:
> It seems like some people use this. Use a new variable "tmpfs" to
> contain the file system type. Default to ext4 (Debian does this). Use
> the same variable to track the swap option too because we can only do
> one or the other.

For the record: I don't see the value of this, and think people should
use a real tmpfs backed by encrypted swap.

That said, if there is demand for it I won't object. Does Debian
support choosing your own filesystem or do they always use ext4?
Having this be configurable seems a bit over the top to me...

> ---
>  cryptmount.sh |   21 +++++++++++++++------
>  1 file changed, 15 insertions(+), 6 deletions(-)
>
> diff --git a/cryptmount.sh b/cryptmount.sh
> index 37f5121..5320e3d 100755
> --- a/cryptmount.sh
> +++ b/cryptmount.sh
> @@ -155,7 +155,7 @@ ct_main() {
>
>        # Pre-parse OPTIONS, a little ugly, but it works
>        preparse() {
> -               local args swap
> +               local args tmpfs
>                if ! ct_parse_options $OPTIONS; then
>                        error "Invalid options string: $OPTIONS"
>                        exit 1
> @@ -392,7 +392,7 @@ ct_unmap() {
>
>  ct_map() {
>
> -       local name="$1" dev="$2" key="$3" args="" swap=0
> +       local name="$1" dev="$2" key="$3" args="" tmpfs
>        local key_dev="" key_fstype="" key_mntpnt="" key_dev_umount=0
>        shift 3
>
> @@ -401,7 +401,7 @@ ct_map() {
>                return 1
>        fi
>
> -       # this function sets the args and swap variables
> +       # this function sets the args and tmpfs variables
>        if ! ct_parse_options "$@"; then
>                error "Unable to parse options"
>                return 1
> @@ -520,13 +520,20 @@ ct_map() {
>                        ret=1
>                elif run cryptsetup create $key $args "$name" "$dev"; then
>                        info "sucessfully mapped '$dev' to '/dev/mapper/$name'"
> -                       if [ $swap -eq 1 ]; then
> +                       if [ "$tmpfs" = "swap" ]; then
>                                if run mkswap -f -L "$name" "/dev/mapper/$name"; then
>                                        info "mkswap successful on '/dev/mapper/$name'"
>                                else
>                                        error "mkswap failed for '/dev/mapper/$name'"
>                                        ret=1
>                                fi
> +                       elif [ "$tmpfs" ]; then
> +                               if run mkfs -t "$tmpfs" "/dev/mapper/$name"; then
> +                                       info "mkfs successful on '/dev/mapper/$name'"
> +                               else
> +                                       error "mkfs failed for '/dev/mapper/$name'"
> +                                       ret=1
> +                               fi
>                        fi
>                else
>                        error "unable to map '$dev' to '/dev/maper/name/$name'"
> @@ -617,7 +624,7 @@ ct_parse_options() {
>                case "$key" in
>                        swap)
>                                # set external variable
> -                               swap=1
> +                               tmpfs="swap"
>                                ;;
>                        luks|plain)
>                                warn "Ignoring option $key, LUKS volumes are automatically detected"
> @@ -629,7 +636,9 @@ ct_parse_options() {
>                                warn "Ignoring Debian specific option '$key'"
>                                ;;
>                        tmp)
> -                               warn "The tmp= option is not supported"
> +                               # set an external variable
> +                               [ -z "$val" ] && msg "Defaulting tmp to ext4"
> +                               tmpfs="${val:-ext4}"
>                                ;;
>                        size)
>                                args="$args --key-size $val"
> --
> 1.7.10.2
>


More information about the arch-projects mailing list