如何在CentOS7上加载网络块设备

Luc*_* Xu 2 linux kernel-module linux-kernel network-block-device centos7

我正在尝试在我的CentOS7服务器上加载nbd网络块设备.但是,我得到了:

modprobe nbd
modprobe: FATAL: Module nbd not found.
Run Code Online (Sandbox Code Playgroud)

如果有人能告诉我nbd加载模块的最佳方法,我们将非常感激.最后,我希望我可以通过ansible自动完成这项任务.

这是我的内核版本:

$ uname -r
3.10.0-327.28.3.el7.x86_64
Run Code Online (Sandbox Code Playgroud)

谢谢!

Luc*_* Xu 5

我发现这很有用.如果这不适合你,请告诉我

uname -r
sudo su
# useradd builder
# groupadd builder
cd /home/centos
# Get Source Code, make sure you check the kernel version first and download the proper version
wget http://vault.centos.org/7.2.1511/updates/Source/SPackages/kernel-3.10.0-327.28.3.el7.src.rpm
rpm -ivh kernel-3.10.0-327.28.3.el7.src.rpm

# Build Preparation
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-327.28.3.el7/linux-3.10.0-327.28.3.el7.centos.x86_64/

# Build
make menuconfig
# Device Driver -> Block devices -> Set “M” On “Network block device support”

make prepare && make modules_prepare && make
make M=drivers/block -j8
modinfo drivers/block/nbd.ko
cp drivers/block/nbd.ko /lib/modules/3.10.0-327.28.3.el7.x86_64/extra/
depmod -a && sudo modprobe nbd
Run Code Online (Sandbox Code Playgroud)

这将启用CentOS7上的nbd

  • 对于遇到此问题的新手,请注意,由于这些说明相当旧,因此还有一条附加说明。NBD 的一些代码依赖于一个旧函数。因此,在执行“make menuconfig”后,vim或nano或任何drivers/block/nbd.ko并搜索具有“REQ_TYPE_SPECIAL”的行并将该部分重命名为“REQ_TYPE_DRV_PRIV”,然后保存并关闭文件。然后继续按照说明操作。 (2认同)