233 lines
5.7 KiB
Bash
233 lines
5.7 KiB
Bash
#!/bin/sh
|
|
#
|
|
# $NetBSD: makerumpmanpages.sh,v 1.14 2020/04/04 17:05:06 christos Exp $
|
|
#
|
|
|
|
IFS=' '
|
|
COPYRIGHT='.\" WARNING: GENERATED FILE, DO NOT EDIT
|
|
.\" INSTEAD, EDIT makerumpmanpages.sh AND REGEN
|
|
.\" from: $NetBSD: makerumpmanpages.sh,v 1.14 2020/04/04 17:05:06 christos Exp $
|
|
.\"
|
|
.\" Copyright (c) 2008-2010 Antti Kantee. All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"'
|
|
|
|
MANTMPL1='.Dd November 21, 2010
|
|
.Dt RUMP_XXXFSXXX 8
|
|
.Os
|
|
.Sh NAME
|
|
.Nm rump_xxxfsxxx
|
|
.Nd mount a xxxfsxxx xxxfssrcxxx with a userspace server
|
|
.Sh SYNOPSIS
|
|
.Cd "file-system PUFFS"
|
|
.Cd "pseudo-device putter"
|
|
.Pp
|
|
.Nm
|
|
.Op options
|
|
.Ar xxximagexxx
|
|
.Ar mountpoint
|
|
.Sh DESCRIPTION
|
|
.Em NOTE!
|
|
This manual page describes features specific to the
|
|
.Xr rump 3
|
|
file server.
|
|
Please see
|
|
.Xr mount_xxxfsxxx 8
|
|
for a full description of the available command line options.
|
|
.Pp
|
|
The
|
|
.Nm
|
|
utility can be used to mount xxxfsxxx file systems.
|
|
It uses
|
|
.Xr rump 3
|
|
and
|
|
.Xr p2k 3
|
|
to facilitate running the file system as a server in userspace.
|
|
As opposed to
|
|
.Xr mount_xxxfsxxx 8 ,
|
|
.Nm
|
|
does not use file system code within the kernel and therefore does
|
|
not require kernel support except
|
|
.Xr puffs 4 .
|
|
Apart from a minor speed penalty there is no downside with respect to
|
|
in-kernel code.'
|
|
|
|
MANTMPL_BLK='.Pp
|
|
.Nm
|
|
does not require using
|
|
.Xr vnconfig 8
|
|
for mounts from regular files and the file path can be passed
|
|
directly as the
|
|
.Ar xxximagexxx
|
|
parameter.
|
|
In fact, the use of
|
|
.Xr vnconfig 8
|
|
is discouraged, since it is unable to properly deal with images on
|
|
sparse files.
|
|
.Pp
|
|
In case the image contains multiple partitions, the desired partition
|
|
must be indicated by appending the token
|
|
.Dq %DISKLABEL:p%
|
|
to the
|
|
.Ar xxximagexxx
|
|
path.
|
|
The letter
|
|
.Dq p
|
|
specifies the partition as obtained via
|
|
.Xr disklabel 8 .
|
|
For example, to mount partition
|
|
.Dq e
|
|
from image
|
|
.Pa /tmp/wd0.img ,
|
|
use
|
|
.Dq /tmp/wd0.img%DISKLABEL:e% .
|
|
.Pp
|
|
It is recommended that untrusted file system images be mounted with
|
|
.Nm
|
|
instead of
|
|
.Xr mount_xxxfsxxx 8 .
|
|
Corrupt file system images commonly cause the file system
|
|
to crash the entire kernel, but with
|
|
.Nm
|
|
only the userspace server process will dump core.'
|
|
|
|
MANTMPL_NET='.Pp
|
|
Even though the
|
|
.Nm
|
|
file system client runs within a virtual rump kernel in userspace,
|
|
it uses host network services
|
|
.Pq by means of Dq rump sockin .
|
|
This means that regardless of whether using
|
|
.Nm
|
|
or
|
|
.Xr mount_xxxfsxxx 8 ,
|
|
the same network configurations will be used.
|
|
Currently,
|
|
.Dq sockin
|
|
supports IPv4.'
|
|
|
|
MANTMPL2='.Pp
|
|
To use
|
|
.Nm
|
|
via
|
|
.Xr mount 8 ,
|
|
the flags
|
|
.Fl o Ar rump
|
|
and
|
|
.Fl t Ar xxxfsxxx
|
|
should be given.
|
|
Similarly,
|
|
.Nm
|
|
is used instead of
|
|
.Xr mount_xxxfsxxx 8
|
|
if
|
|
.Dq rump
|
|
is added to the options field of
|
|
.Xr fstab 5 .
|
|
.Sh SEE ALSO
|
|
.Xr p2k 3 ,
|
|
.Xr puffs 3 ,
|
|
.Xr rump 3 ,
|
|
.Xr mount_xxxfsxxx 8
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
utility first appeared in
|
|
.Nx xxxfirstxxx .'
|
|
|
|
# vary manpages slightly based on the type of server in question
|
|
disk="cd9660 efs ext2fs ffs hfs lfs msdos ntfs sysvbfs udf v7fs"
|
|
net="nfs"
|
|
fictional="fdesc kernfs tmpfs"
|
|
special="au-naturel nqmfs syspuffs"
|
|
|
|
first5="cd9660 efs ext2fs ffs hfs lfs msdos nfs ntfs syspuffs sysvbfs tmpfs udf"
|
|
|
|
member ()
|
|
{
|
|
|
|
what=$1
|
|
shift
|
|
|
|
while [ $# -gt 0 ] ; do
|
|
[ "$1" = "${what}" ] && return 0
|
|
shift
|
|
done
|
|
return 1
|
|
}
|
|
|
|
sedsub='s/xxxfsxxx/$fs/g\;s/XXXFSXXX/$fsc/g\;s/xxximagexxx/$image/g\;'\
|
|
's/xxxfirstxxx/$first/g\;s/xxxfssrcxxx/$fssrc/g\;'
|
|
|
|
# auto manual pages
|
|
for x in rump_*
|
|
do
|
|
fs=${x#rump_}
|
|
|
|
# see if we are dealing with a new server
|
|
if ! member $fs $disk $net $fictional $special ; then
|
|
echo ERROR: $fs not found in any class!
|
|
exit 1
|
|
fi
|
|
|
|
# special file systems have special manpages
|
|
member $fs $special && continue
|
|
|
|
# figure out our type
|
|
if member $fs $disk ; then
|
|
mytype=disk
|
|
image=image
|
|
fssrc=image
|
|
fi
|
|
if member $fs $net ; then
|
|
mytype=net
|
|
image=share
|
|
fssrc=share
|
|
fi
|
|
if member $fs $fictional ; then
|
|
mytype=special
|
|
image=$fs
|
|
fssrc='fictional fs'
|
|
fi
|
|
|
|
# which version did server first appear?
|
|
if member $fs $first5 ; then
|
|
first=5.0
|
|
else
|
|
first=6.0
|
|
fi
|
|
|
|
fsc=`echo $fs | tr '[:lower:]' '[:upper:]'`
|
|
eval sedstr="${sedsub}"
|
|
|
|
printf '.\\" $NetBSD: makerumpmanpages.sh,v 1.14 2020/04/04 17:05:06 christos Exp $\n.\\"\n' > rump_${fs}/rump_${fs}.8
|
|
echo ${COPYRIGHT} | sed -e 's/\$//g' >> rump_${fs}/rump_${fs}.8
|
|
|
|
echo ${MANTMPL1} | sed -e "$sedstr" >> rump_${fs}/rump_${fs}.8
|
|
[ ${mytype} = disk ] && \
|
|
echo ${MANTMPL_BLK} | sed -e "$sedstr" >> rump_${fs}/rump_${fs}.8
|
|
[ ${mytype} = net ] && \
|
|
echo ${MANTMPL_NET} | sed -e "$sedstr" >> rump_${fs}/rump_${fs}.8
|
|
echo ${MANTMPL2} | sed -e "$sedstr" >> rump_${fs}/rump_${fs}.8
|
|
done
|