linux - Samba causes "mount: / is busy" -
i developing application on raspberry pi. using samba share ramdisk on network. here below can see fstab:
proc /proc proc defaults 0 0 /dev/mmcblk0p1 /boot vfat defaults 0 2 /dev/mmcblk0p2 / ext4 ro 1 1 devpts /dev/pts devpts mode=0620,gid=5 0 0 tmpfs /tmp tmpfs nodev,nosuid,noatime,mode=1777 0 0 tmpfs /var/tmp tmpfs nodev,nosuid,defaults,noatime,mode=1777,size=10m 0 0 tmpfs /var/log tmpfs nodev,nosuid,defaults,noatime,mode=0755 0 0 #tmpfs /var/log/apt tmpfs nodev,nosuid,defaults,noatime,size=1m 0 0 tmpfs /var/run tmpfs nodev,nosuid,defaults,noatime,size=1m 0 0 tmpfs /ram tmpfs nodev,nosuid,noatime,size=100m,mode=0777 0 0
when smbd server not running, able mount root file system / read typing
mount -o remount,ro /
but when smbd runs, says: mount: / busy"
i sharing ramdisk on network. think disabled samba logs also, not sure. here below can see output of testparm command:
load smb config files /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) minimum windows limit (16384) processing section "[homes]" processing section "[ram]" loaded services file ok. server role: role_standalone press enter see dump of service definitions [global] workgroup = home server string = %h server map guest = bad password obey pam restrictions = yes pam password change = yes passwd program = /usr/bin/passwd %u passwd chat = *enter\snew\s*\spassword:* %n\n *retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . unix password sync = yes syslog = 0 syslog = yes max log size = 0 dns proxy = no usershare allow guests = yes idmap config * : backend = tdb [homes] comment = home directories valid users = %s create mask = 0700 directory mask = 0700 browseable = no [ram] comment = public storage path = /ram read = no create mask = 0777 directory mask = 0777 guest ok = yes
and can see /etc/samba/smb.conf file below:
#======================= global settings ======================= [global] ## browsing/identification ### # change workgroup/nt-domain name samba server part of workgroup = home # server string equivalent of nt description field server string = %h server # windows internet name serving support section: # wins support - tells nmbd component of samba enable wins server # wins support = no # wins server - tells nmbd components of samba wins client # note: samba can either wins server, or wins client, not both ; wins server = w.x.y.z # prevent nmbd search netbios names through dns. dns proxy = no # naming service , in order should use resolve host names # ip addresses ; name resolve order = lmhosts host wins bcast #### networking #### # specific set of interfaces / networks bind # can either interface name or ip address/netmask; # interface names preferred ; interfaces = 127.0.0.0/8 eth0 # bind named interfaces and/or networks; must use # 'interfaces' option above use this. # recommended enable feature if samba machine # not protected firewall or firewall itself. however, # option cannot handle dynamic or non-broadcast interfaces correctly. ; bind interfaces = yes #### debugging/accounting #### # tells samba use separate log file each machine # connects ; log file = /var/log/samba/log.%m # cap size of individual log files (in kib). max log size = 0 # if want samba log through syslog set following # parameter 'yes'. syslog = yes # want samba log minimum amount of information syslog. # should go /var/log/samba/log.{smbd,nmbd} instead. if want log # through syslog should set following parameter higher. syslog = 0 # sensible when samba crashes: mail admin backtrace ; panic action = /usr/share/samba/panic-action %d ####### authentication ####### # "security = user" idea. require unix account # in server every user accessing server. see # /usr/share/doc/samba-doc/htmldocs/samba3-howto/servertype.html # in samba-doc package details. security = user # may wish use password encryption. see section on # 'encrypt passwords' in smb.conf(5) manpage before enabling. # encrypt passwords = true # if using encrypted passwords, samba need know # password database type using. passdb backend = tdbsam obey pam restrictions = yes # boolean parameter controls whether samba attempts sync unix # password smb password when encrypted smb password in # passdb changed. unix password sync = yes # unix password sync work on debian gnu/linux system, following # parameters must set (thanks ian kahan <<kahan@informatik.tu-muenchen.de> # sending correct chat script passwd program in debian sarge). passwd program = /usr/bin/passwd %u passwd chat = *enter\snew\s*\spassword:* %n\n *retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . # boolean controls whether pam used password changes # when requested smb client instead of program listed in # 'passwd program'. default 'no'. pam password change = yes # option controls how unsuccessful authentication attempts mapped # anonymous connections map guest = bad password ########## domains ########### # machine able authenticate users. both pdc , bdc # must have setting enabled. if bdc must # change 'domain master' setting no # ; domain logons = yes # # following setting takes effect if 'domain logons' set # specifies location of user's profile directory # client point of view) # following required [profiles] share setup on # samba server (see below) ; logon path = \\%n\profiles\%u # common choice storing profile in user's home directory # (this samba's default) # logon path = \\%n\%u\profile # following setting takes effect if 'domain logons' set # specifies location of user's home directory (from client # point of view) ; logon drive = h: # logon home = \\%n\%u # following setting takes effect if 'domain logons' set # specifies script run during logon. script must stored # in [netlogon] share # note: must store in 'dos' file format convention ; logon script = logon.cmd # allows unix users created on domain controller via samr # rpc pipe. example command creates user account disabled unix # password; please adapt needs ; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u # allows machine accounts created on domain controller via # samr rpc pipe. # following assumes "machines" group exists on system ; add machine script = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u # allows unix groups created on domain controller via samr # rpc pipe. ; add group script = /usr/sbin/addgroup --force-badname %g ########## printing ########## # if want automatically load printer list rather # setting them individually you'll need # load printers = yes # lpr(ng) printing. may wish override location of # printcap file ; printing = bsd ; printcap name = /ram/pmc/printcap # cups printing. see cupsaddsmb(8) manpage in # cupsys-client package. ; printing = cups ; printcap name = cups ############ misc ############ # using following line enables customise configuration # on per machine basis. %m gets replaced netbios name # of machine connecting ; include = /home/samba/etc/smb.conf.%m # people find option gives better performance. # see smb.conf(5) , /usr/share/doc/samba-doc/htmldocs/samba3-howto/speed.html # details # may want add following on linux system: # so_rcvbuf=8192 so_sndbuf=8192 # socket options = tcp_nodelay # following parameter useful if have linpopup package # installed. samba maintainer , linpopup maintainer # working ease installation , configuration of linpopup , samba. ; message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' & # domain master specifies samba domain master browser. if # machine configured bdc (a secondary logon server), # must set 'no'; otherwise, default behavior recommended. # domain master = auto # defaults winbind (make sure you're not using ranges # else.) ; idmap uid = 10000-20000 ; idmap gid = 10000-20000 ; template shell = /bin/bash # following default behaviour in sarge, # samba upstream reverted default because might induce # performance issues in large organizations. # see debian bug #368251 of consequences of *not* # having setting , smb.conf(5) details. ; winbind enum groups = yes ; winbind enum users = yes # setup usershare options enable non-root users share folders # net usershare command. # maximum number of usershare. 0 (default) means usershare disabled. ; usershare max shares = 100 # allow users who've been granted usershare privileges create # public shares, not authenticated ones usershare allow guests = yes #======================= share definitions ======================= [homes] comment = home directories browseable = no # default, home directories exported read-only. change # next parameter 'no' if want able write them. read = yes # file creation mask set 0700 security reasons. if want # create files group=rw permissions, set next parameter 0775. create mask = 0700 # directory creation mask set 0700 security reasons. if want # create dirs. group=rw permissions, set next parameter 0775. directory mask = 0700 # default, \\server\username shares can connected # access samba server. # following parameter makes sure "username" can connect # \\server\username # might need tweaking when using external authentication schemes valid users = %s # un-comment following , create netlogon directory domain logons # (you need configure samba act domain controller too.) ;[netlogon] ; comment = network logon service ; path = /home/samba/netlogon ; guest ok = yes ; read = yes # un-comment following , create profiles directory store # users profiles (see "logon path" option above) # (you need configure samba act domain controller too.) # path below should writable users # profile directory may created first time log on ;[profiles] ; comment = users profiles ; path = /home/samba/profiles ; guest ok = no ; browseable = no ; create mask = 0600 ; directory mask = 0700 ;[printers] ; comment = printers ; browseable = no ; path = /var/spool/samba ; printable = yes ; guest ok = no ; read = yes ; create mask = 0700 # windows clients share name source of downloadable # printer drivers ;[print$] ; comment = printer drivers ; path = /var/lib/samba/printers ; browseable = yes ; read = yes ; guest ok = no # uncomment allow remote administration of windows print drivers. # may need replace 'lpadmin' name of group # admin users members of. # please note need set appropriate unix permissions # drivers directory these users have write rights in ; write list = root, @lpadmin # sample share sharing cd-rom others. ;[cdrom] ; comment = samba server's cd-rom ; read = yes ; locking = no ; path = /cdrom ; guest ok = yes # next 2 parameters show how auto-mount cd-rom when # cdrom share accesed. work /etc/fstab must contain # entry this: # # /dev/scd0 /cdrom iso9660 defaults,noauto,ro,user 0 0 # # cd-rom gets unmounted automatically after connection # # if don't want use auto-mounting/unmounting make sure cd # mounted on /cdrom # ; preexec = /bin/mount /cdrom ; postexec = /bin/umount /cdrom [ram] comment = public storage browsable=yes path = /ram public=yes writable=yes guest ok=yes read only=no create mask = 0777 directory mask = 0777
my question is, although sharing ramdisk, why smbd uses root file system? , how can mount root file system read when using smbd?
regards
most probably, samba (smbd) using files in in "/var/lib", , bunch of dynamic libraries in "/lib" , "/usr/lib".
you might want run lsof check:
sudo lsof|grep -i smbd
Comments
Post a Comment