<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://k2.ixota.com/index.php?action=history&amp;feed=atom&amp;title=Linux%2FNBD</id>
	<title>Linux/NBD - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://k2.ixota.com/index.php?action=history&amp;feed=atom&amp;title=Linux%2FNBD"/>
	<link rel="alternate" type="text/html" href="https://k2.ixota.com/index.php?title=Linux/NBD&amp;action=history"/>
	<updated>2026-06-26T10:46:29Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.33.1</generator>
	<entry>
		<id>https://k2.ixota.com/index.php?title=Linux/NBD&amp;diff=4303&amp;oldid=prev</id>
		<title>Kenneth: /* Server */</title>
		<link rel="alternate" type="text/html" href="https://k2.ixota.com/index.php?title=Linux/NBD&amp;diff=4303&amp;oldid=prev"/>
		<updated>2017-05-04T21:06:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Server&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Linux Network Block Device ==&lt;br /&gt;
&lt;br /&gt;
nbd - Tools for the Linux Kernel&amp;#039;s network block device, allowing you to use remote block devices over a TCP/IP network.&lt;br /&gt;
&lt;br /&gt;
== Install ==&lt;br /&gt;
&lt;br /&gt;
Centos: (server, client, but no kernel module)&lt;br /&gt;
 # epel repo&lt;br /&gt;
 yum install nbd&lt;br /&gt;
&lt;br /&gt;
Ubuntu: (server, client and kernel module)&lt;br /&gt;
 apt-get install nbd-server nbd-client&lt;br /&gt;
 # I answer &amp;#039;yes&amp;#039; to disconnect all on stop&lt;br /&gt;
&lt;br /&gt;
== Server ==&lt;br /&gt;
&lt;br /&gt;
Create disk file: (or use block device)&lt;br /&gt;
 dd if=/dev/zero of=/root/nbd.img bs=1M count=100&lt;br /&gt;
&lt;br /&gt;
Start Server:&lt;br /&gt;
&lt;br /&gt;
 sudo nbd-server 6000 /root/nbd.img&lt;br /&gt;
 # Note: This uses the old style, and is no longer supported.&lt;br /&gt;
&lt;br /&gt;
Recommended to use config file, instead of specifying on command line&lt;br /&gt;
&lt;br /&gt;
 sudo nbd-server -C nbd.cfg&lt;br /&gt;
&lt;br /&gt;
Config file:&lt;br /&gt;
 /etc/nbd-server/config&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[generic]&lt;br /&gt;
        user = nbd&lt;br /&gt;
        group = nbd&lt;br /&gt;
[export]&lt;br /&gt;
        exportname = /root/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default port is 10809&lt;br /&gt;
&lt;br /&gt;
Watch output: (don&amp;#039;t deamonize)&lt;br /&gt;
 nbd-server -C test.cfg -d&lt;br /&gt;
&lt;br /&gt;
== Client ==&lt;br /&gt;
&lt;br /&gt;
Load module (if not already loaded):&lt;br /&gt;
 modprobe -l | grep nbd&lt;br /&gt;
 modinfo nbd&lt;br /&gt;
 modprobe nbd&lt;br /&gt;
&lt;br /&gt;
Start client:&lt;br /&gt;
 sudo nbd-client localhost 6000 /dev/nbd0&lt;br /&gt;
&lt;br /&gt;
Write traffic:&lt;br /&gt;
 dd if=/dev/zero of=/dev/nbd0&lt;br /&gt;
&lt;br /&gt;
Kill client:&lt;br /&gt;
 sudo nbd-client -d /dev/nbd0&lt;br /&gt;
&lt;br /&gt;
=== CentOS Kernel Module ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yum install kernel-devel kernel-headers&lt;br /&gt;
&lt;br /&gt;
# wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6ComputeNode/en/os/SRPMS/kernel-2.6.32.220.4.1.el6.src.rpm&lt;br /&gt;
KERNEL=$(uname -r | sed &amp;quot;s/.`uname -m`//&amp;quot;)&lt;br /&gt;
# my test was on 2.6.32-573.26.1.el6.x86_64&lt;br /&gt;
wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6ComputeNode/en/os/SRPMS/kernel-$KERNEL.src.rpm&lt;br /&gt;
&lt;br /&gt;
# rpm -ivh kernel-2.6.32.220.4.1.el6.src.rpm&lt;br /&gt;
rpm -ivh kernel-$KERNEL.src.rpm&lt;br /&gt;
cd ~/rpmbuild/SOURCES&lt;br /&gt;
# tar jxvf linux-$KERNEL.tar.bz2 -C /usr/src/kernels/&lt;br /&gt;
tar jxf linux-$KERNEL.tar.bz2 -C /usr/src/kernels/&lt;br /&gt;
&lt;br /&gt;
cd /usr/src/kernels&lt;br /&gt;
mv $(uname -r) $(uname -r)-old&lt;br /&gt;
# mv linux-2.6.32-220.4.1.el6 $(uname -r)&lt;br /&gt;
mv cd linux-$KERNEL $(uname -r)&lt;br /&gt;
cd $(uname -r)&lt;br /&gt;
&lt;br /&gt;
make mrproper&lt;br /&gt;
cp ../$(uname -r)-old/Module.symvers ./&lt;br /&gt;
cp /boot/config-$(uname -r) ./.config&lt;br /&gt;
make oldconfig&lt;br /&gt;
make prepare&lt;br /&gt;
make scripts&lt;br /&gt;
make CONFIG_BLK_DEV_NBD=m M=drivers/block&lt;br /&gt;
&lt;br /&gt;
cp drivers/block/nbd.ko /lib/modules/$(uname -r)/kernel/drivers/block/&lt;br /&gt;
&lt;br /&gt;
depmod -a&lt;br /&gt;
modprobe nbd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Based on reference from here: http://jamyy.us.to/blog/2012/02/3582.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yum install kernel-devel kernel-headers&lt;br /&gt;
cd /tmp&lt;br /&gt;
wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6ComputeNode/en/os/SRPMS/kernel-2.6.32.220.4.1.el6.src.rpm&lt;br /&gt;
rpm -ivh kernel-2.6.32.220.4.1.el6.src.rpm&lt;br /&gt;
cd ~/rpmbuild/SOURCES&lt;br /&gt;
tar jxf linux-2.6.32-220.4.1.el6.tar.bz2 -C /usr/src/kernels/&lt;br /&gt;
cd /usr/src/kernels&lt;br /&gt;
mv $(uname -r) $(uname -r)-old&lt;br /&gt;
mv linux-2.6.32-220.4.1.el6 $(uname -r)&lt;br /&gt;
cd $(uname -r)&lt;br /&gt;
make mrproper&lt;br /&gt;
cp ../$(uname -r)-old/Module.symvers ./&lt;br /&gt;
cp /boot/config-$(uname -r) ./.config&lt;br /&gt;
make oldconfig&lt;br /&gt;
make prepare&lt;br /&gt;
make scripts&lt;br /&gt;
make CONFIG_BLK_DEV_NBD=m M=drivers/block&lt;br /&gt;
cp drivers/block/nbd.ko /lib/modules/$(uname -r)/kernel/drivers/block/&lt;br /&gt;
depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
== Negotiation: Error: Server closed connection ==&lt;br /&gt;
&lt;br /&gt;
The user running nbd did not have permission to access device.  The /etc/nbd-server/config may specify &amp;quot;user = nbd&amp;quot;.  Just comment this out, or give user &amp;quot;nbd&amp;quot; permissions.&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
		
	</entry>
</feed>