%PDF- %PDF-
| Direktori : /snap/core/17212/usr/share/initramfs-tools/scripts/local-bottom/ |
| Current File : //snap/core/17212/usr/share/initramfs-tools/scripts/local-bottom/fixrtc-mount |
#!/bin/sh
# initramfs local-bottom script for fixrtc-mount
PREREQ=""
# Output pre-requisites
prereqs()
{
echo "$PREREQ"
}
case "$1" in
prereqs)
prereqs
exit 0
;;
esac
# This script looks at root file system files to get an accurate as possible
# date. It runs when we already have a mounted root, as opposed to the 'fixrtc'
# script, which uses the last mount time of the root file system. In devices
# where there is no battery for the RTC, 'fixrtc' is not effective, as the mount
# time will always be inaccurate. This script helps in those cases.
BROKEN_CLOCK=""
# shellcheck disable=SC2013
for opt in $(cat /proc/cmdline); do
case ${opt} in
fixrtc)
BROKEN_CLOCK=1
;;
esac
done
if [ -n "$BROKEN_CLOCK" ]; then
snapsfolder=/root/writable/system-data/var/lib/snapd/snaps
current=$(date +%s)
# We start with date at the time of writing this
newdate=$(date -d "2018-07-26" +%s)
if [ -d "$snapsfolder" ]; then
otherdate=$(stat -c %Y "$snapsfolder")
if [ "$otherdate" -gt "$newdate" ]; then
newdate=$otherdate
fi
fi
if [ "$newdate" -gt "$current" ]; then
date -s "@$newdate"
echo "initrd: date set from $0 ($(date --utc))" > /dev/kmsg
fi
fi
# This script is best-effort. If we couldn't fudge the clock as desired,
# just try to carry on boot anyway:
# Boot will probably fail, but we won't have made the situation any worse
exit 0