树莓派samba卸载删除、samba重新安装的方法

昨晚躺床上用手机看树莓派里面下载的电影,发现samba竟然连接不上了,用了正好30天了,一直都没问题,怎么会突然连接不上,还以为是树莓派重启了?samba服务没启动?

连接ssh看一下,系统正常,ps了一下,smbd服务没在,命令行启动samba,报错:

Job for smbd.service failed because the control process exited with error code.
See "systemctl status smbd.service" and "journalctl -xe" for details.

真是百思不得其解,哪都没动过,怎么会出现这样的问题?按提示操作:
systemctl status smbd.service

无用部分省略
Jan 07 20:08:43 blog.dngz.net systemd[1]: Starting Samba SMB Daemon...
Jan 07 20:08:43 blog.dngz.net smbd[26617]: /usr/sbin/smbd: error while loading shared libraries: /usr/lib/aarch64-linux-gnu/samba/libgensec.so.0: invalid ELF header
Jan 07 20:08:43 blog.dngz.net systemd[1]: smbd.service: Main process exited, code=exited, status=127/n/a
Jan 07 20:08:43 blog.dngz.net systemd[1]: smbd.service: Failed with result 'exit-code'.
Jan 07 20:08:43 blog.dngz.net systemd[1]: Failed to start Samba SMB Daemon.

命令行执行:
testparm
也是一样的报错:
testparm: error while loading shared libraries: /usr/lib/aarch64-linux-gnu/samba/libgensec.so.0: invalid ELF header

执行 journalctl -xe 或 journalctl -b | grep smbd 也看到类似的错误提示。

libgensec.so.0: invalid ELF header

提示很明显 /usr/lib/aarch64-linux-gnu/samba/libgensec.so.0 这个文件损坏

用命令看一下
file /usr/lib/aarch64-linux-gnu/samba/libgensec.so.0
返回:

/usr/lib/aarch64-linux-gnu/samba/libgensec.so.0: data

这不是正常的linux可执行文件该返回的结果。

看了一下libgensec.so.0的修改时间是没问题的。我就不明白了,好好的文件怎么就会损坏?难道是tf卡质量不好,自动坏掉的?

没办法,只能重装了,备份一下samba配置文件开始搞。

卸载samba,重装samba

sudo apt-get remove samba 卸载是没用的,libgensec.so.0文件还是在那里,也就是卸载得不干净,sudo apt-get remove –purge samba 也没用。

samba正确的卸载方式

需要执行两个命令:

sudo apt-get remove samba 
sudo apt autoremove

重新安装samba

sudo apt-get update
sudo apt-get install -y samba
#sudo apt-get install samba samba-common-bin #备选

如果安装的时候出现选配置文件的提示界面:

Samba server and utilities
smb.conf: A new version (/run/samba/upgrades/smb.conf) of configuration file /data/conf/samba/smb.conf is available, but the version installed currently has been locally modified.

What do you want to do about modified configuration file smb.conf?

install the package maintainer's version
keep the local version currently installed
show the differences between the versions
show a side-by-side difference between the versions
start a new shell to examine the situation

选择第二项 keep the local version currently installed,再确定即可,这样可以使用自己原来的samba配置文件。

安装完成,再次查看验证一下:
file /usr/lib/aarch64-linux-gnu/samba/libgensec.so.0
返回:

/usr/lib/aarch64-linux-gnu/samba/libgensec.so.0: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=d7bdd19e136455e3fb8edb607cb0a203f0a22288, stripped

正常的!

执行:
samba –version
显示:Version 4.9.5-Debian,正常。

ps一下发现服务已经自动启动起来了:
ps x|grep smb
30999 ? Ss 0:00 /usr/sbin/smbd –foreground –no-process-group
31001 ? S 0:00 /usr/sbin/smbd –foreground –no-process-group
31002 ? S 0:00 /usr/sbin/smbd –foreground –no-process-group
31004 ? S 0:00 /usr/sbin/smbd –foreground –no-process-group
31248 ? S 0:00 /usr/sbin/smbd –foreground –no-process-group

在电脑上直接连接原先配置好的共享目录,很顺利的打开了,搞定。

查看了一下被损坏的/usr/lib/aarch64-linux-gnu/samba/libgensec.so.0 文件和重新安装后的该文件,文件大小都是186440字节,经过16进制比较了一下,内容确实不一样,两者文件前面17%的内容差异很大,后面的83%内容完全一样,真不知道怎么损坏的。

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

除特别注明外,本站所有文章均基于CC-BY-NC-SA 4.0原创,转载请注明出处。
文章名称:《树莓派samba卸载删除、samba重新安装的方法》
文章链接:https://www.vvso.cn/xlbk/17898.html
分享到: 更多 (0)

热门文章

评论 抢沙发

切换注册

登录

忘记密码 ?

切换登录

注册