Hi Helmut,
On 1/24/23 06:27, Helmut Grohne wrote:
On Mon, Jan 23, 2023 at 10:48:27PM +0100, Helge Deller wrote:
--- ./init.org 2023-01-23 21:40:33.079738389 +0000
+++ ./init 2023-01-23 21:40:45.983861851 +0000
@@ -205,6 +205,15 @@ else
resume=${RESUME:-}
fi
+if [ -z "${RUNSIZE}" ] || [[ "${RUNSIZE}" \< "20" ]]; then
This is as bashism and init runs with dash as far as I can see.
Hmm... I did tested it, at it seemed to work...
Which part of that line exactly do you think is problematic?
I'm open for any other idea how to code it.
Also note that RUNSIZE may legitimately be given as "1g" or "19%", both
of which should work.
Both will work, because I assume that on such systems you probably have more
than 200MB RAM
and thus my patch won't touch the user-provided value at all.
I suggest just not handling the case where RUNSIZE
is set by the user
Yes, I fully agree with you and had hoped to implement it that way.
Ideally RUNSIZE shouldn't be changed if it was already provided.
But the problem is, that on some/many systems RUNSIZE is *automatically*
provided and added to
the bootloader via a default value (of 10%) given in
/etc/initramfs-tools/update-initramfs.conf.
So, even if the user didn't changed or provided anything, the 10% is always set
and thus my check would never trigger....
and letting them break their system however they
like rather than risk breaking legitimate configuration.
Again, the default value is the problem...
+ read MemTotal mem_kb rest < /proc/meminfo
+ # systemd requires at minumum 16MB for /run, so reserve
+ # 20MB for machines which have less than 200MB RAM
+ if [ "$mem_kb" -lt "200000" ]; then
+ RUNSIZE=20M # for machines <= 200MB RAM
Given that you initialize a default here, I think it would make the code
more obvious if you pulled the 10% default 4 lines later into an else
branch.
Not sure I understand this...?
+ fi
+fi
+
mount -t tmpfs -o "nodev,noexec,nosuid,size=${RUNSIZE:-10%},mode=0755" tmpfs
/run
mkdir -m 0700 /run/initramfs
Helmut
Thank you Helmut!
Helge