I was not very happy with putting the time zone configuration in the
initramfs, and after discussing this with other developers at LPC I
learned that we don't need to:
- e2fsck is the only fsck that compares the system and superblock times
- Other distributions have avoided this problem by disabling the
comparison by default
- e2fsck supports a configuration file that can be used to disable it
So create the necessary e2fsck.conf file in the initramfs instead of
installing hwclock and its configuration.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
debian/control | 2 +-
hooks/fsck | 20 ++++++++------------
2 files changed, 9 insertions(+), 13 deletions(-)
diff --git a/debian/control b/debian/control
index c31cb77..3bb7847 100644
--- a/debian/control
+++ b/debian/control
@@ -12,7 +12,7 @@ Package: initramfs-tools
Architecture: all
Multi-Arch: foreign
Recommends: busybox (>= 1:1.01-3) | busybox-initramfs | busybox-static
-Depends: klibc-utils (>= 2.0-1~), cpio, kmod | module-init-tools, udev, ${misc:Depends}, util-linux (>= 2.20.1-5.11~), klibc-utils (>= 2.0.4-1.2~) | busybox (>= 1:1.01-3) | busybox-initramfs | busybox-static
+Depends: klibc-utils (>= 2.0-1~), cpio, kmod | module-init-tools, udev, ${misc:Depends}, klibc-utils (>= 2.0.4-1.2~) | busybox (>= 1:1.01-3) | busybox-initramfs | busybox-static
Suggests: bash-completion
Provides: linux-initramfs-tool
Conflicts: linux-initramfs-tool, usplash (<< 0.5.50)
diff --git a/hooks/fsck b/hooks/fsck
index cc860b5..dfa0710 100755
--- a/hooks/fsck
+++ b/hooks/fsck
@@ -95,18 +95,14 @@ copy_exec /sbin/fsck
copy_exec /sbin/logsave
copy_exec /sbin/sulogin
-# fsck may spuriously fail or warn if the system time is not yet correct
-if [ -x /lib/udev/hwclock-set ]; then
- copy_exec /lib/udev/hwclock-set
- copy_exec /sbin/hwclock
- for f in /etc/adjtime /etc/default/hwclock /etc/default/rcS \
- /etc/localtime /etc/udev/rules.d/*-hwclock.rules \
- /lib/udev/rules.d/*-hwclock.rules; do
- if [ -f "$f" ]; then
- copy_exec "$f"
- fi
- done
-fi
+# e2fsck may fail or warn if the system time is not yet correct, which
+# will happen if the RTC driver is modular or the RTC is set to local
+# time. Disable this behaviour. (No other fsck does this, apparently.)
+mkdir -p "${DESTDIR}/etc"
+cat >"${DESTDIR}/etc/e2fsck.conf" <<EOF
+[options]
+broken_system_clock=1
+EOF
for type in $(get_fstypes | sort | uniq); do
if [ "$type" = 'auto' ] ; then
--
Ben Hutchings
Anthony's Law of Force: Don't force it, get a larger hammer.
Attachment:
signature.asc
Description: This is a digitally signed message part