diff options
Diffstat (limited to 'init.d/checkroot')
-rwxr-xr-x | init.d/checkroot | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/init.d/checkroot b/init.d/checkroot deleted file mode 100755 index 613f88a..0000000 --- a/init.d/checkroot +++ /dev/null @@ -1,124 +0,0 @@ -#!/sbin/runscript -# Copyright 1999-2005 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -depend() { - before * -} - -start() { - local retval=0 - - if [[ ! -f /fastboot && -z ${CDBOOT} ]] && ! is_net_fs / ; then - if touch -c / >& /dev/null ; then - ebegin "Remounting root filesystem read-only" - mount -n -o remount,ro / - eend $? - fi - - if [[ -f /forcefsck ]] || get_bootparam "forcefsck" ; then - ebegin "Checking root filesystem (full fsck forced)" - fsck -C -a -f / - # /forcefsck isn't deleted because checkfs needs it. - # it'll be deleted in that script. - retval=$? - else - # Obey the fs_passno setting for / (see fstab(5)) - # - find the / entry - # - make sure we have 6 fields - # - see if fs_passno is something other than 0 - if [[ -n $(awk '($1 ~ /^(\/|UUID|LABEL)/ && $2 == "/" \ - && NF == 6 && $6 != 0) { print }' /etc/fstab) ]] - then - ebegin "Checking root filesystem" - fsck -C -T -a / - retval=$? - else - ebegin "Skipping root filesystem check (fstab's passno == 0)" - retval=0 - fi - fi - - if [[ ${retval} -eq 0 ]] ; then - eend 0 - elif [[ ${retval} -eq 1 ]] ; then - ewend 1 "Filesystem repaired" - elif [[ ${retval} -eq 2 || ${retval} -eq 3 ]] ; then - ewend 1 "Filesystem repaired, but reboot needed!" - echo -ne "\a"; sleep 1; echo -ne "\a"; sleep 1 - echo -ne "\a"; sleep 1; echo -ne "\a"; sleep 1 - ewarn "Rebooting in 10 seconds ..." - sleep 10 - einfo "Rebooting" - /sbin/reboot -f - else - if [[ ${RC_FORCE_AUTO} == "yes" ]] ; then - eend 2 "Rerunning fsck in force mode" - fsck -y -C -T -a / - else - eend 2 "Filesystem couldn't be fixed :(" - /sbin/sulogin ${CONSOLE} - fi - einfo "Unmounting filesystems" - /bin/mount -a -o remount,ro &> /dev/null - einfo "Rebooting" - /sbin/reboot -f - fi - fi - - # Should we mount root rw ? - if mount -vf -o remount / 2> /dev/null | \ - awk '{ if ($6 ~ /rw/) exit 0; else exit 1; }' - then - ebegin "Remounting root filesystem read/write" - mount -n -o remount,rw / &> /dev/null - if [[ $? -ne 0 ]] ; then - eend 2 "Root filesystem could not be mounted read/write :(" - if [[ ${RC_FORCE_AUTO} != "yes" ]] ; then - /sbin/sulogin ${CONSOLE} - fi - else - eend 0 - fi - fi - - if [[ ${BOOT} == "yes" ]] ; then - local x= - local y= - - # - # Create /etc/mtab - # - - # Don't create mtab if /etc is readonly - if ! touch /etc/mtab 2> /dev/null ; then - ewarn "Skipping /etc/mtab initialization (ro root?)" - return 0 - fi - - # Clear the existing mtab - > /etc/mtab - - # Add the entry for / to mtab - mount -f / - - # Don't list root more than once - awk '$2 != "/" {print}' /proc/mounts >> /etc/mtab - - # Now make sure /etc/mtab have additional info (gid, etc) in there - for x in $(awk '{ print $2 }' /proc/mounts | sort -u) ; do - for y in $(awk '{ print $2 }' /etc/fstab) ; do - if [[ ${x} == ${y} ]] ; then - mount -f -o remount $x - continue - fi - done - done - - # Remove stale backups - rm -f /etc/mtab~ /etc/mtab~~ - fi -} - - -# vim:ts=4 |