Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 1 Dec 1995 01:05:13 -0500 (EST)
From:      A boy and his worm gear <wpaul@skynet.ctr.columbia.edu>
To:        rls@kilroy.id.net (Robert Shady)
Cc:        hackers@freebsd.org
Subject:   Re: Ifconfig fixed/Now MOUNTD! ;)
Message-ID:  <199512010605.BAA04309@skynet.ctr.columbia.edu>
In-Reply-To: <199511302141.QAA00607@server.id.net> from "Robert Shady" at Nov 30, 95 04:41:48 pm

next in thread | previous in thread | raw e-mail | index | archive | help
Of all the gin joints in all the towns in all the world, Robert Shady had to 
walk into mine and say:

> 
> Okay, the 'ifconfig' alias problem is now taken care of.  Turns out, you
> *MUST* include a netmask of all 255's in the alias statement or it will
> not work...

No mystery there. At least, not to me. :)
 
> Needless to say, this leads me to another problem.  I'm trying to get this
> new server running 2.1.0-RELEASE to allow me to export the directories I
> need to export.  Funny thing is, it works *FINE* for *SOME* directories,
> but others I get this damn error:
> 
> Nov 30 16:31:29 server mountd[102]: Can't change attributes for /usr/local. 
> Nov 30 16:31:29 server mountd[102]: Bad exports list line /usr/local -maproot

Okay, I think I know the problem here. Note that in your exports file
you're exporting /usr/local:
 
> Here is my /etc/exports file:
> =============================
> /home			-maproot=0 zeus hades
> /archives		-maproot=0 zeus hades
> /archives/.1 	-maproot=0 zeus hades
> /archives/.2 	-maproot=0 zeus hades
> /virtual 		-maproot=0 zeus hades
> /usr/local		-maproot=0 zeus hades
> /var/mail		-maproot=0 zeus hades
> /var/log 		-maproot=0 zeus hades

But according to 'df' you don't have a seperate /usr/local filesystem:
 
> And here is my disk layout...
> =============================
> Filesystem  1K-blocks     Used    Avail Capacity  Mounted on
> /dev/wd0a      756078   601380    94210    86%    /
> /dev/wd1a      243931    18832   205584     8%    /var/log
> /dev/wd1e      243931    38063   186353    17%    /var/mail
> /dev/wd1f      319387    66088   227748    22%    /virtual
> /dev/wd2a      787022        0   724060     0%    /archives/.1
> /dev/wd3a      787022   514318   209742    71%    /archives/.2
> /dev/sd0a     1629440  1322173   176911    88%    /samba
> /dev/sd1a     1629440   965255   533829    64%    /home
> procfs              4        4        0   100%    /proc

I also looks like you have virtually all of the OS installed directly
in /, which is not a complete no-no, but it's a little unusual.

The problem is that our NFS does not behave quite like Sun's NFS, which
is what you may be used to. I was bamboozled by the same thing until
it was explained to me...
 
> And last but not least, the "ls -al" of /usr/local.
> ===================================================
> drwxr-xr-x  13 root     wheel   512 Nov 30 09:42 ./
> 
> The only "funny" thing I notice, is that typing "mount" shows that the "/"
> partition is NFS exported...

Yes it does, and do you know why? Because you've exported /archives, and
/archives lives on /. With FreeBSD (and 4.4BSD in general, I believe),
the kernel stores export information on a per-filesystem basis rather
than on a per-directory basis. On other systems, you can have /home/foo
and /home/bar as directories on a single filesystem /home and export
each directory with different access rights. Not so here: if you export
/home/foo, then the kernel associates the export info with the /home
filesystem itself. If you then try to export /home/bar, mountd will 
complain because it will again try to set the export info for /home,
which it can't do without mucking up the access rights for the export
of /home/foo.

By listing /usr/local in your /etc/exports file after /archives, you
are actually telling mountd to export the rootfs (/) twice, which it
doesn't want to do for you. Unfortunately, the error message it uses
to communicate this fact to the user is more than a little opaque.

[chop]
> Does anybody have any idea what's going on here?
> 
> 	-- Rob

A-yep. :)

If you're hell bent on exporting /usr/local and /archives seperately,
you're going to have to make one of them a seperate filesystem. Otherwise,
you'll have to export all of / if you want to get rid of the error. It
would be nice if we could eliminate this limitation, but to do so would
require major kernel surgery, which no one seems eager to perform.

-Bill

-- 
=============================================================================
-Bill Paul            (212) 854-6020 | System Manager
Work:         wpaul@ctr.columbia.edu | Center for Telecommunications Research
Home:  wpaul@skynet.ctr.columbia.edu | Columbia University, New York City
=============================================================================
License error: The license for this .sig file has expired. You must obtain
a new license key before any more witty phrases will appear in this space.
=============================================================================



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199512010605.BAA04309>