Bug#787188: initramfs-tools: reboot always triggers an fsck when hwclock is set to local time
Package: initramfs-tools
Version: 0.120
Severity: important
If debian jessie is installed on top of a debian wheezy together with a
parallel install with $OTHEROS
where the hardware clock is set to local time, every reboot will also trigger
an fsck of the root
partition. This is higly anoying and delays boots seriously, even more so for
large disks.
The problem seems to be related to the timezone of the hardware clock.
Analyzing this problem reveals
the following:
The kernel loads the system time from the hardware clock, initramfs is loaded
and the fsck triggered
in /usr/share/initramfs-tools/scripts/functions starts the file system check.
At this time, no time zone is set,
and the clock is assumed to be in UTC (can be checked by booting to the busybox
directly).
This cannot trigger a warning since the check of the clock against the root
block time is disabled according
to the prepared e2fsck.config by /usr/share/initramfs-tools/hooks/fsck. So far,
so good. At this point,
however, the time stamp of the root block is also set to the (assumed to be)
UTC time of the clock. This, by
itself, does not cause an fsck issue.
However, now as the kernel is booted and init starts up, another file system
check is triggered by
/etc/init.d/checkroot.sh. At this time, the proper system time and time zone is
known, hence the system
clock is now "behind" the assumed-to-be clock when the root block of the file
system was written. IOW, fsck
*as run by the init script* sees now a time stamp ahead of time, and triggers a
file system check.
Clearly, this game is repeated now on every reboot. Aparently, this problem
only appears if your local time
is behind UTC, or if you are east of Greenwich.
Possible resolutions: Avoid the fsck in initramfs and let it do in checkroot.sh
as it used to be. Or include
the right time zone when writing the initramfs.
Additional information on the system: This system has internet connection to a
local ntp, hence has the proper time.
Since the ethernet card requires firmware, ntp might, however, not be available
in the kernel directly, but only
after the firmware has been loaded (probably later on when it is too late).
Unclear whether this relates to the
problem.
-- Package-specific info:
-- initramfs sizes
-rw-r--r-- 1 root root 9.8M May 29 16:23 /boot/initrd.img-2.6.32-5-amd64
-rw-r--r-- 1 root root 15M May 29 16:22 /boot/initrd.img-3.16.0-4-amd64
-rw-r--r-- 1 root root 12M May 29 16:23 /boot/initrd.img-3.2.0-3-amd64
-rw-r--r-- 1 root root 12M May 29 16:22 /boot/initrd.img-3.2.0-4-amd64
-- /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-3.16.0-4-amd64 root=UUID=94eecf80-b39b-49ac-9fd8-c45d12320e2d ro quiet
-- resume
RESUME=UUID=010dfdb1-7106-4e7f-9283-39b5bec3c059
-- /proc/filesystems
ext3
ext2
ext4
fuseblk
-- lsmod
Module Size Used by
vmw_vsock_vmci_transport 25862 0
vsock 30772 1 vmw_vsock_vmci_transport
vmw_vmci 55383 1 vmw_vsock_vmci_transport
cpufreq_powersave 12454 0
cpufreq_conservative 14184 0
cpufreq_stats 12782 0
cpufreq_userspace 12525 0
nfsv3 37551 2
rpcsec_gss_krb5 34296 0
nfsv4 410783 0
dns_resolver 12641 1 nfsv4
nfsd 263032 2
auth_rpcgss 51211 2 nfsd,rpcsec_gss_krb5
oid_registry 12419 1 auth_rpcgss
nfs_acl 12511 2 nfsd,nfsv3
nfs 188136 4 nfsv3,nfsv4
lockd 83389 3 nfs,nfsd,nfsv3
fscache 45542 2 nfs,nfsv4
sunrpc 237402 28 nfs,nfsd,rpcsec_gss_krb5,auth_rpcgss,lockd,nfsv3,nfsv4,nfs_acl
w83627ehf 39438 0
hwmon_vid 12388 1 w83627ehf
loop 26605 0
fuse 83350 3
parport_pc 26300 0
ppdev 16782 0
lp 17074 0
parport 35749 3 lp,ppdev,parport_pc
x86_pkg_temp_thermal 12951 0
snd_hda_codec_hdmi 45118 4
intel_powerclamp 17159 0
intel_rapl 17356 0
coretemp 12820 0
kvm_intel 139116 0
kvm 388635 1 kvm_intel
crc32_pclmul 12915 0
ghash_clmulni_intel 12978 0
snd_hda_codec_realtek 67127 1
aesni_intel 151423 0
aes_x86_64 16719 1 aesni_intel
lrw 12757 1 aesni_intel
gf128mul 12970 1 lrw
glue_helper 12695 1 aesni_intel
ablk_helper 12572 1 aesni_intel
cryptd 14516 3 ghash_clmulni_intel,aesni_intel,ablk_helper
nouveau 1122419 2
iTCO_wdt 12831 0
iTCO_vendor_support 12649 1 iTCO_wdt
mxm_wmi 12515 1 nouveau
wmi 17339 2 mxm_wmi,nouveau
evdev 17445 4
ttm 77862 1 nouveau
drm_kms_helper 49210 1 nouveau
drm 249955 5 ttm,drm_kms_helper,nouveau
i2c_algo_bit 12751 1 nouveau
psmouse 99143 0
pcspkr 12595 0
serio_raw 12849 0
snd_hda_codec_generic 63142 1 snd_hda_codec_realtek
i2c_i801 16965 0
i2c_core 46012 5 drm,i2c_i801,drm_kms_helper,i2c_algo_bit,nouveau
lpc_ich 20768 0
mfd_core 12601 1 lpc_ich
video 18096 1 nouveau
processor 28221 0
battery 13356 0
tpm_tis 17231 0
tpm 31511 1 tpm_tis
thermal_sys 27642 4 video,intel_powerclamp,processor,x86_pkg_temp_thermal
snd_hda_intel 26327 2
snd_hda_controller 26646 1 snd_hda_intel
snd_hda_codec 104463 5 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_intel,snd_hda_controller
snd_hwdep 13148 1 snd_hda_codec
snd_pcm 88662 4 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel,snd_hda_controller
snd_timer 26614 1 snd_pcm
snd 65244 12 snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel
soundcore 13026 2 snd,snd_hda_codec
shpchp 31121 0
mei_me 17941 0
mei 74977 1 mei_me
button 12944 1 nouveau
ext4 473802 1
crc16 12343 1 ext4
mbcache 17171 1 ext4
jbd2 82413 1 ext4
hid_generic 12393 0
usbhid 44460 0
hid 102264 2 hid_generic,usbhid
sg 29973 0
sd_mod 44356 4
crc_t10dif 12431 1 sd_mod
sr_mod 21903 0
crct10dif_generic 12581 0
cdrom 47424 1 sr_mod
crct10dif_pclmul 13387 1
crct10dif_common 12356 3 crct10dif_pclmul,crct10dif_generic,crc_t10dif
ahci 33291 4
libahci 27158 1 ahci
crc32c_intel 21809 0
r8169 68262 0
libata 177457 2 ahci,libahci
ehci_pci 12512 0
ehci_hcd 69837 1 ehci_pci
scsi_mod 191405 4 sg,libata,sd_mod,sr_mod
usbcore 195340 3 ehci_hcd,ehci_pci,usbhid
mii 12675 1 r8169
usb_common 12440 1 usbcore
-- /etc/initramfs-tools/modules
-- /etc/kernel-img.conf
# Kernel image management overrides
# See kernel-img.conf(5) for details
do_symlinks = yes
do_bootloader = no
do_initrd = yes
link_in_boot = no
-- /etc/initramfs-tools/initramfs.conf
MODULES=most
BUSYBOX=y
KEYMAP=n
COMPRESS=gzip
DEVICE=
NFSROOT=auto
-- /etc/initramfs-tools/update-initramfs.conf
update_initramfs=yes
backup_initramfs=no
-- /etc/crypttab
# <target name> <source device> <key file> <options>
-- mkinitramfs hooks
/etc/initramfs-tools/hooks/:
adjtime
/usr/share/initramfs-tools/hooks:
busybox
dmsetup
fsck
fuse
intel_microcode
keymap
klibc
kmod
ntfs_3g
resume
thermal
udev
zz-busybox
-- System Information:
Debian Release: 8.0
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable'), (500, 'oldstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.16.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=de_DE.iso-8859-1, LC_CTYPE=de_DE (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)
Versions of packages initramfs-tools depends on:
ii busybox 1:1.22.0-9+deb8u1
ii cpio 2.11+dfsg-4.1
ii klibc-utils 2.0.4-2
ii kmod 18-3
ii module-init-tools 18-3
ii udev 215-17
Versions of packages initramfs-tools recommends:
ii busybox 1:1.22.0-9+deb8u1
Versions of packages initramfs-tools suggests:
ii bash-completion 1:2.1-4
-- no debconf information
Reply to: