nixos/filesystems: succeed mount-pstore.service without backend

This commit is contained in:
hyperfekt 2021-07-26 16:04:50 +00:00
parent af871f619c
commit b3200bc922

View file

@ -314,15 +314,15 @@ in
set -eu set -eu
# if the pstore module is builtin it will have mounted the persistent store automatically. it may also be already mounted for other reasons. # if the pstore module is builtin it will have mounted the persistent store automatically. it may also be already mounted for other reasons.
${pkgs.util-linux}/bin/mountpoint -q /sys/fs/pstore || ${pkgs.util-linux}/bin/mount -t pstore -o nosuid,noexec,nodev pstore /sys/fs/pstore ${pkgs.util-linux}/bin/mountpoint -q /sys/fs/pstore || ${pkgs.util-linux}/bin/mount -t pstore -o nosuid,noexec,nodev pstore /sys/fs/pstore
# wait up to five seconds (arbitrary, happened within one in testing) for the backend to be registered and the files to appear. a systemd path unit cannot detect this happening; and succeeding after a restart would not start dependent units. # wait up to 1.5 seconds for the backend to be registered and the files to appear. a systemd path unit cannot detect this happening; and succeeding after a restart would not start dependent units.
TRIES=50 TRIES=15
while [ "$(cat /sys/module/pstore/parameters/backend)" = "(null)" ]; do while [ "$(cat /sys/module/pstore/parameters/backend)" = "(null)" ]; do
if (( $TRIES )); then if (( $TRIES )); then
sleep 0.1 sleep 0.1
TRIES=$((TRIES-1)) TRIES=$((TRIES-1))
else else
echo "Persistent Storage backend was not registered in time." >&2 echo "Persistent Storage backend was not registered in time." >&2
exit 1 break
fi fi
done done
''; '';