#!/bin/sh #INIT 20 [[ $1 = autostart ]] || exit 0 # activate swap [ -x /sbin/swapon ] && { swapon -a; } # activate any logical volumes [ -x /usr/sbin/lvm ] && { lvm vgscan; lvm vgchange -ay; } rootdisk=$(readlink /dev/root) # strip partitions (f.e. mmcblk0p2, sda2, ..) rootdisk=${rootdisk%p*} rootdisk=${rootdisk%[1-9]} rootparts=$(grep "^/dev/${rootdisk}" /etc/fstab|awk '{ print $1 }') for part in $rootparts; do fstype=$(grep "^$part" /etc/fstab|awk '{ print $3 }') mnt=$(grep "^$part" /etc/fstab|awk '{ print $2 }') [ -x /usr/sbin/fsck.$fstype ] && { logger -t fs -s "Checking $fstype filesystem on $part" fsck -p -t $fstype $part } grep $fstype /proc/filesystems >/dev/null 2>&1 if [ $? -eq 0 ];then mount $mnt else logger -t fs -s "Filesystem $fstype not in kernel" exit 1 fi done exit 0