4 <a href="https://scan.coverity.com/projects/1243">
5 <img alt="Coverity Scan Build Status"
6 src="https://scan.coverity.com/projects/1243/badge.svg"/>
9 <a href='http://barbershop.grep.be:8010/'>
10 <img alt='build status' src='http://barbershop.grep.be/cgi-bin/buildstatus'>
13 Welcome to the NBD userland support files!
15 This package contains nbd-server and nbd-client.
17 To install the package, do the normal `configure`/`make`/`make install`
18 dance. You'll need to install it on both the client and the server.
20 Note that released nbd tarballs are found on
21 [sourceforge](http://sourceforge.net/projects/nbd/files/nbd/).
23 Using NBD is quite easy. First, on the client, you need to load the
24 module and, if you're not using udev, to create the device nodes:
30 (if you need more than one NBD device, repeat the above command for nbd1,
33 Next, write a configuration file for the server. An example looks like
38 # The [generic] section is required, even if nothing is specified
40 # When either of these options are specified, nbd-server drops
41 # privileges to the given user and group after opening ports, but
42 # _before_ opening files.
46 exportname = /export/nbd/export1-file
47 # The following line will be ignored unless the
48 # "oldstyle = true" line in the generic section above is
51 authfile = /export/nbd/export1-authfile
57 prerun = dd if=/dev/zero of=%s bs=1k count=500
60 exportname = /export/nbd/experiment
61 # The other options are all optional, except this one in case
62 # the oldstyle option is used in [generic]:
65 The configuration file is parsed with GLib's GKeyFile, which parses key
66 files as they are specified in the Freedesktop.org Desktop Entry
67 Specification, as can be found at
68 <http://freedesktop.org/Standards/desktop-entry-spec>. While this format
69 was not intended to be used for configuration files, the glib API is
70 flexible enough for it to be used as such.
74 nbd-server -C /path/to/configfile
76 Note that the filename must be an absolute path; i.e., something like
77 `/path/to/file`, not `../file`. See the nbd-server manpage for details
78 on any available options.
80 Finally, you'll be able to start the client:
82 nbd-client <hostname> -N <export name> <nbd device>
86 nbd-client 10.0.0.1 -N otherexport /dev/nbd0
88 will use the second export in the above example (the one that exports
89 `/export/nbd/experiment`)
91 `nbd-client` must be ran as root; the same is not true for nbd-server
92 (but do make sure that /var/run is writeable by the server that
93 `nbd-server` runs as; otherwise, you won't get a PID file, though the
94 server will keep running).
96 The old command-line port-only way of exporting something is still
97 supported, but it is deprecated.
99 There are packages (or similar) available for the following operating
102 - Debian (and derivatives, like Ubuntu): `nbd-client` and `nbd-server`,
104 - Gentoo: the `nbd` ebuild in the `sys-block` category, available in
106 - FreeBSD: `net/nbd-server`, available in the ports tree since 2003.
107 FreeBSD doesn't have kernel support for NBD, so obviously the client
109 - SuSE: `nbd`, in SuSE 10.0
110 - Fedora: `nbd`, since Fedora 7
111 - uClibc's `buildroot` script also seems to have support for NBD.
113 If you're packaging NBD for a different operating system that isn't in
114 the above list, I'd like to know about it.
116 For questions, please use the `nbd-general@lists.sourceforge.net` mailinglist.