Gasita cu greu pe internet, asa ca share aici pana nu dispare si de pe internet: nbd nightmare pe centos 7… Nu, nu inteleg de ce nu este default in kernel, mai ales ca este folosit de qemu…
Get Source Code
First check your kernel version via:
$ uname -r
3.10.0-229.7.2.el7.x86_64
Then find the corresponding kernel source rpm under vault.centos.org, download its rpm and install it.
$ wget http://vault.centos.org/7.1.1503/updates/Source/SPackages/kernel-3.10.0-229.7.2.el7.src.rpm
# useradd builder
# groupadd builder
$ rpm -ivh kernel-3.10.0-1127.8.2.el7.src.rpm
Build Preparation
As a normal user, do following:
$ mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
$ echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros
$ cd ~/rpmbuild/SPECS
$ rpmbuild -bp --target=$(uname -m) kernel.spec
$ cd ~/rpmbuild/BUILD/kernel-3.10.0-1127.8.2.el7/linux-3.10.0-1127.8.2.el7.x86_64/
$ ls
arch COPYING Documentation fs ipc kernel Makefile README scripts tools
block CREDITS drivers include Kbuild lib mm REPORTING-BUGS security usr
configs crypto firmware init Kconfig MAINTAINERS net samples sound virt
Now the source code tree is available.
Build
In the kernel source directory, type make menuconfig
for configurating the kernel configuration, select :
Device Driver -> Block devices -> Set “M” On “Network block device support”
Save the configuration and exit, now begin to make via:
$ make prepare && make modules_prepare && make
Now makeout the kernel module and copy it to modules directory:
$ make M=drivers/block -j8
$ modinfo drivers/block/nbd.ko
$ sudo cp drivers/block/nbd.ko /lib/modules/3.10.0-1127.8.2.el7.x86_64/extra/
$ sudo depmod -a && sudo modprobe nbd