Return to BSD News archive
Newsgroups: comp.unix.bsd.netbsd.misc
Path: euryale.cc.adfa.oz.au!newshost.carno.net.au!harbinger.cc.monash.edu.au!munnari.OZ.AU!metro!metro!asstdc.scgt.oz.au!nsw.news.telstra.net!act.news.telstra.net!psgrain!quack!quack.kfu.com!nsayer
From: nsayer@quack.kfu.com (Nick Sayer)
Subject: Running networker (backups) on NB-sparc
Message-ID: <nCgkY3L@quack.kfu.com>
Sender: news@quack.kfu.com (0000-News(0000))
Organization: The Duck Pond public unix, +1 408 249 9630, log in as guest.
Date: Wed, 16 Oct 1996 23:39:51 UTC
Lines: 81
I have a NetBSD-sparc machine at the office and have successfully (so far
as I can tell) gotten networker to run using the SunOS binary compatability
stuff.
You have to run this little program right before nsrexecd and send the
output to /etc/mtab. This makes the illusion of a SunOS machine complete.
So far as I know, this was the only real magic required.
/*
* list_fs
*
* Copyright 1996, Nick Sayer
*
* Redistribution permitted so long as this notice remains.
* NO WARRANTIES! This code is probably wrong and it is not
* my fault if it totally destroys your computer or the solar system.
*
* Creates a dummy /etc/mtab for networker SunOS 4.x binary running under
* binary compatability on NetBSD-sparc
*
* Run this at boot before networker and perhaps every once in a while
* from cron.
*
* It prints a line for all ffs filesystems in the SunOS mtab
* format, including the mount device name, mount point, and device
* major/minor pair.
*
*/
#include <stdio.h>
#include <sys/param.h>
#include <sys/ucred.h>
#include <sys/mount.h>
#include <sys/stat.h>
#define MAX_MOUNTS 128
main()
{
struct statfs filesys[MAX_MOUNTS];
struct stat st;
int i,count;
count=getfsstat(filesys,sizeof(filesys),MNT_NOWAIT);
printf("#\n# note: This file is used only by networker.\n# It is \
generated by list_fs\n#\n");
if (count<0)
{
perror("getfssstat()");
exit(1);
}
for(i=0;i<count;i++)
{
if (strcmp(filesys[i].f_fstypename,"ffs"))
continue;
if (stat(filesys[i].f_mntfromname,&st)<0)
{
perror("stat()");
exit(1);
}
if (!(st.st_mode&S_IFBLK))
{
fprintf(stderr,"Warning! %s is ffs mount from non-block device!\n",
filesys[i].f_mntonname);
continue;
}
printf("%s\t%s\t4.2\trw,dev=%02x%02x 1 1\n",
filesys[i].f_mntfromname,
filesys[i].f_mntonname,
major(st.st_rdev),
minor(st.st_rdev));
}
}
--
Nick Sayer <nsayer@quack.kfu.com> |
N6QQQ @ N0ARY.#NORCAL.CA.USA.NOAM | Live Long and Procreate
+1 408 249 9630, log in as 'guest' |
URL: http://www.kfu.com/~nsayer/ |