原创:小溪
我相信很多linux的初学者,或者接触时间不长的同志们都是编译过内核的,而且由于这样那样的原因,需要使用NFS服务,在启动NFS服务的时候就会遇到下面提示:
Starting NFS4 idmapd: FATAL: Module sunrpc not found.
FATAL: Error running install command for sunrpc
问题很明确,就是sunrpc这个模块没有找到。很多人会很奇怪,编译的时候已经选择了,而且在.config文件中都可以看见:
# cat -n .config | grep SUNRPC
1555 CONFIG_SUNRPC=y
1556 CONFIG_SUNRPC_GSS=y
其实问题就在这,nfs要找的模块被编译到内核中了,而不是一个模块。
到此,问题是找到了,可是怎么解决了,如何将SUNRPC编译成一个模块了,我曾经尝试了很多办法,甚至于直接修改.config文件,但是每次进行make的时候,sunrpc自动的更正为编译进内核,找了很多高手,也没有解决这个问题。
从此就和这个问题耗上了,实在是绕不过去(在绕开以前问题的路上,经常会遇到从前的你,其实有的路,似近实远),最后从fs/Kconfig中发现端倪:
config RPCSEC_GSS_KRB5
tristate "Secure RPC: Kerberos V mechanism (EXPERIMENTAL)"
depends on SUNRPC && EXPERIMENTAL
select SUNRPC_GSS
config RPCSEC_GSS_SPKM3
tristate "Secure RPC: SPKM3 mechanism (EXPERIMENTAL)"
depends on SUNRPC && EXPERIMENTAL
select SUNRPC_GSS
也就是说,其他模块对sunrpc是有依赖的,如果某个模块被编译到内核,那么sunrpc也会被编译到内核的。由此迎刃而解。将如上两个模块编译为模块(m),sunrpc终于如愿的被编译为模块。nfs可以正常的启动。
gouxiongmao 于 2011-02-18 18:07:28发表:
将如上两个模块编译为模块(m)--------到底哪2个模块?!到底哪2个模块?!到底哪2个模块?!到底哪2个模块?!到底哪2个模块?!你特意写出来炫耀的吗?你故意让人歧义困惑的吗?!你就没打算让人看懂的吗?!高手也不用来看你的文章了!我恨死你了!!!恨死你了!!!死你了!!!你了!!!了!!!
注册这个网站就是为了给你发这个评论的!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!