Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[9fans] Configuring NFS

193 views
Skip to first unread message

John Floren

unread,
Jun 2, 2009, 1:33:58 PM6/2/09
to
Has anyone here successfully set up nfsserver to share Plan 9 files
with Unix machines? The examples given in the man pages are rather...
opaque. All I want to do is share one directory tree (/lib/music, in
particular) with a number of independent Linux laptops and
workstations.

I'm looking into NFS because it seems that it has about the lowest
barrier to entry of all the possible file-sharing methods. Any other
suggestions would be appreciated.

John
--
"I've tried programming Ruby on Rails, following TechCrunch in my RSS
reader, and drinking absinthe. It doesn't work. I'm going back to C,
Hunter S. Thompson, and cheap whiskey." -- Ted Dziuba

Roman V. Shaposhnik

unread,
Jun 2, 2009, 1:39:03 PM6/2/09
to
On Tue, 2009-06-02 at 10:30 -0700, John Floren wrote:
> Has anyone here successfully set up nfsserver to share Plan 9 files
> with Unix machines? The examples given in the man pages are rather...
> opaque. All I want to do is share one directory tree (/lib/music, in
> particular) with a number of independent Linux laptops and
> workstations.

I used it in combination with Solaris.

> I'm looking into NFS because it seems that it has about the lowest
> barrier to entry of all the possible file-sharing methods. Any other
> suggestions would be appreciated.

Whether or not to use NFS depends greatly on what is on the other end.
What kind of UNIX?

Thanks,
Roman.


John Floren

unread,
Jun 2, 2009, 2:07:25 PM6/2/09
to
On Tue, Jun 2, 2009 at 10:35 AM, Roman V. Shaposhnik <r...@sun.com> wrote:
> On Tue, 2009-06-02 at 10:30 -0700, John Floren wrote:
>> Has anyone here successfully set up nfsserver to share Plan 9 files
>> with Unix machines? The examples given in the man pages are rather...
>> opaque. All I want to do is share one directory tree (/lib/music, in
>> particular) with a number of independent Linux laptops and
>> workstations.
>
> I used it in combination with Solaris.

Do you still have the configuration? I'm looking at the man page for
nfsserver but wondering what the machine 'ivy' does, and what exactly
'pie' and 'yoshimi' are doing, etc.

>
>> I'm looking into NFS because it seems that it has about the lowest
>> barrier to entry of all the possible file-sharing methods. Any other
>> suggestions would be appreciated.
>
> Whether or not to use NFS depends greatly on what is on the other end.
> What kind of UNIX?
>

Like I said, it's a collection of Linux machines, mostly running
Debian, Ubuntu, and Redhat.

Steve Simon

unread,
Jun 2, 2009, 2:23:00 PM6/2/09
to
> I'm looking into NFS because it seems that it has about the lowest
> barrier to entry of all the possible file-sharing methods. Any other
> suggestions would be appreciated.

I use aquarela to serve cifs to windows boxen but NFS seems preferable
given your clients are Linux.

-Steve

Roman V. Shaposhnik

unread,
Jun 2, 2009, 2:23:16 PM6/2/09
to
On Tue, 2009-06-02 at 11:03 -0700, John Floren wrote:
> On Tue, Jun 2, 2009 at 10:35 AM, Roman V. Shaposhnik <r...@sun.com> wrote:
> > On Tue, 2009-06-02 at 10:30 -0700, John Floren wrote:
> >> Has anyone here successfully set up nfsserver to share Plan 9 files
> >> with Unix machines? The examples given in the man pages are rather...
> >> opaque. All I want to do is share one directory tree (/lib/music, in
> >> particular) with a number of independent Linux laptops and
> >> workstations.
> >
> > I used it in combination with Solaris.
>
> Do you still have the configuration?

I might. For Solaris NFS was *the* only choice. For Linux I have
abandoned NFS approach in favor of native 9P. You should be
aware of the fact that nfsserver can only speak NFS v.2 which
is *really* old.

> I'm looking at the man page for
> nfsserver but wondering what the machine 'ivy' does, and what exactly
> 'pie' and 'yoshimi' are doing, etc.

If you have practical questions -- feel free to ask them. I'll try
to dig bits and pieces of my Solaris setup for you later this week.
So far, I can tell you this much: nfsserver is NFS to 9P translator.
Thus you can hide a whole bunch of 9P-aware services behind a single
nfsserver by specifying multiple -a options (in fact these 9P
services don't even have to be remote machines). Each individual -a
entry will become a single NFS export share in its own right (visible
via showmount -e).

So, when you see something like
aux/nfsserver –a tcp!pie –a tcp!yoshimi
all this means is that we are creating 2 NFS shares pie and yoshimi
on a single NFS server.

> >> I'm looking into NFS because it seems that it has about the lowest
> >> barrier to entry of all the possible file-sharing methods. Any other
> >> suggestions would be appreciated.
> >
> > Whether or not to use NFS depends greatly on what is on the other end.
> > What kind of UNIX?
> >
>
> Like I said, it's a collection of Linux machines, mostly running
> Debian, Ubuntu, and Redhat.

In that case why not use FUSE and 9P? This will also let you mount
more easily from a non-root accounts.

Thanks,
Roman.


John Floren

unread,
Jun 2, 2009, 2:36:57 PM6/2/09
to

I'd like to use the 9p mounting available in Linux, but it doesn't
seem to work in this case.
I try "mount -t 9p glenda /mnt" (glenda is my cpu/file server) and get:
mount: wrong fs type, bad option, bad superblock on glenda,
missing codepage or helper program, or other error
(for several filesystems (e.g. nfs, cifs) you might
need a /sbin/mount.<type> helper program)
In some cases useful info is found in syslog - try
dmesg | tail or so

If I do "mount -t 9p 192.168.18.180 /mnt", using the file server IP, I just get
mount: permission denied
But dmesg shows "[88617.144804] p9_errstr2errno: server reported
unknown error cannot attach as none before authentication", ONLY when
I use the IP address--nothing appears when I use the /etc/hosts alias
"glenda".

What am I missing?

Eric Van Hensbergen

unread,
Jun 2, 2009, 2:52:05 PM6/2/09
to
On Tue, Jun 2, 2009 at 1:34 PM, John Floren<slawm...@gmail.com> wrote:
>
> I'd like to use the 9p mounting available in Linux, but it doesn't
> seem to work in this case.
> I try "mount -t 9p glenda /mnt" (glenda is my cpu/file server) and get:
> mount: wrong fs type, bad option, bad superblock on glenda,
>       missing codepage or helper program, or other error
>       (for several filesystems (e.g. nfs, cifs) you might
>       need a /sbin/mount.<type> helper program)
>       In some cases useful info is found in syslog - try
>       dmesg | tail  or so
>
> If I do "mount -t 9p 192.168.18.180 /mnt", using the file server IP, I just get
> mount: permission denied
> But dmesg shows "[88617.144804] p9_errstr2errno: server reported
> unknown error cannot attach as none before authentication", ONLY when
> I use the IP address--nothing appears when I use the /etc/hosts alias
> "glenda".
>
> What am I missing?
>

The Linux mount tool doesn't do DNS translation (except in the case of
NFS). Other file systems have to rely on mount helpers which have to
be appropriately named. So invocation as the IP address is the only
correct invocation in this case -- but you'll need to auth (or setup
the file server to export without authentication).

-eric

John Floren

unread,
Jun 2, 2009, 4:01:31 PM6/2/09
to

Ok. Since I want to try and keep this with a low barrier to entry, I'd
prefer to avoid making people install p9p, which I think is what you
said is needed to do auth. I tried 9mount as well and had no luck
there--"permission denied" when I try to mount.

Is it possible to just export one directory without authentication? I
want to do read-only access if possible... is that what you get as
'none'?

Anthony Sorace

unread,
Jun 2, 2009, 7:25:33 PM6/2/09
to
"none" does not (normally) give you read-only access; if something is
world-writable, none will be able to write it. but getting read-only
is pretty easy; see exportfs(4) and the files which use it in
/rc/bin/service. from emory, i'd say "exec /bin/exportfs -Rr
/lib/music" would do what you want.

i've used nfsserver to provide access to a bunch of different types of
unix hosts, but it has been a while. i just spent a few minutes right
now trying with OS X and a remote plan9 server with no joy, but i'm
not convinced i don't have a nat being disruptive.

as far as the examples in nfsserver(8) go:
"ivy" is a machine which responds to 9fs and exports a namespace
containing /etc/passwd and /etc/group; it is most likely a unix system
running u9fs or similar. /lib/ndb/nfs contains a 9fs command to mount
ivy, so you can look at the live passwd and group files. if you'd
rather not, or are unable to, get u9fs working on some authoritative
unix system, you can copy or create a representative set locally (say,
/lib/ndb/unix.passwd) and change the last two file names in the
/lib/ndb/nfs example to point to those.

"edith" and "yoshimi" are just 9p servers, most likely plan9 machines.
passing them in the -a argument to nfsserver means that nfs clients
attempting to mount the machines will have those two "shares" to pick
from.

i believe the example becomes inconsistent here; i think edith/yoshimi
should match bootes/fornax. so if you had run the example as given
here, you'd want to run "/etc/mount -o soft,intr eduardo:ivy /n/ivy"
on your unix system. i forget whether the "share" ("ivy") needs to
match the exact string given to -a ("tcp!ivy") or if just the hostname
is okay.

John Floren

unread,
Jun 2, 2009, 7:32:52 PM6/2/09
to

What exactly is the purpose of the passwd and group files?

Anthony Sorace

unread,
Jun 2, 2009, 7:43:40 PM6/2/09
to
map between the numeric IDs reported by nfs and strings plan9 uses for uids.

John Floren

unread,
Jun 2, 2009, 7:53:52 PM6/2/09
to
On Tue, Jun 2, 2009 at 4:41 PM, Anthony Sorace <ano...@gmail.com> wrote:
> map between the numeric IDs reported by nfs and strings plan9 uses for uids.
>
>

What if I want to just allow anyone to mount the share, from anywhere?

Anthony Sorace

unread,
Jun 2, 2009, 11:22:33 PM6/2/09
to
for the "from anywhere" part, just use .+ as the host regexp. the
"anyone" part also doesn't really apply: the files don't affect who
can connect or read things, just what the mapping is done as (iirc,
world readable is still world readable). if you just want to not
bother with the passwd and group files and don't care about getting
nice names in, i think (but it's been a few years) you can just point
those at empty files.

J.R. Mauro

unread,
Jun 2, 2009, 11:32:52 PM6/2/09
to

You could try 9pfuse and redistribute it standalone if it works.

Roman V Shaposhnik

unread,
Jun 9, 2009, 12:45:36 PM6/9/09
to
Hi John,

it took me sometime to go through the old backups but it seems
that the NFS setup is gone by now. You can still ask questions,
if you want to, but I won't be able to send you all the working
conf. files.

On Tue, 2009-06-02 at 11:34 -0700, John Floren wrote:
> I'd like to use the 9p mounting available in Linux, but it doesn't
> seem to work in this case.
> I try "mount -t 9p glenda /mnt" (glenda is my cpu/file server) and get:
> mount: wrong fs type, bad option, bad superblock on glenda,
> missing codepage or helper program, or other error
> (for several filesystems (e.g. nfs, cifs) you might
> need a /sbin/mount.<type> helper program)
> In some cases useful info is found in syslog - try
> dmesg | tail or so
>
> If I do "mount -t 9p 192.168.18.180 /mnt", using the file server IP, I just get
> mount: permission denied
> But dmesg shows "[88617.144804] p9_errstr2errno: server reported
> unknown error cannot attach as none before authentication", ONLY when
> I use the IP address--nothing appears when I use the /etc/hosts alias
> "glenda".
>
> What am I missing?

I have very little experience working with the in-kernel support for
9P. Somehow 9P and being a superuser feel mutually exclusive to me.
Thus, I can only recommend 9pfuse. It worked quite well for the limited
application I needed it for.

Thanks,
Roman.


J.R. Mauro

unread,
Jun 9, 2009, 12:51:13 PM6/9/09
to

Yes. This is sad. Sqweek has some suid tools to help get around the nastiness.

Ethan Grammatikidis

unread,
Jun 11, 2009, 1:47:43 AM6/11/09
to
On Tue, 09 Jun 2009 09:48:31 -0700

Roman V Shaposhnik <r...@sun.com> wrote:
>
> I have very little experience working with the in-kernel support for
> 9P. Somehow 9P and being a superuser feel mutually exclusive to me.

Pick a task, any task. Toss a coin. If the coin lands heads up, a program to accomplish said task under un*x will need to be root for at least part of it's execution time. ;)

--
Ethan Grammatikidis
The lyf so short, the craft so long to lerne. -- Chaucer

Fernan Bolando

unread,
Feb 12, 2010, 6:34:03 PM2/12/10
to
On Tue, Jun 2, 2009 at 5:30 PM, John Floren <slawm...@gmail.com> wrote:
> Has anyone here successfully set up nfsserver to share Plan 9 files
> with Unix machines? The examples given in the man pages are rather...
> opaque. All I want to do is share one directory tree (/lib/music, in
> particular) with a number of independent Linux laptops and
> workstations.
>
> I'm looking into NFS because it seems that it has about the lowest
> barrier to entry of all the possible file-sharing methods. Any other
> suggestions would be appreciated.
>
> John

Hi John

I was wondering what happend to your attempt in setting up the
nfsserver? I am also trying to get it up because my client is using
openbsd and It doesnt have 9pfuse or v9fs support.

From all the replies I seem to get a general idea of what needs to be done

I did this @the server
% aux/nfsserver -a tcp!thinktank -c /lib/ndb/nfs
% aux/pcnfsd
% aux/portmapper

@client
# mount -o soft,intr thinktank:thinktank /mnt/nfs
NFS Portmap: RPC: Program not registered

in /sys/log/nfs
thinktank Feb 13 07:07:05 get port
thinktank Feb 13 07:07:32 get port


It seems like I maybe having authentication issue, but not
partifularly sure where to check.
man nfsserver seems to indicate that the client should have a static
ip address is this correct?

the client are using dhcp to configure there ip. I am trying to add
static aliases to clients to see if will work, but wanted to check
everyone else's thought.


--
http://www.fernski.com

ge...@plan9.bell-labs.com

unread,
Feb 12, 2010, 7:00:18 PM2/12/10
to
nfsserver only serves NFS version 2 and not all clients are smart
enough to try multiple NFS versions, so you may have to specify it,
typically like this (in /etc/fstab):

nfs:/ /n/9 nfs nfsvers=2,proto=udp,user,bg,intr

or as a command:

mount -o bg,intr,-2 thinktank:thinktank /mnt/nfs

Consult your (l)unix manuals for the precise options.


0 new messages