Charles Steinkuehler <[EMAIL PROTECTED]> writes:
> Erich Titl wrote:
>
> | There is a possible bug in linuxrc (at least with the busybox of Bering)
> | when trying to create and mount the /tmp filesystem.
> |
> | Here is the output from /linuxrc.err
> |
> | mount -t tmpfs tmpfs /tmp -o size=20M
> | mount: Mounting tmpfs on /tmp failed: Invalid argument
> | mount -t tmpfs tmpfs /tmp -o size=20M
> |
> | I extended linuxrc a little to get the debug info. It appears as if the
> | tmpfs mount does not like the parameter substitution used for tmp_size
> |
> | here is the relevant code
> |
> | [ "$VERBOSE" ] && Lecho "Generating /tmp & /var/log partitions ..."
> | echo mount -t tmpfs tmpfs /tmp ${tmp_size:+-o size=$tmp_size} >>
> | /linuxrc.err
> | qt mount -t tmpfs tmpfs /tmp ${tmp_size:+-o size=$tmp_size}
> | echo mount -t tmpfs tmpfs /tmp -o size=$tmp_size >> /linuxrc.err
> | qt mount -t tmpfs tmpfs /tmp -o size=$tmp_size
> |
> | as you can see, the second mount appears to work, this is with tmp_size
> | set to 20M in leaf.cfg
>
> I suspect the entire "-o size=20M" is being passed to mount as a single
> argument, causing the problem.
I think it only would be a single argument if there were quotes around
the ${:+} substitution:
[EMAIL PROTECTED]:\w# unset tmp_size; for arg in ${tmp_size:+-o size=$tmp_size}
foo "${tmp_size:+-o size=$tmp_size}"; do echo "[$arg]"; done
[foo]
[]
[EMAIL PROTECTED]:\w# tmp_size="20M"; for arg in ${tmp_size:+-o size=$tmp_size}
foo "${tmp_size:+-o size=$tmp_size}"; do echo "[$arg]"; done
[-o]
[size=20M]
[foo]
[-o size=20M]
[EMAIL PROTECTED]:\w#
(run on my BU box running the standard /bin/sh shell)
However, I'd try leaving out the space after the -o, i.e. I'd run it as
mount -t tmpfs tmpfs /tmp ${tmp_size:+-osize=$tmp_size}
GruÃ,
Uli
pgpdYNSF5qEi3.pgp
Description: PGP signature
