[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1027915: systemd requires /run to be mounted with a minimum size of 20MB



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


Reply to: