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

支付宝内搜索 9155838 即可领现金红包 每天都能领哦

21:22:15
昨晚躺床上用手机看树莓派里面下载的电影,发现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%内容完全一样,真不知道怎么损坏的。

推荐文章

已有 4 条评论
  1. 一介大叔

    当年很想弄个玩玩下载,后来看看复杂程度,老老实实放弃。

    一介大叔 回复
    1. xylx

      @一介大叔

      不复杂的,按我的文章做不会出一点纰漏,哈哈。

      xylx 回复
  2. 静水流深

    还是买个贵点的nas或者服务器吧,树莓派问题多,性能差,

    静水流深 回复
    1. xylx

      @静水流深

      http://blog.dngz.net/RaspberryPiKodbox.htm

      xylx 回复
发表新评论取消回复