Messages in this thread | | | Date | Tue, 06 Jan 1998 19:57:17 +0100 | From | Alessandro Suardi <> | Subject | Re: nfs client error w/2.1.76 |
| |
Daniel Quinlan wrote: > > kwrohrer@enteract.com writes: > > > As I was rebooting my NFS server, I got plenty of: > > > > nfs_revalidate_inode: getattr failed, error=-111 > > nfs: RPC call returned error 111 > > RPC: task of released request still queued! > > RPC: (task is on xprt_pending) > > You're probably using RedHat. portmap isn't started until after NFS > is running, which breaks at some recent point in the 2.1 series. > portmap should be started right after basic networking. Try this: > > # cd /etc/rc.d/rc3.d > # mv S40portmap S12portmap > # reboot >
That won't do. I am using a 4.1 RedHat baseline, and the problem is not with Kxx and Sxx scripts -- they're OK. The problem is that you are using init.d/nfs to shut down knfs stuff, and that would miss a few things. Since I am running both 2.0.xx and 2.1.xx I have now set up scripts so that booting 2.1 I'll get knfsd & friends, while booting 2.0 I'll get rpc.nfsd & friends. Here's my /etc/rc.d/init.d/knfs:
======================================================================= #!/bin/sh # # knfs This shell script takes care of starting and stopping # the *kernel* NFS services. Later we might add NIS too. # # Author: Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org> # Modified for RHS Linux by Damien Neil # Modified for kernel NFS by AS #
# Source function library. . /etc/rc.d/init.d/functions
# Source networking configuration. if [ ! -f /etc/sysconfig/network ]; then exit 0 fi
. /etc/sysconfig/network
# Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0
[ -f /usr/sbin/knfsd ] || exit 0 [ -f /usr/sbin/kmountd ] || exit 0 [ -f /etc/exports ] || exit 0
# See how we were called. case "$1" in start) # Start daemons. echo -n "Starting kNFS services: " kstatd & kmountd & knfsd 2 & echo touch /var/lock/subsys/nfs ;; stop) # Stop daemons. echo -n "Shutting down kNFS services: " killproc kmountd killproc nfsd killproc kstatd killproc rpciod echo rm -f /var/lock/subsys/nfs ;; *) echo "Usage: knfs {start|stop}" exit 1 esac
exit 0 ==============================================================
Of course I added a few lines in my /etc/rc.d/rc.sysinit:
-------------------- excerpt from rc.sysinit -------------------- # Enter root into mtab. mount -f /
# Set links in /boot to reflect current version CURR_KERNEL=`uname -r` echo "Setting links in /boot and /usr/src to rel. $CURR_KERNEL" ln -snf /boot/vmlinuz-$CURR_KERNEL /boot/vmlinuz ln -snf /boot/System.map-$CURR_KERNEL /boot/System.map ln -snf /usr/src/linux-$CURR_KERNEL /usr/src/linux
# Fix nfsd type: kernel or user nfsd ? 2.0.xx will have only the # 2nd choice, when we can let's run knfsd. Thanks Olaf :) KERNEL_MINOR=`echo $CURR_KERNEL | cut -d. -f2` if [ $KERNEL_MINOR -lt 1 ]; then ln -snf /etc/rc.d/init.d/nfs /etc/rc.d/rc0.d/K20nfs ln -snf /etc/rc.d/init.d/nfs /etc/rc.d/rc1.d/K20nfs ln -snf /etc/rc.d/init.d/nfs /etc/rc.d/rc2.d/K20nfs ln -snf /etc/rc.d/init.d/nfs /etc/rc.d/rc3.d/S60nfs ln -snf /etc/rc.d/init.d/nfs /etc/rc.d/rc5.d/S60nfs ln -snf /etc/rc.d/init.d/nfs /etc/rc.d/rc6.d/K20nfs else ln -snf /etc/rc.d/init.d/knfs /etc/rc.d/rc0.d/K20nfs ln -snf /etc/rc.d/init.d/knfs /etc/rc.d/rc1.d/K20nfs ln -snf /etc/rc.d/init.d/knfs /etc/rc.d/rc2.d/K20nfs ln -snf /etc/rc.d/init.d/knfs /etc/rc.d/rc3.d/S60nfs ln -snf /etc/rc.d/init.d/knfs /etc/rc.d/rc5.d/S60nfs ln -snf /etc/rc.d/init.d/knfs /etc/rc.d/rc6.d/K20nfs fi
if [ -x /sbin/depmod ]; then # Get ready for kerneld echo -n "Finding module dependencies" -------------------------- end excerpt ---------------------------
--alessandro <asuardi@uninetcom.it> <asuardi@it.oracle.com>
Linux 2.0.33/2.1.78 libc-5.4.38 gcc-2.7.2.3 binutils-2.8.1.0.15
"There's a bit of magic in everything and then some loss to even things out" -- Lou Reed
| |