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

Popular posts from this blog

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -

node.js - Bad Request - node js ajax post -