Messages in this thread |  | | Date | Wed, 31 Jul 1996 23:57:07 -0500 | From | Brian Raymond Doherty <> | Subject | Problems umounting root fs |
| |
Whenever I do a proper shutdown on my system (using the attached rc.0/rc.6 script) there is always one inode that ends up with zero dtime. I know this since (now that I have discovered the problem) I have set up my rc.S to force an fsck on the fs every reboot. I am posting this problem here since the script properly syncs and umounts the fs, and thus I suspect that this is a kernel-level problem. Has anyone else seen this problem? Am I just doing something uninformed (as opposed to stupid :) )?
Thanks.
B -- --------------------------------------------------------------------------- Brian R. Doherty | "You know, I bet a funny thing about driving a 6320 S. Main St. | car off a cliff is, while you're in midair, you Houston, TX 77006 | still hit those brakes! Hey, better try the doherty@rice.edu | emergency brake!" -- Jack Handey #! /bin/sh # # rc.6 This file is executed by init when it goes into runlevel # 0 (halt) or runlevel 6 (reboot). It kills all processes, # unmounts file systems and then either halts or reboots. # # Version: @(#)/etc/rc.d/rc.6 1.50 1994-01-15 # # Author: Miquel van Smoorenburg <miquels@drinkel.nl.mugnet.org> # Modified by: Patrick J. Volkerding, <volkerdi@ftp.cdrom.com> #
# Set the path. PATH=/sbin:/etc:/bin:/usr/bin
# # Set linefeed mode to avoid staircase effect. # stty onlcr
echo "Running shutdown script $0:"
# Find out how we were called. case "$0" in *0) message="The system is halted." command="halt" ;; *6) message="Rebooting." command=reboot ;; *) echo "$0: call me as \"rc.0\" or \"rc.6\" please!" exit 1 ;; esac
# Kill all processes. # INIT is supposed to handle this entirely now, but this didn't always # work correctly without this second pass at killing off the processes. # Since INIT already notified the user that processes were being killed, # we'll avoid echoing this info this time around. if [ "$1" != "fast" ]; then # shutdown did not already kill all processes # echo # echo "Sending all processes the TERM signal." killall5 -15 # echo -n "Waiting for processes to terminate" # for loop in 0 1 2 3 4 5 6 7 ; do sleep 1 # echo -n "." # done # echo # echo "Sending all processes the KILL signal." killall5 -9 fi
# Try to turn off quota and accounting. if [ -x /usr/sbin/quotaoff ] then echo "Turning off quota." /usr/sbin/quotaoff -a fi if [ -x /sbin/accton ] then echo "Turning off accounting." /sbin/accton fi
# Before unmounting file systems write a reboot or halt record to wtmp. $command -w
# Save localtime [ -e /usr/lib/zoneinfo/localtime ] && cp /usr/lib/zoneinfo/localtime /etc
# Asynchronously unmount any remote filesystems: echo "Unmounting remote filesystems." umount -a -tnfs & sleep 1
# Turn off swap, then unmount local file systems. echo "Turning off swap." swapoff -a echo "Unmounting local file systems." sync umount -a -tnonfs # Don't remount UMSDOS root volumes: if [ ! "`mount | head -1 | cut -d ' ' -f 5`" = "umsdos" ]; then mount -n -o remount,ro / fi
# See if this is a powerfail situation. if [ -f /etc/power_is_failing ]; then echo "Turning off UPS, bye." /usr/sbin/powerd -q exit 1 fi
# Now halt or reboot. echo "$message" sleep 1 [ ! -f /etc/fastboot ] && echo "On the next boot fsck will be FORCED." $command -f
|  |