Move man files to man/
[nbd.git] / man / nbd-server.1.in.sgml
diff --git a/man/nbd-server.1.in.sgml b/man/nbd-server.1.in.sgml
new file mode 100644 (file)
index 0000000..c9190b0
--- /dev/null
@@ -0,0 +1,286 @@
+<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+
+<!-- Process this file with docbook-to-man to generate an nroff manual
+     page: `docbook-to-man manpage.sgml > manpage.1'.  You may view
+     the manual page with: `docbook-to-man manpage.sgml | nroff -man |
+     less'.  A typical entry in a Makefile or Makefile.am is:
+
+manpage.1: manpage.sgml
+       docbook-to-man $< > $@
+  -->
+
+  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+  <!ENTITY dhfirstname "<firstname>Wouter</firstname>">
+  <!ENTITY dhsurname   "<surname>Verhelst</surname>">
+  <!-- Please adjust the date whenever revising the manpage. -->
+  <!ENTITY dhdate      "<date>$Date$</date>">
+  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+       allowed: see man(7), man(1). -->
+  <!ENTITY dhsection   "<manvolnum>1</manvolnum>">
+  <!ENTITY dhemail     "<email>wouter@debian.org</email>">
+  <!ENTITY dhusername  "Wouter Verhelst">
+  <!ENTITY dhucpackage "<refentrytitle>NBD-SERVER</refentrytitle>">
+  <!ENTITY dhpackage   "nbd-server">
+
+  <!ENTITY debian      "<productname>Debian GNU/Linux</productname>">
+  <!ENTITY gnu         "<acronym>GNU</acronym>">
+]>
+
+<refentry>
+  <refentryinfo>
+    <address>
+      &dhemail;
+    </address>
+    <author>
+      &dhfirstname;
+      &dhsurname;
+    </author>
+    <copyright>
+      <year>2001</year>
+      <holder>&dhusername;</holder>
+    </copyright>
+    &dhdate;
+  </refentryinfo>
+  <refmeta>
+    &dhucpackage;
+
+    &dhsection;
+  </refmeta>
+  <refnamediv>
+    <refname>&dhpackage;</refname>
+
+    <refpurpose>serve a file as a block device to other computers
+    running the &gnu;/Linux(tm) or &gnu;/Hurd Operating
+    System</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <cmdsynopsis>
+      <command>&dhpackage; </command>
+
+      <arg choice=plain><replaceable>[ip@]port</replaceable</arg>
+      <arg choice=plain><replaceable>filename</replaceable></arg>
+      <arg><replaceable>size</replaceable></arg>
+      <arg><option>-r</option></arg>
+      <arg><option>-m</option></arg>
+      <arg><option>-c</option></arg>
+      <arg><option>-l <replaceable>host list filename</replaceable></option></arg>
+      <arg><option>-o <replaceable>section name</replaceable></option></arg>
+      <arg><option>-C <replaceable>config file</replaceable></option></arg>
+    </cmdsynopsis>
+  </refsynopsisdiv>
+  <refsect1>
+    <title>DESCRIPTION</title>
+
+    <para><command>&dhpackage;</command> is the server for the Linux
+    Network Block Device (NBD). With NBD, a client can use a file,
+    exported over the network from a server, as a block device. It can
+    then be used for whatever purpose a normal block device (harddisk,
+    CD-ROM, ...) can be used for.</para>
+
+    <para>NBD can be useful for diskless clients that need swapspace,
+    but you can also create a filesystem on it and use it as though it
+    were a local filesystem.</para>
+
+    <para><command>&dhpackage;</command> implements some security
+    through a file called "@sysconfdir@/nbd-server/allow" (by default; a
+    different file can be chosen with the '-l' option or through a
+    config file specification). This file must list the IP-addresses or
+    network masks of clients that are allowed to connect. If it does not
+    exist, all clients are able to connect. If the file is empty, no
+    clients can connect.</para>
+
+    <para>Note that while the command line allows for specifying an
+    export, the use of this option is deprecated. It is preferred to
+    make use of a configuration file instead, the format of which is
+    defined in nbd-server(5).</para>
+  </refsect1>
+  <refsect1>
+    <title>OPTIONS</title>
+    
+    <variablelist>
+      <varlistentry>
+       <term>ip</term>
+       <listitem>
+         <para>The ip address the server should listen on. This may
+         be an IPv4 address, an IPv6 address, or a hostname. In the
+         latter case, nbd-server will do a hostname lookup for the
+         name specified, and will listen on the first address that is
+         returned. For compatibility with past versions of
+         nbd-server, if an IPv4 address is specified, the @ sign that
+         serves as separator between the address and port may be
+         replaced by a colon.</para>
+         <para>If this parameter is not specified, nbd-server will
+         listen on all local addresses on both IPv4 and IPv6. To
+         limit to IPv4, specify the address as 0.0.0.0; to limit to
+         IPv6, specify it as ::.</para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term><option>port</option>
+       </term>
+       <listitem>
+         <para>The port the server should listen to. A valid port is
+           any number between 1 and 65536; if 0 is used, nbd-server
+           will listen on stdin (so that nbd-server can be ran from
+           inetd)</para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term><option>filename</option></term>
+       <listitem>
+         <para>The filename of the file that should be exported. This
+         can be any file, including "real" blockdevices (i.e. a file
+         from /dev). If the filename includes the literal string
+         "%s", then this %s will be substituded with the IP-address
+         of the client trying to connect.</para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term><option>size</option></term>
+       <listitem>
+         <para>The size of the block device at the client side. This
+           is especially useful in conjunction with the -m
+           option</para>
+         <para>Can optionally be followed by one of K,k,M or
+           m, in which case the size will be multiplied by 1024 (K
+           or k) or 1048576 (M or m)</para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term><option>-r</option></term>
+       <listitem>
+         <para>Export the file read-only. If a client tries to write
+           to a read-only exported file, it will receive an error, but
+           the connection will stay up.</para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term><option>-m</option></term>
+       <listitem>
+         <para>Work with multiple files. This can be used to export
+           blockdevices that are larger than the maximum allowed
+           filesize on a given filesystem; i.e. when the filesystem
+           does not allow files larger than 2GB (which is true for
+           Linux 2.2 and below), you can use this option to store the
+           data in multiple files and export a larger filesystem, if
+           needed.</para>
+         <para>
+           To use this option, you must create a number of files
+           with names in the format "name.X", where "name" is given as
+           the filename argument to nbd-server, and "X" is a number
+           starting by 0 and going up for each file.
+         </para>
+         <para>
+           Allowing more flexibility for this option is planned for
+           future versions.</para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term><option>-c</option></term>
+       <listitem>
+         <para>Copy on write. When this option is provided,
+           write-operations are not done to the exported file, but to a
+           separate file. This separate file is removed when the
+           connection is closed, which means that serving this way will
+           make nbd-server slow down (especially on large block devices
+           with lots of writes), and that after disconnecting and
+           reconnecting the client or the server, all changes are
+           lost.</para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term><option>-C</option></term>
+       <listitem>
+         <para>Specify configuration file. The default configuration
+           file, if this parameter is not specified, is
+           <filename>@sysconfdir@/nbd-server/config</filename>.</para>
+         <para>Note that the configuration file is always parsed and
+           the entries in the file used, even if an extra server is
+           specified on the command line. To disable the configuration
+           file entirely, either move it away or use the -C option to
+           point <command>nbd-server</command>(1) to a non-existing or
+           empty configuration file.</para>
+         <para>Also note that if an empty, incomplete, or invalid
+           configuration file is specified, nbd-server will produce a
+           warning about failure to parse the config file. If the
+           command line contains a fully specified configuration, this
+           warning is harmless and may be ignored.</para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term><option>host list filename</option></term>
+       <listitem>
+         <para>This argument should contain a list of IP-addresses
+           for hosts that may connect to the server. Wildcards are
+           <emphasis>not</emphasis> allowed. If the file does not
+           exist, it is ignored (and any host can connect); If the file
+           does exist, but is empty, no host can connect. By default,
+           the name 'nbd_server.allow' is used, and looked for in the
+           current directory, unless nbd-server is compiled as a
+           daemon, in which case it is looked for in the
+           root-directory.</para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term><option>section name</option></term>
+       <listitem>
+         <para>If the <option>-o</option> argument is given on the
+         command line, then &dhpackage; will output a configuration
+         file section with this as the header that is functionally
+         equivalent to the other options specified on the command line,
+         and exit. This is useful for migrating pre-2.9 nbd-server
+         initscript configuration files to the new format.</para>
+       </listitem>
+      </varlistentry>
+    </variablelist>
+    
+  </refsect1>
+  <refsect1>
+    <title>EXAMPLES</title>
+    <para>Some examples of nbd-server usage:</para>
+    <itemizedlist mark="none">
+      <listitem>
+       <para>To export a file /export/nbd/exp-bl-dev on port 2000:</para>
+       <para><command>nbd-server 2000 /export/nbd/exp-bl-dev</command></para>
+      </listitem>
+      <listitem>
+       <para>To export a the same file read-only:</para>
+       <para><command>nbd-server 2000 /export/nbd/exp-bl-dev -r</command></para>
+      </listitem>
+      <listitem>
+       <para>To export the same file read-write, but make sure
+         changes are lost after restarting the client or the
+         server:</para>
+       <para><command>nbd-server 2000 /export/nbd/exp-bl-dev
+           -c</command></para>
+      </listitem>
+    </itemizedlist>
+  </refsect1>
+  <refsect1>
+    <title>SEE ALSO</title>
+    
+    <para>nbd-client (8), nbd-server (5), http://nbd.sourceforge.net/roadmap.html</para>
+    
+  </refsect1>
+  <refsect1>
+    <title>AUTHOR</title>
+    <para>The NBD kernel module and the NBD tools were originally
+      written by Pavel Machek (pavel@ucw.cz)</para>
+    
+    <para>The Linux kernel module is now maintained by Paul Clements
+      (Paul.Clements@steeleye.com), while the userland tools are
+      maintained by &dhusername; (&dhemail;)</para>
+
+    <para>On The Hurd there is a regular translator available to perform the
+      client side of the protocol, and the use of
+      <command>nbd-client</command> is not required. Please see the
+      relevant documentation for more information.</para>
+
+    <para>This manual page was written by &dhusername; (&dhemail;) for
+      the &debian; system (but may be used by others).  Permission is
+      granted to copy, distribute and/or modify this document under
+      the terms of the <acronym>GNU</acronym> General Public License,
+      version 2, as published by the Free Software Foundation.</para>
+
+  </refsect1>
+</refentry>