Standalone network block device client now working. :)

Rob Landley rob at
Mon Sep 13 00:51:16 UTC 2010

Finally got some time to debug this, and it now actually works.

  nbd 9876 /dev/nbd0
  mount /dev/nbd0 /blah

It's not busyboxified at all (standalone, no external dependencies).  If a 
server exports multiple NBDs it only supports selecting them by port number 
(there's an extention to select them by name; I didn't need it so didn't 
implement it).

Its command line option parsing is somewhere between "pathetic" and 
"nonexistent", so there's no if() around the call to daemon() and such, and 
the 4k block size is hardwired (which means with an MTU of 1500 the packets 
will be split, but just about all modern filesystems are using a 4k block size 
anyway and gigabit ethernet with a 1500 byte mtu is silly).

But it Worked For Me.

Denys: you wanna busyboxify it, or wait for me to get around to it now that my 
immediate need for something working is satisfied? :)

Does anybody care deeply about nbd-server?


P.S. My motivation for writing this is documented at and yes, it really was easier 
for me to write a new one than try to configure and build the old one from 
source.  It's THAT pointlessly overcomplicated.  They autoconfed it within an 
inch of its life, for NO REASON...  Sigh.
GPLv3: as worthy a successor as The Phantom Menace, as timely as Duke Nukem 
Forever, and as welcome as New Coke.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: nbd-client.c
Type: text/x-csrc
Size: 3899 bytes
Desc: not available
URL: <>

More information about the busybox mailing list