This may be a baselout2, openrc, or portage 2.2 bug. I have this message at boot time; it does not appear in /var/log/rc.log, but right now, I have it in an email sent by cron (I REALLY wonder how cron could need checkfs ... never mind). Here is compleet cron mail: ######################################################################## Sat Jun 26 12:20:01 CEST 2010 *** Do we have latest kernel ? Yes, Ok. *** Arch_to_local Not doing cron because date($((${D}%3))= 2 . *** End. /lib64/rc/sh/rc-functions.sh: line 90: shell_var: command not found Service `checkfs' needs non existant service `checkroot' * start-stop-daemon: /usr/sbin/munin-node is already running ################################################################## Here is my /etc/cron.daily/local.cron #!/bin/sh /bin/date /bin/echo " " /bin/echo " *** Do we have latest kernel ?" /bin/echo " " #/bin/mount /boot/ /bin/ls /boot/ \ | /bin/grep `ls -l /usr/src/ | /bin/grep "linux ->" | /usr/bin/cut -d '>' -f2 | /bin/sed 's/ linux-//'` \ | /bin/grep -e "kernel" -e "vmlinuz" >/dev/null \ && /bin/echo "Yes, Ok." \ || /bin/echo -e '\n*****\n*****\n* NO : A new kernel is available; please compile it !\n*****\n*****\n*****\n*****' #/bin/umount /boot/ /bin/echo " " /bin/echo " *** Arch_to_local" /bin/echo " " D=$(/bin/date +%-d) if [ "$((${D}%3))" == "1" ] then /opt/doublehp/sbin/Arch_to_local else echo "Not doing cron because date(\$((\${D}%3))= $((${D}%3)) ." fi /bin/echo " " /bin/echo " *** End." /bin/echo " " ... so, all I know is that the problem is not really in my cron.local ... and I wonder why cron.daily want's to restart munin. Any way, munin is a system service for me (required by /etc/runlevels/default/ ), and it had failed to start officially . See bug 325691 . Whatever cron is related to munin OR NOT, i have this checkfs/checkroot message at boot time, just before mountall. This may explain a bit: uranus ~ # ls /etc/cron.daily/ local.cron logrotate.cron makewhatis slocate uranus ~ # maybe logrotate tries to restart munin after rotation ?
Created attachment 236633 [details] /tmp/emerge--info
may be related with bug 325691 ?
Looks like something's wrong with some file in /etc/init.d. Could you grep that for "checkfs" as well as "checkroot"?
dhp@uranus ~ $ grep checkfs /etc/init.d/* /etc/init.d/device-mapper: before checkfs fsck /etc/init.d/dmcrypt: before checkfs fsck /etc/init.d/lvm: before checkfs fsck /etc/init.d/mdraid: before checkfs fsck /etc/init.d/udev: before checkfs fsck dhp@uranus ~ $ grep checkroot /etc/init.d/* /etc/init.d/checkfs: need checkroot modules /etc/init.d/crypto-loop: need checkroot /etc/init.d/lvm: # dependency-cycles with checkroot (before *) /etc/init.d/mdraid: # dependency-cycles with checkroot (before *) dhp@uranus ~ $
Demaine, according to your emerge --info, you are running baselayout-2 and openrc. checkfs is not part of openrc, so I'm not sure why it is on your system. Can you please post the output of the following commands: ls -l /etc/init.d/checkfs equery b /etc/init.d/checkfs Thanks, William
dhp@uranus ~ $ ls -l /etc/init.d/checkfs -rwxr-xr-x 1 root root 1515 Jun 25 22:56 /etc/init.d/checkfs dhp@uranus ~ $ equery b /etc/init.d/checkfs [ Searching for file(s) /etc/init.d/checkfs in *... ] dhp@uranus ~ $
dhp@uranus ~ $ ls -l /etc/init.d/fsck -rwxr-xr-x 1 root root 2637 Jul 10 19:28 /etc/init.d/fsck dhp@uranus ~ $ equery b /etc/init.d/fsck [ Searching for file(s) /etc/init.d/fsck in *... ] sys-apps/openrc-0.6.1-r1 (/etc/init.d/fsck) dhp@uranus ~ $ So, the question is rather: why do some init scripts depend on fsck ? maybe i should just rebuild the complaining services, and hope their new init scripts will use dep fsck instead of checkfs ? dhp@uranus ~ $ grep checkfs /etc/init.d/* /etc/init.d/device-mapper: before checkfs fsck /etc/init.d/dmcrypt: before checkfs fsck /etc/init.d/lvm: before checkfs fsck /etc/init.d/mdraid: before checkfs fsck /etc/init.d/udev: before checkfs fsck dhp@uranus ~ $
Demaine, sorry I took so long to get back to you on this. I checked my system, and checkfs and checkroot are definitely not part of openrc. You should instead have root and fsck. If you can do these commands and get no output: equery b /etc/init.d/checkroot equery b /etc/init.d/checkfs you can remove these two scripts since you are running openrc. Please report back whether you can remove these scripts, and if you can do so and let us know if there is still an issue.
Several modules depend on chekfs: dhp@uranus /etc/init.d $ grep -n checkfs * device-mapper:10: before checkfs fsck dmcrypt:7: before checkfs fsck lvm:10: before checkfs fsck mdraid:10: before checkfs fsck udev:23: before checkfs fsck dhp@uranus /etc/init.d $ In particular, I need mdraid and udev (lvm is not started at boot time). I have fixed the boot message with this modification in checkfs depend() { # need checkroot modules need modules # modified by Doublehp } so that deps for udev and mdraid are satisfied, but no more warning. I still wonder how I came to this situation. You ask me to remove them both; checkroot is not needed anymore for me. But checkfs is still needed. It is run at boot time, and performs sanity checks. It's a dep of udev. If i remove it, udev deps won't be satisfied, i will have a warning, and, sanity checks won't be performed anymore. Or i need to manualy edit many other scripts. Do i need to replace all checkfs deps by fsck ? Does my broken chekroot explain why I have this strange configuration ? dhp@uranus /etc/init.d $ df -h Filesystem Size Used Avail Use% Mounted on rootfs 28G 13G 15G 47% / /dev/root 28G 13G 15G 47% / [we don't mind] dhp@uranus /etc/init.d $ while i pass to kernel root=/dev/md5 and fstab contains LABEL=Gentoo / ext4 noatime 0 1 ? There have been some broken migration script somewhere.
forgot to paste answer: uranus ~ # equery b /etc/init.d/checkroot [ Searching for file(s) /etc/init.d/checkroot in *... ] uranus ~ # uranus ~ # equery b /etc/init.d/checkfs [ Searching for file(s) /etc/init.d/checkfs in *... ] uranus ~ #
Are you still having issues with this, if so please ensure you post all relevant info such as udev version mdraid info, these will be key in resolving your problem.
Even after reverting to old scripts, can't repro.
Ha ha !!! Nothing at boot time, but, things in cron !!! Seems like some cron sent me an email: Service `checkfs' needs non existant service `checkroot' No clue why, or how. Probably logrotate that needed to restart some service after log rotation ? uranus init.d # /etc/init.d/munin-node restart * Caching service dependencies ... Service `checkfs' needs non existant service `checkroot' [ ok ] * Stopping munin-node ... [ ok ] * Starting munin-node ... [ ok ] uranus init.d # At the moment: uranus init.d # head checkfs #!/sbin/runscript # Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 depend() { need checkroot modules # need modules # modified by Doublehp } The first one is the original Gentoo line. The second one is the one I had for a few months to avoid having messages around. Now we have a proof the bug is still standing, I will reactivate the later one.
Hi Demaine, According to what you posted in comment #10, checkroot and checkfs are not owned by any package, so I don't know why they are still on your system at all. They should have both been removed when you upgraded from baselayout-1 to openrc. In comment #4, all of the dependencies on checkfs look like this: before checkfs fsck Since checkfs and fsck are both mentioned either of them will satisfy this. The code in crypto-loop looks like this: if [ -x /etc/init.d/root ]; then need root else need checkroot fi So, again, crypto-loop checks for both. You should be fine removing checkfs and checkroot. William