系统 debian10
一直正常使用samba搭建的文件服务器。
近期使用apt dist-upgrade更新系统后(samba也跟着更新了版本)
samba便起不来了
错误提示如下:
user@money:~$ sudo apt install -f
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
有 1 个软件包没有被完全安装或卸载。
解压缩后会消耗 0 B 的额外空间。
正在设置 samba (2:4.9.5+dfsg-5+deb10u3) ...
Samba is not being run as an AD Domain Controller: Masking samba-ad-dc.service
Please ignore the following error about deb-systemd-helper not finding those services.
(samba-ad-dc.service already masked)
Job for smbd.service failed because the control process exited with error code.
See "systemctl status smbd.service" and "journalctl -xe" for details.
invoke-rc.d: initscript smbd, action "restart" failed.
● smbd.service - Samba SMB Daemon
Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2022-03-02 15:16:59 CST; 6ms ago
Docs: man:smbd(8)
man:samba(7)
man:smb.conf(5)
Process: 5367 ExecStartPre=/usr/share/samba/update-apparmor-samba-profile (code=exited, status=0/SUCCESS)
Process: 5371 ExecStart=/usr/sbin/smbd --foreground --no-process-group $SMBDOPTIONS (code=exited, status=127)
Main PID: 5371 (code=exited, status=127)
3月 02 15:16:59 money systemd[1]: Starting Samba SMB Daemon...
3月 02 15:16:59 money smbd[5371]: /usr/sbin/smbd: relocation error: /usr/lib/x86_64-linux-gnu/samba/libauth.so.0: symbol lp_min_domain_uid version SMBCONF_0 not defined in file libsmbconf.so.0 with link time reference
3月 02 15:16:59 money systemd[1]: smbd.service: Main process exited, code=exited, status=127/n/a
3月 02 15:16:59 money systemd[1]: smbd.service: Failed with result 'exit-code'.
3月 02 15:16:59 money systemd[1]: Failed to start Samba SMB Daemon.
dpkg: 处理软件包 samba (--configure)时出错:
已安装 samba 软件包 post-installation 脚本 子进程返回错误状态 1
正在处理用于 libc-bin (2.28-10) 的触发器 ...
在处理时有错误发生:
samba
E: Sub-process /usr/bin/dpkg returned an error code (1)
=======分割线===========
user@money:~$ sudo smbd -F -S
smbd: relocation error: /usr/lib/x86_64-linux-gnu/samba/libauth.so.0: symbol lp_min_domain_uid version SMBCONF_0 not defined in file libsmbconf.so.0 with link time reference
临时解决方法也有,就是强制降级samba版本,但是一更新系统又会这样了。。。
查找了好多文章都没有解决,请高人给指点一下,谢谢。
求助:samba更新后启动不了
- chinaz
- 帖子: 238
- 注册时间: 2007-02-07 9:23
求助:samba更新后启动不了
宠辱不惊,闲看庭前花开花落;去留无意,漫随天外云卷云舒。
- astolia
- 论坛版主
- 帖子: 6499
- 注册时间: 2008-09-18 13:11
Re: 求助:samba更新后启动不了
检查samba-libs包的版本是不是2:4.9.5+dfsg-5+deb10u3
检查 ldd /usr/lib/x86_64-linux-gnu/samba/libauth.so.0 | grep libsmbconf的输出是不是到/usr/lib/x86_64-linux-gnu/libsmbconf.so.0
检查 readelf -Ws --dyn-syms /usr/lib/x86_64-linux-gnu/libsmbconf.so.0 | grep lp_min_domain_uid
检查 ldd /usr/lib/x86_64-linux-gnu/samba/libauth.so.0 | grep libsmbconf的输出是不是到/usr/lib/x86_64-linux-gnu/libsmbconf.so.0
检查 readelf -Ws --dyn-syms /usr/lib/x86_64-linux-gnu/libsmbconf.so.0 | grep lp_min_domain_uid
- chinaz
- 帖子: 238
- 注册时间: 2007-02-07 9:23
Re: 求助:samba更新后启动不了
根据你的建议我的操作结果如下:
samba-libs包的版本就是2:4.9.5+dfsg-5+deb10u3
ldd /usr/lib/x86_64-linux-gnu/samba/libauth.so.0 | grep libsmbconf
libsmbconf.so.0 => /lib/x86_64-linux-gnu/libsmbconf.so.0 (0x00007f02a6a40000)
readelf -Ws --dyn-syms /usr/lib/x86_64-linux-gnu/libsmbconf.so.0 | grep lp_min_domain_uid
1715: 0000000000038560 7 FUNC GLOBAL DEFAULT 13 lp_min_domain_uid@@SMBCONF_0
宠辱不惊,闲看庭前花开花落;去留无意,漫随天外云卷云舒。
- astolia
- 论坛版主
- 帖子: 6499
- 注册时间: 2008-09-18 13:11
Re: 求助:samba更新后启动不了
我试了一下全新安装的debian 10.12是没有问题的,你干脆把samba相关的包全部purge掉再重新安装算了
apt purge libsmbclient libwbclient0 python-samba samba-common samba-common-bin samba-libs smbclient smbldap-tools
apt purge libsmbclient libwbclient0 python-samba samba-common samba-common-bin samba-libs smbclient smbldap-tools
- chinaz
- 帖子: 238
- 注册时间: 2007-02-07 9:23
Re: 求助:samba更新后启动不了
谢谢回复。这个方法试过了,没有用。到底也没有找到出错原因。
从你回复中提到的“全新安装的。。。”提醒了我,我所有安装过的debian电脑中只有两台最重要的电脑没出这个问题,而这两台是从官方原版iso安装的。其余那些出问题的电脑都是用的systemback封装过的版本。。。装完后有两个系统文件夹内容是重复的,估计应该是这个bug导致的吧。
宠辱不惊,闲看庭前花开花落;去留无意,漫随天外云卷云舒。
- astolia
- 论坛版主
- 帖子: 6499
- 注册时间: 2008-09-18 13:11
Re: 求助:samba更新后启动不了
我没有用过systemback,不知道它的实际效果。但听你这么一说,我倒是有些新的想法。
全新安装的debian 10里面,已经搞了UsrMerge https://wiki.debian.org/UsrMerge 。效果就是现在/bin、/sbin、/lib{,32,64}这些,都是到/usr下面同名目录的链接。
2:4.9.5+dfsg-5+deb10u3的samba-libs包,里面的文件都是安装到/usr下面的 https://packages.debian.org/buster/amd6 ... s/filelist,而你上面用ldd的结果,libsmbconf.so.0 是选择的/lib下面的文件。在经过UsrMerge之后,这不是一个问题,因为/lib就是到/usr/lib的软链接,但如果你用systemback做的系统中,/lib还是作为一个目录存在,就会导致新版软件还是在使用旧版本的库,就会报这个错
- chinaz
- 帖子: 238
- 注册时间: 2007-02-07 9:23
Re: 求助:samba更新后启动不了
按照以上猜想进行了一次实验,问题解决了。astolia 写了: ↑2022-03-07 22:02我没有用过systemback,不知道它的实际效果。但听你这么一说,我倒是有些新的想法。
全新安装的debian 10里面,已经搞了UsrMerge https://wiki.debian.org/UsrMerge 。效果就是现在/bin、/sbin、/lib{,32,64}这些,都是到/usr下面同名目录的链接。
2:4.9.5+dfsg-5+deb10u3的samba-libs包,里面的文件都是安装到/usr下面的 https://packages.debian.org/buster/amd6 ... s/filelist,而你上面用ldd的结果,libsmbconf.so.0 是选择的/lib下面的文件。在经过UsrMerge之后,这不是一个问题,因为/lib就是到/usr/lib的软链接,但如果你用systemback做的系统中,/lib还是作为一个目录存在,就会导致新版软件还是在使用旧版本的库,就会报这个错
解决的过程是这样的:
先解压缩2:4.9.5+dfsg-5+deb10u3的samba-libs包
然后将文件夹
samba-libs_2%3a4.9.5+dfsg-5+deb10u2_amd64/usr/lib
复制了一份为:
samba-libs_2%3a4.9.5+dfsg-5+deb10u2_amd64/lib
然后重新构建软件包:
dpkg -b samba-libs_2%3a4.9.5+dfsg-5+deb10u2_amd64/
然后替换软件缓存中的samba-libs包
最后更新samba,结果没有出现任何错误,顺利安装新版本并成功启动了samba服务。
出错的原因应该是systemback将/lib和/usr/lib在装完系统之后只做了复制处理,并不是链接的关系。bug。
最后,再次感谢帮忙!
宠辱不惊,闲看庭前花开花落;去留无意,漫随天外云卷云舒。
-
- 帖子: 22
- 注册时间: 2010-09-30 16:39
-
- 帖子: 10
- 注册时间: 2013-05-12 18:14
- 系统: ubuntu
Re: 求助:samba更新后启动不了
这个毛病确实有!