|
|
#!/bin/sh # # --- ROCK-COPYRIGHT-NOTE-BEGIN --- # # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # Please add additional copyright information _after_ the line containing # the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by # the ./scripts/Create-CopyPatch script. Do not edit this copyright text! # # ROCK Linux: rock-src/package/base/sysfiles/system.init # ROCK Linux is Copyright (C) 1998 - 2006 Clifford Wolf # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. A copy of the GNU General Public # License can be found at Documentation/COPYING. # # Many people helped and are helping developing ROCK Linux. Please # have a look at http://www.rocklinux.org/ and the Documentation/TEAM # file for details. # # --- ROCK-COPYRIGHT-NOTE-END --- # # Desc: Mounting local filesystems # Runlevel: 05 rcX rc1 rc2 rc3 rc4 rc5 #
main_begin block_begin(start, `Checking file systems.') fsck -A -C -a ; fsckrc=$? if [ $(( $fsckrc & ~3 )) != 0 ] ; then echo " **" echo " ** Filesystem check failed (returncode=$fsckrc)." echo " ** Please repair the broken disk(s) manually." echo " **" sulogin -t 600 /dev/console umount -adrv ; /sbin/reboot -d -f while true ; do sleep 1 ; done elif [ $(( $fsckrc & 2 )) != 0 ] ; then for x in 10 9 8 7 6 5 4 3 2 ; do echo -en "\rSystem reboot in $x seconds ... " sleep 1 done ; echo -e "\rSystem reboot now! " umount -adrv ; /sbin/reboot -d -f while true ; do sleep 1 ; done fi dnl if [ -s /etc/lvmtab ]; then block_split(`Activating volume groups.') check(`/sbin/vgchange -ay') fi dnl block_split(`Mounting local file systems.') check(`mount -n -o remount,rw /') rootdev="/dev/$(ls -l /dev/root 2> /dev/null | sed 's,.* -> ,,')" if [ "$rootdev" = "/dev/" ]; then rootdev="$( sed 's, ,\n,g' < /proc/cmdline | \ grep ^root= | cut -f2- -d= )" [ -z "$rootdev" ] && rootdev="/dev/root" fi check(`grep -v "^rootfs " /proc/mounts | \ sed "s,^/dev/root ,$rootdev ," > /etc/mtab') check(`mount -a -t nocoda,nfs,devfs,proc,sysfs') block_end
block_begin(stop, `Remounting sync/ro and unmounting filesystems.') cut -d' ' -f-3 /etc/mtab /proc/mounts | sort -k2 -u -r | \ while read dev dir fs ; do [ "$dir" = "/" ] && continue [ "$dir" = "/dev" ] && continue [ "$dir" = "/dev/shm" ] && continue [ "$dir" = "/proc" ] && continue [ "$dir" = "/sys" ] && continue [ "$dir" = "/tmp" ] && continue echo "Unmounting $dev on $dir ($fs)." mount -o remount,sync $dir mount -o remount,ro $dir umount -d $dir done dnl block_split(`Unmounting remaining file systems.') grep -E -v '^none (/|[a-z]+:) ' /proc/mounts > /etc/mtab sync ; sleep 1 ; sync umount -vdnra -t nodevfs,proc,sysfs,shm mount -vn -o remount,sync / mount -vn -o remount,ro / sleep 1 ; sync ; sleep 1 block_end main_end
|