37 lines
934 B
Bash
37 lines
934 B
Bash
#!/bin/sh
|
|
#
|
|
# Derived from original /usr/share/initramfs-tools/hooks/fsck
|
|
# To correctly handle file system type detection of a physical partition in a union mounting root file system
|
|
|
|
. /usr/share/initramfs-tools/hooks/fsck $1
|
|
|
|
# HACK! HACK! HACK!
|
|
# Override original fstab_files()
|
|
# Use mtab instead of fstab
|
|
fstab_files()
|
|
{
|
|
echo /etc/mtab
|
|
}
|
|
|
|
get_fstypes_boot() {
|
|
get_fstype_fstab /host
|
|
}
|
|
|
|
for type in $(get_fstypes_boot | sort | uniq); do
|
|
if [ "$type" = 'auto' ] ; then
|
|
echo "Warning: couldn't identify filesystem type for (usr) fsck hook, ignoring."
|
|
continue
|
|
fi
|
|
|
|
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
|