Your message dated Tue, 26 Jun 2012 22:15:13 +0100
with message-id <[email protected]>
and subject line Close
has caused the Debian Bug report #581207,
regarding initscripts: checkroot.sh check failure
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
581207: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=581207
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: initscripts
Version: 2.87dsf-10
Severity: important

Root filesystem check fails. Standart fsck.ext4 help message is being
printed (with list of options), fs mount ro, and root password is being
asked. 
The command, which fails: 
logsave -s $FSCK_LOGFILE fsck $spinner $force $fix -t $roottype $rootdev
The problem is that $roottype and $rootdev are "none". Both. 

The kernel is built from debian linux-source package, without initrd
(make localyes config)


-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (500, 'testing'), (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.32 (SMP w/2 CPU cores)
Locale: LANG=ru_RU.UTF-8, LC_CTYPE=ru_RU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages initscripts depends on:
ii  coreutils                     7.5-6      GNU core utilities
ii  debianutils                   3.2.2      Miscellaneous utilities specific t
ii  libc6                         2.10.2-6   Embedded GNU C Library: Shared lib
ii  lsb-base                      3.2-23.1   Linux Standard Base 3.2 init scrip
ii  mount                         2.16.2-0   Tools for mounting and manipulatin
ii  sysv-rc                       2.87dsf-10 System-V-like runlevel change mech
ii  sysvinit-utils                2.87dsf-10 System-V-like utilities

Versions of packages initscripts recommends:
ii  e2fsprogs                     1.41.11-1  ext2/ext3/ext4 file system utiliti
ii  psmisc                        22.11-1    utilities that use the proc file s

initscripts suggests no packages.

-- Configuration Files:
/etc/init.d/checkroot.sh changed:
PATH=/sbin:/bin:/usr/bin
FSCK_LOGFILE=/var/log/fsck/checkroot
[ "$FSCKFIX" ] || FSCKFIX=no
[ "$SULOGIN" ] || SULOGIN=no
.. /lib/init/vars.sh
.. /lib/lsb/init-functions
.. /lib/init/mount-functions.sh
.. /lib/init/splash-functions-base
.. /lib/init/usplash-fsck-functions.sh
do_start () {
        #
        # Set SULOGIN in /etc/default/rcS to yes if you want a sulogin to
        # be spawned from this script *before anything else* with a timeout,
        # like sysv does.
        #
        [ "$SULOGIN" = yes ] && sulogin -t 30 $CONSOLE
        KERNEL="$(uname -s)"
        MACHINE="$(uname -m)"
        #
        # Read /etc/fstab, looking for:
        # 1) The root filesystem, resolving LABEL=*|UUID=* entries to the
        #       device node,
        # 2) Swap that is on a md device or a file that may be on a md 
        #       device,
        # 3) The mount parameters for a devfs filesystem.
        #
        exec 9<&0 </etc/fstab
        fstabroot=/dev/root
        rootdev=none
        roottype=none
        rootopts=defaults
        rootmode=rw
        rootcheck=no
        swap_on_lv=no
        swap_on_file=no
        devfs=
        while read DEV MTPT FSTYPE OPTS DUMP PASS JUNK
        do
                case "$DEV" in
                  ""|\#*)
                        continue;
                        ;;
                  /dev/mapper/*)
                        [ "$FSTYPE" = "swap" ] && swap_on_lv=yes
                        ;;
                  /dev/*)
                        ;;
                  LABEL=*|UUID=*)
                        if [ "$MTPT" = "/" ] && [ -x /sbin/findfs ]
                        then
                                DEV="$(findfs "$DEV")"
                        fi
                        ;;
                  /*)
                        [ "$FSTYPE" = "swap" ] && swap_on_file=yes
                        ;;
                  *)
                        # Devfs definition ?
                        if [ "$FSTYPE" = "devfs" ] && [ "$MTPT" = "/dev" ] && 
mountpoint -q /dev
                        then
                                devfs="-t $FSTYPE $DEV $MTPT"
                        fi
                        ;;
                esac
                [ "$MTPT" != "/" ] && continue
                rootdev="$DEV"
                fstabroot="$DEV"
                rootopts="$OPTS"
                roottype="$FSTYPE"
                ( [ "$PASS" != 0 ] && [ "$PASS" != "" ]   ) && rootcheck=yes
                ( [ "$FSTYPE" = "nfs" ] || [ "$FSTYPE" = "nfs4" ] ) && 
rootcheck=no
                case "$OPTS" in
                  ro|ro,*|*,ro|*,ro,*)
                        rootmode=ro
                        ;;
                esac
        done
        exec 0<&9 9<&-
        #
        # Activate the swap device(s) in /etc/fstab. This needs to be done
        # before fsck, since fsck can be quite memory-hungry.
        #
        ENABLE_SWAP=no
        case "$KERNEL" in
          Linux)
                if [ "$NOSWAP" = yes ]
                then
                        [ "$VERBOSE" = no ] || log_warning_msg "Not activating 
swap as requested via bootoption noswap."
                        ENABLE_SWAP=no
                else
                        if [ "$swap_on_lv" = yes ]
                        then
                                [ "$VERBOSE" = no ] || log_warning_msg "Not 
activating swap on logical volume."
                        elif [ "$swap_on_file" = yes ]
                        then
                                [ "$VERBOSE" = no ] || log_warning_msg "Not 
activating swap on swapfile."
                        else
                                ENABLE_SWAP=yes
                        fi
                fi
                ;;
          *)
                ENABLE_SWAP=yes
                ;;
        esac
        if [ "$ENABLE_SWAP" = yes ]
        then
                if [ "$VERBOSE" = no ]
                then
                        log_action_begin_msg "Activating swap"
                        swapon -a -e >/dev/null 2>&1
                        log_action_end_msg $?
                else
                        log_daemon_msg "Activating swap"
                        swapon -a -v
                        log_end_msg $?
                fi
        fi
        #
        # Does the root device in /etc/fstab match with the actual device ?
        # If not we try to use the /dev/root alias device, and if that
        # fails we create a temporary node in /lib/init/rw.
        #
        if [ "$rootcheck" = yes ]
        then
                ddev="$(mountpoint -qx $rootdev)"
                rdev="$(mountpoint -d /)"
                if [ "$ddev" != "$rdev" ] && [ "$ddev" != "4:0" ]
                then
                        if [ "$(mountpoint -qx /dev/root)" = "4:0" ]
                        then
                                rootdev=/dev/root
                        else
                                if \
                                        rm -f /lib/init/rw/rootdev \
                                        && mknod -m 600 /lib/init/rw/rootdev b 
${rdev%:*} ${rdev#*:} \
                                        && [ -e /lib/init/rw/rootdev ]
                                then
                                        rootdev=/lib/init/rw/rootdev
                                else
                                        rootfatal=yes
                                fi
                        fi
                fi
        fi
        #
        # Bother, said Pooh.
        #
        if [ "$rootfatal" = yes ]
        then
                log_failure_msg "The device node $rootdev for the root 
filesystem is missing or incorrect 
or there is no entry for the root filesystem listed in /etc/fstab. 
The system is also unable to create a temporary node in /lib/init/rw. 
This means you have to fix the problem manually."
                log_warning_msg "A maintenance shell will now be started. 
CONTROL-D will terminate this shell and restart the system."
                # Start a single user shell on the console
                if ! sulogin $CONSOLE
                then
                        log_failure_msg "Attempt to start maintenance shell 
failed. 
Will restart in 5 seconds."
                        sleep 5
                fi
                [ "$VERBOSE" = no ] || log_action_msg "Will now restart"
                reboot -f
        fi
        # See if we're on AC Power.  If not, we're not gonna run our
        # check.  If on_ac_power (in /usr/) is unavailable, behave as
        # before and check all file systems needing it.
        rootcheck=yes
        #
        # See if we want to check the root file system.
        #
        FSCKCODE=0
        if [ -f /fastboot ] || grep -s -w -i "fastboot" /proc/cmdline
        then
                [ "$rootcheck" = yes ] && log_warning_msg "Fast boot enabled, 
so skipping root file system check."
                rootcheck=no
        fi
        if [ "$rootcheck" = yes ]
        then
                #
                # Ensure that root is quiescent and read-only before fsck'ing.
                #
                # mount -n -o remount,ro / would be the correct syntax but
                # mount can get confused when there is a "bind" mount defined
                # in fstab that bind-mounts "/" somewhere else.
                #
                # So we use mount -n -o remount,ro $rootdev / but that can
                # fail on older kernels on sparc64/alpha architectures due
                # to a bug in sys_mount().
                #
                # As a compromise we try both.
                #
                if \
                        ! mount    -n -o remount,ro              $rootdev /     
         \
                        && ! mount -n -o remount,ro -t dummytype $rootdev /  
2>/dev/null \
                        && ! mount -n -o remount,ro                       /  
2>/dev/null
                then
                        log_failure_msg "Cannot check root file system because 
it is not mounted read-only."
                        rootcheck=no
                fi
        fi
        #
        # The actual checking is done here.
        #
        if [ "$rootcheck" = yes ]
        then
                if [ -f /forcefsck ] || grep -s -w -i "forcefsck" /proc/cmdline
                then
                        force="-f"
                else
                        force=""
                fi
                if [ "$FSCKFIX" = yes ]
                then
                        fix="-y"
                else
                        fix="-a"
                fi
                spinner="-C"
                case "$TERM" in
                  dumb|network|unknown|"")
                        spinner="" ;;
                esac
                # This Linux/s390 special case should go away.
                if [ "${KERNEL}:${MACHINE}" = Linux:s390 ]
                then
                        spinner=""
                fi
                
                if [ "$VERBOSE" = no ]
                then
                        log_action_begin_msg "Checking root file system"
                        if [ "$roottype" = "ext2" -o "$roottype" = "ext3" -o 
"$roottype" = "ext4" ] && usplash_running; then
                            PROGRESS_FILE=`mktemp -p /lib/init/rw` || 
PROGRESS_FILE=/lib/init/rw/checkroot_fsck
                            set -m
                            logsave -s $FSCK_LOGFILE fsck -C3 $force $fix -t 
$roottype $rootdev >/dev/console 2>&1 3>$PROGRESS_FILE &
                            set +m
                            usplash_progress "$PROGRESS_FILE"
                            rm -f $PROGRESS_FILE
                        else
                            splash_start_indefinite
                            log_failure_msg "logsave -s $FSCK_LOGFILE fsck 
$spinner $force $fix -t $roottype $rootdev"
                            FSCKCODE=$?
                            splash_stop_indefinite
                        fi
                        if [ "$FSCKCODE" = 0 ]
                        then
                                log_action_end_msg 0
                        else
                                log_action_end_msg 1 "code $FSCKCODE"
                        fi
                else
                        splash_start_indefinite
                        log_daemon_msg "Will now check root file system"
                        logsave -s $FSCK_LOGFILE fsck $spinner $force $fix -V 
-t $roottype $rootdev
                        FSCKCODE=$?
                        log_end_msg $FSCKCODE
                        splash_stop_indefinite
                fi
        fi
        #
        # If there was a failure, drop into single-user mode.
        #
        # NOTE: "failure" is defined as exiting with a return code of
        # 4 or larger. A return code of 1 indicates that file system
        # errors were corrected but that the boot may proceed. A return
        # code of 2 or 3 indicates that the system should immediately reboot.
        #
        if [ "$FSCKCODE" -gt 3 ]
        then
                # Surprise! Re-directing from a HERE document (as in "cat << 
EOF")
                # does not work because the root is currently read-only.
                log_failure_msg "An automatic file system check (fsck) of the 
root filesystem failed. 
A manual fsck must be performed, then the system restarted. 
The fsck should be performed in maintenance mode with the 
root filesystem mounted in read-only mode."
                log_warning_msg "The root filesystem is currently mounted in 
read-only mode. 
A maintenance shell will now be started. 
After performing system maintenance, press CONTROL-D 
to terminate the maintenance shell and restart the system."
                # Start a single user shell on the console
                if ! sulogin $CONSOLE
                then
                        log_failure_msg "Attempt to start maintenance shell 
failed. 
Will restart in 5 seconds."
                        sleep 5
                fi
                [ "$VERBOSE" = no ] || log_action_msg "Will now restart"
                reboot -f
        elif [ "$FSCKCODE" -gt 1 ]
        then
                log_failure_msg "The file system check corrected errors on the 
root partition 
but requested that the system be restarted."
                log_warning_msg "The system will be restarted in 5 seconds."
                sleep 5
                [ "$VERBOSE" = no ] || log_action_msg "Will now restart"
                reboot -f
        fi
        #
        # Remount root to final mode (rw or ro).
        #
        # See the comments above at the previous "mount -o remount"
        # for an explanation why we try this twice.
        #
        if ! mount -n -o remount,$rootopts,$rootmode $fstabroot / 2>/dev/null
        then
                mount -n -o remount,$rootopts,$rootmode /
        fi
        #
        # We only create/modify /etc/mtab if the location where it is
        # stored is writable. If /etc/mtab is a symlink into /proc/
        # then it is not writable.
        #
        INIT_MTAB_FILE=no
        MTAB_PATH="$(readlink -f /etc/mtab || :)"
        case "$MTAB_PATH" in
          /proc/*)
                ;;
          /*)
                if touch "$MTAB_PATH" >/dev/null 2>&1
                then
                        :> "$MTAB_PATH"
                        rm -f ${MTAB_PATH}~
                        INIT_MTAB_FILE=yes
                fi
                ;;
          "")
                [ -L /etc/mtab ] && MTAB_PATH="$(readlink /etc/mtab)"
                if [ "$MTAB_PATH" ]
                then
                        log_failure_msg "Cannot initialize ${MTAB_PATH}."
                else
                        log_failure_msg "Cannot initialize /etc/mtab."
                fi
                ;;
          *)
                log_failure_msg "Illegal mtab location '${MTAB_PATH}'."
                ;;
        esac
        if [ "$INIT_MTAB_FILE" = yes ]
        then
                [ "$roottype" != none ] &&
                        mount -f -o $rootopts -t $roottype $fstabroot /
                [ "$devfs" ] && mount -f $devfs
        fi
        #
        # Remove /lib/init/rw/rootdev if we created it.
        #
        rm -f /lib/init/rw/rootdev
}
do_status () {
        # If / is read-write or swap is enabled, this script have done
        # its job.
        rootrw=false
        swapon=false
        if [ -f /etc/mtab ] ; then
            if grep " / " /etc/mtab |grep -q rw ; then
                rootrw=true
            fi
        fi
        if [ -f /proc/swaps ] ; then
            if [ "$(cat /proc/swaps |grep -v ^Filename)" ] ; then
                swapon=true
            fi
        fi
        if [ true = "$rootrw" ] || [ true = "$swapon" ] ; then
                return 0
        else
                return 4
        fi
}
case "$1" in
  start|"")
        do_start
        ;;
  restart|reload|force-reload)
        echo "Error: argument '$1' not supported" >&2
        exit 3
        ;;
  stop)
        # No-op
        ;;
  status)
        do_status
        exit $?
        ;;
  *)
        echo "Usage: checkroot.sh [start|stop]" >&2
        exit 3
        ;;
esac
:


-- no debconf information



--- End Message ---
--- Begin Message ---
Closing a non-bug

-- 
  .''`.  Roger Leigh
 : :' :  Debian GNU/Linux    http://people.debian.org/~rleigh/
 `. `'   schroot and sbuild  http://alioth.debian.org/projects/buildd-tools
   `-    GPG Public Key      F33D 281D 470A B443 6756 147C 07B3 C8BC 4083 E800


--- End Message ---
_______________________________________________
Pkg-sysvinit-devel mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-sysvinit-devel

Reply via email to