[arch-projects] [RFC 18/23] Support the tmp= option for running mkfs on mapped device
Matthew Monaco
dgbaley27 at 0x01b.net
Fri May 18 20:44:19 EDT 2012
On 05/18/2012 05:15 PM, Tom Gundersen wrote:
> 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...
>
I implemented this exactly as debian does, "tmp" means ext4, but
"tmp=<anything>" works too. I have no use for it, and wasn't even planning to
add it, but I saw how simple it would be following the mkswap support (which I
and others definitely do use).
>> ---
>> 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
>>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 900 bytes
Desc: OpenPGP digital signature
URL: <http://mailman.archlinux.org/pipermail/arch-projects/attachments/20120518/dae2a29d/attachment.asc>
More information about the arch-projects
mailing list