Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 Nov 1997 12:54:50 +0100
From:      Volker Paepcke <scratchy@vulcan.franken.de>
To:        freebsd-questions@freebsd.org
Subject:   [AMD]: automounting cdroms is working, but...
Message-ID:  <199711291154.MAA01209@yavin.franken.de>

next in thread | raw e-mail | index | archive | help
Hi!

I know, we had this topic already a few times. But after reviewing all archived
messages about automounting a cdrom, I haven't found any working
solution for this (at the first glance) simple scenario:

1.) FreeBSD (2.2.5-Stable) server with an automounted CDROM (exported
     via nfs and samba).
2.) One or more FreeBSD-Clients automounting this CDROM via nfs.
3.) One or more NT-Workstations mounting this CDROM via samba.

I found something like this posted by s.o. for automounting the CDROM on the 
server:

/etc/amd.map:
/defaults       type:=host;fs:=${autodir}/${rhost};rhost:=${key}
*               opts:=rw,grpid,resvport,nfsv2

vulcan          type:=auto;\
                fs:=${map};\
                pref:=${key}/

vulcan/cdrom    type:=program;\
                fs:=/mnt/cdrom;\
                mount:="/sbin/mount mount /mnt/cdrom";\
                unmount:="/sbin/umount umount -f /mnt/cdrom"

/etc/fstab:
/dev/cd0a               /mnt/cdrom      cd9660  ro,noauto       0       0

amd-flags: -c 99999 -l syslog /amd /etc/amd.map

After inserting a CDROM in the drive I can access it from any client...
...but here are the problems:

1.) I have to set the timeout on the server very high, because the nfs-exported
     cdrom won't be remounted after the timeout. Instead, I get a stale NFS 
handle
     on the client and so I have to wait on the client for the timeout, too. 
If the server
     never times out, I will never get a stale NFS handle at the client. The 
problem
     which remains, is how to eject the CDROM. The clients don't have a chance 
to
     get informed by this event. So I've hacked a little script, which sends 
the command
     'amq -u /mnt/cdrom' to every machine and then runs 'cdcontrol eject' on 
the
     server. :-( 

2.) If there is no CDROM in the drive and I try to access it on the clients I'm
     getting a permanent error on the server: "Too many levels of remote in 
path".
     This message stems from the failing /sbin/mount command and because of
     the very long timeout it will stay permanent until the normal timout. I 
don't
     know why amd doesn't retry a failed program-type mount after a definable
     timeout :-(

3.) If somebody on any of the clients is sitting on a nfs-mounted directory
     from the CDROM my script will fail, because I can't forcibly unmount a
     blocked nfs-mounted directory. The consequence is a stale NFS handle
     as in problem 1.)

1.) and 3.) are not a problem for the samba-clients, so maybe a rumba-client
on my FreeBSD-clients won't have these problems either!? But I absolutely
can't handle the second problem. Right know I have to restart amd on the server
If somebody has tried to access an empty CDROM-drive. I think its impossible to
explain to a NT-User, that he never may access an empty CDROM-drive on the
server from his NT-workstation.

I know that changable medias aren't fitting very well into the concept of amd, 
but
maybe there is something I've overlooked. So if there is somebody who has spent
some days with similar problems and has has some ideas, please tell me!


Thanks for Your time
Volker




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