Your message dated Wed, 5 Feb 2014 10:16:55 +0100
with message-id <20140205091655.gl13...@ulrik.uio.no>
and subject line (fwd) Accepted sysvinit 2.88dsf-47 (source amd64 all)
has caused the Debian Bug report #734901,
regarding initscripts: More Proper Detection of "fastboot" Kernel Parameter
necessary
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 ow...@bugs.debian.org
immediately.)
--
734901: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=734901
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: initscripts
Version: 2.88dsf-45
Severity: normal
Dear maintainers,
during boot, Debian forces checking of hard disks/partitions, what is IMHO an
important thing to do. Since fsck during boot is not performed due to the
"i915.fastboot=1" kernel parameter, it seems adequate to set a higher
importance
to the issue, feel free to change that, but not running fsck might cause
serious
data loss.
For reference, my fstab entry for / is:
UUID=c501653f-ad06-43b5-90e1-8e8ff8e6f903 / ext4 user_xattr 0 1
but
$ LC_ALL=C LANG=C grep -i -w -s "fastboot" /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-3.10.26-dq67sw+ [...] i915.fastboot=1 [...]
returns "0" and tells checkfs.sh and checkroot.sh to skip the fs checks,
claiming "Fast boot enabled, so skipping file system check.":
$ grep -m1 "fastboot" /etc/init.d/checkfs.sh /etc/init.d/checkroot.sh
/etc/init.d/checkfs.sh: if [ -f /fastboot ] || grep -s -w -i "fastboot"
/proc/cmdline
/etc/init.d/checkroot.sh: if [ -f /fastboot ] || grep -s -w -i "fastboot"
/proc/cmdline
However, obviously "i915.fastboot=1" != "fastboot".
Regarding this excerpt from man grep:
-w, --word-regexp
Select only those lines containing matches that form whole
words. The test is that the matching substring must either be
at the beginning of the line, or preceded by a non-word
constituent character. Similarly, it must be either at the end
of the line or followed by a non-word constituent character.
Word-constituent characters are letters, digits, and the
underscore.
it seems to me that grep treats the [.=] characters as word constituent
characters. Grep may be broken in some way (?), it does not work.
LC_ALL=C LANG=C grep -i -s '\<fastboot\>' /proc/cmdline does not work either,
same behaviour; some strange unicode error (grep 2.15-2 and 2.12-2 affected),
or are [.=] characters part of the "letters" set? FYI, grep on an ubuntu 13.10
behaves the same regaring these characters.
As a workaround I have changed the line containing the grep command:
- if [ -f /fastboot ] || grep -s -w -i "fastboot" /proc/cmdline
+ if [ -f /fastboot ] || grep -s -i " fastboot" /proc/cmdline
which does the trick in this case. IMHO it should be save to assume the
preceeding space charakter for "fastboot" as a kernel parameter.
Maybe I did miss something, but I hope this could be helpful.
Best,
Sebastian
-- System Information:
Debian Release: jessie/sid
APT prefers unstable
APT policy: (501, 'unstable'), (501, 'testing'), (501, 'stable'), (500,
'proposed-updates'), (500, 'experimental'), (200, 'testing'), (200, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.10.26-dq67sw+ (SMP w/4 CPU cores)
Locale: LANG=de_DE.utf8, LC_CTYPE=de_DE.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages initscripts depends on:
ii coreutils 8.21-1
ii debianutils 4.4
ii libc6 2.17-97
ii lsb-base 4.1+Debian12
ii mount 2.20.1-5.5
ii sysv-rc 2.88dsf-45
ii sysvinit-utils 2.88dsf-45
Versions of packages initscripts recommends:
ii e2fsprogs 1.42.9-2
ii psmisc 22.20-1
initscripts suggests no packages.
-- Configuration Files:
/etc/default/rcS changed:
/etc/default/tmpfs changed:
RAMTMP=yes
/etc/init.d/checkfs.sh changed:
PATH=/sbin:/bin:/usr/bin
FSCK_LOGFILE=/var/log/fsck/checkfs
[ "$FSCKFIX" ] || FSCKFIX=no
.. /lib/init/vars.sh
.. /lib/lsb/init-functions
.. /lib/init/swap-functions.sh
do_start () {
# Trap SIGINT so that we can handle user interupt of fsck.
trap "" INT
# 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.
BAT=""
fscheck="yes"
if [ -f /fastboot ] || grep -s -i " fastboot" /proc/cmdline
then
[ "$fscheck" = yes ] && log_warning_msg "Fast boot enabled, so
skipping file system check."
fscheck=no
fi
#
# Check the rest of the file systems.
#
if [ "$fscheck" = yes ] && [ ! "$BAT" ] && [ "$FSCKTYPES" != "none" ]
then
# Execute swapon command again, in case there are lvm
# or md swap partitions. fsck can suck RAM.
swaponagain 'lvm and md'
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
[ "$(uname -m)" = s390x ] && spinner="" # This should go away
FSCKTYPES_OPT=""
[ "$FSCKTYPES" ] && FSCKTYPES_OPT="-t $FSCKTYPES"
handle_failed_fsck() {
log_failure_msg "File system check failed.
A log is being saved in ${FSCK_LOGFILE} if that location is writable.
Please repair the file system manually."
log_warning_msg "A maintenance shell will now be
started.
CONTROL-D will terminate this shell and resume system boot."
# Start a single user shell on the console
if ! sulogin $CONSOLE
then
log_failure_msg "Attempt to start maintenance
shell failed.
Continuing with system boot in 5 seconds."
sleep 5
fi
}
if [ "$VERBOSE" = no ]
then
log_action_begin_msg "Checking file systems"
logsave -s $FSCK_LOGFILE fsck $spinner -R -A $fix
$force $FSCKTYPES_OPT
FSCKCODE=$?
if [ "$FSCKCODE" -eq 32 ]
then
log_action_end_msg 1 "code $FSCKCODE"
log_warning_msg "File system check was
interrupted by user"
elif [ "$FSCKCODE" -gt 1 ]
then
log_action_end_msg 1 "code $FSCKCODE"
handle_failed_fsck
else
log_action_end_msg 0
fi
else
if [ "$FSCKTYPES" ]
then
log_action_msg "Will now check all file systems
of types $FSCKTYPES"
else
log_action_msg "Will now check all file systems"
fi
logsave -s $FSCK_LOGFILE fsck $spinner -V -R -A $fix
$force $FSCKTYPES_OPT
FSCKCODE=$?
if [ "$FSCKCODE" -eq 32 ]
then
log_warning_msg "File system check was
interrupted by user"
elif [ "$FSCKCODE" -gt 1 ]
then
handle_failed_fsck
else
log_success_msg "Done checking file systems.
A log is being saved in ${FSCK_LOGFILE} if that location is writable."
fi
fi
fi
rm -f /fastboot /forcefsck 2>/dev/null
}
case "$1" in
start|"")
do_start
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
# No-op
;;
*)
echo "Usage: checkfs.sh [start|stop]" >&2
exit 3
;;
esac
:
/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
do_start () {
# Trap SIGINT so that we can handle user interrupt of fsck.
trap "" INT
#
# 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_fstab
#
# 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 /run.
#
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 /run/rootdev \
&& mknod -m 600 /run/rootdev b
${rdev%:*} ${rdev#*:} \
&& [ -e /run/rootdev ]
then
rootdev=/run/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 /run.
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.
#
# See if we want to check the root file system.
#
FSCKCODE=0
if [ -f /fastboot ] || grep -s -i " fastboot" /proc/cmdline
then
[ "$rootcheck" = yes ] && log_warning_msg "Fast boot enabled,
so skipping root file system check."
rootcheck=no
fi
if which findmnt >/dev/null 2>&1
then
if [ "$(findmnt -f -n -o FSTYPE /)" = "btrfs" ]
then
[ "$rootcheck" = yes ] && log_warning_msg "btrfs root
detected, so skipping root file system check."
rootcheck=no
fi
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/s390x special case should go away.
if [ "${KERNEL}:${MACHINE}" = Linux:s390x ]
then
spinner=""
fi
if [ "$VERBOSE" = no ]
then
log_action_begin_msg "Checking root file system"
logsave -s $FSCK_LOGFILE fsck $spinner $force $fix -t
$roottype $rootdev
FSCKCODE=$?
if [ "$FSCKCODE" = 0 ]
then
log_action_end_msg 0
else
log_action_end_msg 1 "code $FSCKCODE"
fi
else
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
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" -eq 32 ]
then
log_warning_msg "File system check was interrupted by user"
elif [ "$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
# If possible, migrate /etc/mtab to be a symlink to
# /proc/mounts. Note that not all systems e.g. Hurd currently
# support this.
if [ "$rootmode" != "ro" ]; then
mtab_migrate
fi
if selinux_enabled && [ -x /sbin/restorecon ] && [ -r /etc/mtab ]
then
restorecon /etc/mtab
fi
#
# Remove /run/rootdev if we created it.
#
rm -f /run/rootdev
# Update mount options for mounts created in early boot
# S01mountkernfs.sh
/etc/init.d/mountkernfs.sh reload
# S03mountdevsubfs.sh
/etc/init.d/mountdevsubfs.sh reload
}
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 ---
Version: 2.88dsf-47
Typo in the changelog caused the upload to not close this bug.
Closing it now.
----- Forwarded message from Petter Reinholdtsen <p...@debian.org> -----
Date: Tue, 04 Feb 2014 12:18:45 +0000
From: Petter Reinholdtsen <p...@debian.org>
To: debian-devel-chan...@lists.debian.org
Subject: Accepted sysvinit 2.88dsf-47 (source amd64 all)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Format: 1.8
Date: Tue, 04 Feb 2014 12:55:45 +0100
Source: sysvinit
Binary: sysvinit sysvinit-core sysvinit-utils sysv-rc initscripts bootlogd
Architecture: source amd64 all
Version: 2.88dsf-47
Distribution: unstable
Urgency: low
Maintainer: Debian sysvinit maintainers
<pkg-sysvinit-de...@lists.alioth.debian.org>
Changed-By: Petter Reinholdtsen <p...@debian.org>
Description:
bootlogd - daemon to log boot messages
initscripts - scripts for initializing and shutting down the system
sysv-rc - System-V-like runlevel change mechanism
sysvinit - System-V-like init utilities
sysvinit-core - System-V-like init utilities
sysvinit-utils - System-V-like utilities
Changes:
sysvinit (2.88dsf-47) unstable; urgency=low
.
[ Petter Reinholdtsen ]
* Make fastboot detection more robust (Closing: #734901).
Checksums-Sha1:
7171e8a7badb6370c52d7aab81a7ff43c544b98f 1777 sysvinit_2.88dsf-47.dsc
6f38579956602f2e65c27479d44bfca24dbbdd11 169180
sysvinit_2.88dsf-47.debian.tar.xz
e2bb93ab0c4c2e58dd0793952c9dea05e5475f1c 81050 sysvinit_2.88dsf-47_amd64.deb
09d0b06541a76c9626bd0c2604783038e33515dc 128354
sysvinit-core_2.88dsf-47_amd64.deb
5e183ed8fecf91d526f8ff6005ca884677f7a6c0 93446
sysvinit-utils_2.88dsf-47_amd64.deb
5d88079f3e2edadee905fffef35b2ce654583efd 79794 sysv-rc_2.88dsf-47_all.deb
fb7698ed039ae0520cdda18754851a39925f9005 84800 initscripts_2.88dsf-47_amd64.deb
c83dd087700f474f3a177ffcfea81a93c6e573cf 56246 bootlogd_2.88dsf-47_amd64.deb
Checksums-Sha256:
2c0d1caed1b40fe204932b0e7797ca8c50937dd149be3d9b5e851e3e30863893 1777
sysvinit_2.88dsf-47.dsc
030baefc2d6d4838eb75af956037651d562574f9659d17f7df2e454e0b52e1a0 169180
sysvinit_2.88dsf-47.debian.tar.xz
719bbf5fcffb67ae6fdd9edebbf75a04150c7a2f09362789a1e82609598494c7 81050
sysvinit_2.88dsf-47_amd64.deb
51382fde2dfdff40ee11ecafb973809558b64c0e58225ca0aaa6fcbeb625a0d8 128354
sysvinit-core_2.88dsf-47_amd64.deb
4a93e79730e83a649efe4204cfdee0ea2525f81e75e837076ac90ba6ebf9373a 93446
sysvinit-utils_2.88dsf-47_amd64.deb
5c2f97a1fd79b09477597be29a82bd84ec172d692582a50edd0e28b11bb06d4f 79794
sysv-rc_2.88dsf-47_all.deb
5f15dfb257f5f9f58d44bafb077b593685de081a4863cb3e5debff55f615bb7b 84800
initscripts_2.88dsf-47_amd64.deb
ce6b156be9519ca6218ccbe6a6f0a5b17d0769a43965800f9ace7f2e101ddc0e 56246
bootlogd_2.88dsf-47_amd64.deb
Files:
3a6e48416ce3bda568c2c5e8d222f6d0 1777 admin required sysvinit_2.88dsf-47.dsc
51a9cb4f8b1eb96df0ef88428f6f8ca9 169180 admin required
sysvinit_2.88dsf-47.debian.tar.xz
811c79eebea1f613704c9c0bd2149d73 81050 admin required
sysvinit_2.88dsf-47_amd64.deb
b978d8465760841474280d998cabe4dc 128354 admin required
sysvinit-core_2.88dsf-47_amd64.deb
8f85ebf8004d984f09a66913b5ad5534 93446 admin required
sysvinit-utils_2.88dsf-47_amd64.deb
5426f415158040ebf439d6eeebfdfb95 79794 admin required
sysv-rc_2.88dsf-47_all.deb
bcf016594bf34289920cac13919bb952 84800 admin required
initscripts_2.88dsf-47_amd64.deb
9f909d85226356faa8a8049622583622 56246 admin optional
bootlogd_2.88dsf-47_amd64.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iD8DBQFS8NZa20zMSyow1ykRAo2QAKDj4lApvSObs8Nxpz9WGZucAwd6qgCfRUsX
tXj2bNxC1P8f/L9nJfdl47c=
=9ev5
-----END PGP SIGNATURE-----
--
To UNSUBSCRIBE, email to debian-devel-changes-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1waexh-0000r1...@franck.debian.org
----- End forwarded message -----
--- End Message ---