[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#791489: /sbin/reiserfsck is not included in initrd image



Package: initramfs-tools
Version: 0.120
Severity: grave

after recent upgrades, which triggered update-initramfs, i've got my system
unbootable, compalining that /sbin/reiserfsck can not be run.
i've dug into the problem, and found that binary isn't copied
by /usr/share/initramfs-tools/hooks/fsck. the latter has the following lines:

for type in $(get_fstypes | sort | uniq); do
        if [ "$type" = 'auto' ] ; then
                echo "Warning: couldn't identify filesystem type for fsck hook, ignoring."
                continue
        fi
+++        [ "$type" = "reiserfs" ] && copy_exec /sbin/reiserfsck

        prog="/sbin/fsck.${type}"
        if [ -h "$prog" ]; then
                link=$(readlink -f "$prog")
                copy_exec "$link"
                ln -s "$link" "${DESTDIR}/$prog"
        elif [ -x "$prog" ] ; then
                copy_exec "$prog"
        else
                echo "Warning: /sbin/fsck.${type} doesn't exist, can't install to initramfs, ignoring."
        fi
done

(line marked with +++ is added by me as a fix).
the behaviour is that if fsck.$type is binary, it copies it. if it's a link, it
copies linked file too. but fsck.reiserfs is not a binary, neither a symlink.
it's a wrapper script:

#! /bin/sh
# Treat the -y flag the same way other fsck.* instances do
ADD_OPTS=""
for opt
do
	case "$opt" in
		--)
			break
			;;
		-y)
			ADD_OPTS="-a"
			;;
	esac
done
# Be sure to invoke reiserfsck quitely for booting over slow consoles
exec /sbin/reiserfsck -q $ADD_OPTS "$@"

so we need to modify hook script like i did to fix this. maybe we also need to
check, whether other fs utils have such wrapper scripts, so their users won't
get stuck with the similar problem.


Reply to: