目的
为了在本地编译代码,能够通过beyondcompare实时同步到虚拟机,因此需要将虚拟机的ip实现samba共享,这样就不需要每次将更改的代码拷贝到虚拟机上了
遇到的问题及解决方法
1、无法安装samba:
Package samba is not available, but is referred to by another package
原因是ubuntu的/etc/apt/source.list中的源比较旧了,需要更新
2、更新失败 apt-get -y update
原因是不同的网络状况连接以下源的速度不同,需要更换源地址
3、更换源地址
部分帖子说 /etc/apt/sources.list 是动态生成需要用gedit编辑,但是我没有遇到这个问题,直接vi编辑保存,先保存原有到sources.list.bk
cd /etc/apt
mv sources.list sources.list.bk
touch sources.list
将里面填入清华大学源地址:
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse
~
接着更新即成功
4、安装遇到冲突
解决方法:(https://blog.csdn.net/Davidietop/article/details/88934783)
5、 aptitude install samba 可以自动帮助你下载依赖的库文件,并安装samba成功
注意:如果一开始出来一栏说什么都不改动,维持原有版本,那是不能接受的(维持现状肯定还是安装不成功)这一步按n,后面都是y
6、samba启动失败
按照ubuntu配置samba服务器
配置好之后,发现主机通过samba仍然无法连接虚拟机,并且主机与虚拟机相互都可以ping通,开始怀疑samba服务本身没有启动。
参考文章记一次samba排错
采用命令
smbd -F -S
可以清晰的看出samba在启动时core掉了
root@zc-virtual-machine:/var/log/samba# smbd -F -S
smbd version 4.3.11-Ubuntu started.
Copyright Andrew Tridgell and the Samba Team 1992-2015
===============================================================
INTERNAL ERROR: Signal 11 in pid 1609 (4.3.11-Ubuntu)
Please read the Trouble-Shooting section of the Samba HOWTO
===============================================================
PANIC (pid 1609): internal error
STATUS=daemon 'smbd' finished starting up and ready to serve connections
===============================================================
INTERNAL ERROR: Signal 11 in pid 1611 (4.3.11-Ubuntu)
Please read the Trouble-Shooting section of the Samba HOWTO
===============================================================
PANIC (pid 1611): internal error
BACKTRACE: 15 stack frames:
#0 /usr/lib/x86_64-linux-gnu/samba/libsmbregistry.so.0(log_stack_trace+0x1a) [0x7f0b33da61da]
#1 /usr/lib/x86_64-linux-gnu/samba/libsmbregistry.so.0(smb_panic_s3+0x20) [0x7f0b33da62b0]
#2 /usr/lib/x86_64-linux-gnu/libsamba-util.so.0(smb_panic+0x2f) [0x7f0b34b1d8df]
#3 /usr/lib/x86_64-linux-gnu/libsamba-util.so.0(+0x1baf6) [0x7f0b34b1daf6]
#4 /lib/x86_64-linux-gnu/libpthread.so.0(+0x13150) [0x7f0b34d7e150]
#5 /usr/lib/x86_64-linux-gnu/libtalloc.so.2(talloc_get_size+0x5) [0x7f0b3189f505]
#6 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(event_add_to_poll_args+0x74) [0x7f0b32a3e594]
#7 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(+0x25b52) [0x7f0b32a3eb52]
#8 /usr/lib/x86_64-linux-gnu/libtevent.so.0(_tevent_loop_once+0x9d) [0x7f0b3168f92d]
#9 /usr/lib/x86_64-linux-gnu/libtevent.so.0(tevent_common_loop_wait+0x1b) [0x7f0b3168fb5b]
#10 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(start_background_queue+0x2a8) [0x7f0b3465eb78]
#11 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(printing_subsystem_init+0x8b) [0x7f0b3465ee5b]
#12 smbd(main+0x11ba) [0x56114ebd72ca]
#13 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1) [0x7f0b312cc1c1]
#14 smbd(+0x7a96) [0x56114ebd7a96]
smb_panic(): calling panic action [/usr/share/samba/panic-action 1611]
经过查阅资料,原来是动态链接库不匹配,大体来说是samba服务是新的,/usr/lib中的动态链接库是老的,通过重新安装以解决
sudo apt-get remove samba libtalloc2
sudo apt-get autoremove
sudo apt-get install samba libtalloc2
如下图所示,已经可以在主机的windows上访问虚拟机的文件夹了
中途还出了个小插曲,也记录下来供大家参考:
虽然如上图所示可以看到share了,但是仍然通过用户名密码无法访问
这时可以通过看日志/var/log/samba/log.zc-pc (你pc机的名称)
如下图所示,看到无法解析一个路径,这个路径一看就很奇怪,中间还带着空格,于是怀疑自己配置文件中犯了低级错误
查看/etc/samba/smb.conf
果然犯了低级错误,多谢了一个share 更改之后就可以使用了
对于win10的特殊操作
对于win10来说,linux和win10客户端都需要做特殊的配置:
1、对于win10客户端,需要允许samb服务开启:
2、linux服务端