]>
git.ipfire.org Git - people/jschlag/ipfire-2.x.git/blob - src/initscripts/init.d/checkfstab
2 ########################################################################
3 # Begin $rc_base/init.d/checkfstab
5 # Description : Check and repair fstab if the drivename has changed
7 # Authors : Arne Fitzenreiter - arne_f@ipfire.org
13 ########################################################################
20 #Skip if root is set by UUID
21 if (grep "root=UUID=" /proc
/cmdline
> /dev
/null
); then
24 boot_mesg
"Checking fstab bootdevice ..."
25 read CMDLINE
< /proc
/cmdline
26 ROOTPOS
=${CMDLINE%%root=*}
28 NEWROOT
=`echo ${CMDLINE:$ROOTPOS} | cut -d"=" -f2 | cut -d" " -f1`;
29 OLDBOOT
=`cat /etc/fstab | grep -m1 " / " | cut -d" " -f1 | cut -f1`;
30 OLDDRV
=${OLDBOOT::`expr length $OLDBOOT`-1}
31 NEWDRV
=${NEWROOT::`expr length $NEWROOT`-1}
32 if [ "$OLDDRV" == "$NEWDRV" ]; then
37 boot_mesg
"Warning! Bootdrive not match with fstab!"
39 boot_mesg
"Bootdrive: $NEWDRV"
40 boot_mesg
"fstab-entry: $OLDDRV"
42 if [ "${OLDDRV:0:4}" == "UUID" ]; then
43 #Short sleep because the kernel has not finished hardware detections
44 #and made many messages here and the password question is not readable
46 boot_mesg
"${FAILURE}Error OLD Bootdrive is already a UUID. Can't fix."
51 boot_mesg
"Attempt to repair it ..."
53 sed -i -e "s|$OLDDRV|$NEWDRV|g" /etc
/fstab
55 sed -i -e "s|$OLDDRV|$NEWDRV|g" /boot
/grub
/grub.conf
61 echo "Usage: ${0} {start}"
66 # End $rc_base/init.d/checkfstab