Check “Enabled ” Select the “Task Settings ” tab and paste the following script in the script box:
#!/bin/sh
# Stop Samba
/usr/syno/sbin/synoservicecfg --stop samba
# Create the new conf file
sudo echo "vfs objects = fruit
fruit:aapl = yes
fruit:encoding = native
fruit:locking = none
fruit:metadata = stream
fruit:resource = file" >> /var/tmp/nginx/smb.netbios.aliases.conf
# Start Samba
/usr/syno/sbin/synoservicecfg --start samba
Also note that upon restart SMB shares will be available using default configurations and only by the end of the boot process the new configuration will be applied and the Samba service rebooted.
Understanding what’s going on You’ll need elevated privileges from here on, so issue sudo -i
after initiating you SSH session.
Editing smb.conf While trying to make this work, I’ve found that if you change the global /etc/samba/smb.conf
file, by adding the parameters below, those will be all messed up after any changes are made to SMB settings via DSM UI.
Although it probably won’t matter, I’m using a workaround by placing these configuration parameters not in the main file, but in a file that it includes by default and that is [probably ] not being used if you’re not using Netbios (it wasn’t in my case). This file is /var/tmp/nginx/smb.netbios.aliases.conf
, that you can see in my default smb.conf file:
[global]
printcap name=cups
winbind enum groups=yes
include=/var/tmp/nginx/smb.netbios.aliases.conf
min protocol=SMB2
security=user
local master=no
realm=*
passdb backend=smbpasswd
printing=cups
max protocol=SMB3
winbind enum users=yes
load printers=yes
workgroup=WORKGROUP
This way, this will survive SMB settings edits and hopefully also DSM upgrades. So, in order to this, create the missing included conf file:
touch /var/tmp/nginx/smb.netbios.aliases.conf
Open it up with VIM (note: this is not a common text editor, if you have never used it before, search for a how-to online ):
vim /var/tmp/nginx/smb.netbios.aliases.conf
When VIM opens, press i
to enable text entry and paste the required parameters, listed below:
vfs objects = fruit
fruit:aapl = yes
fruit:encoding = native
fruit:locking = none
fruit:metadata = stream
fruit:resource = file
Press Escape
to exit editing mode, type in :wq
to write and quit VIM . Then check if it looks ok
cat /var/tmp/nginx/smb.netbios.aliases.conf
Restarting the SMB service After editing the .conf file above, issue this to restart the Samba server:
synoservicecfg --restart samba
You may also look into the log and check if all seems to have run ok:
tail /var/log/samba/log.smbd
Finally, testparm
and press Enter
should show you the computed parameters in the current Samba session, just scroll up until you see the global options and these parameters should be there. Here’s my output:
# Global parameters
[global]
realm = *
workgroup = WORKGROUP
printcap name = cups
server min protocol = SMB2
passdb backend = smbpasswd
security = USER
winbind enum groups = Yes
winbind enum users = Yes
fruit:resource = file
fruit:metadata = stream
fruit:locking = none
fruit:encoding = native
fruit:aapl = yes
idmap config * : backend = syno
include = /var/tmp/nginx/smb.netbios.aliases.conf
vfs objects = fruit
All done! If your shares are still visible on your Mac, disconnect them and mount them again. Test out and see if this made any difference!
Additional notes: I’ll update this if anything new comes up (namely a DSM upgrade), but do leave a comment below if you have any comments/insight. I had custom icons for my file shares setup (via .VolumeIcon.icns
files), and a Finder is now ignoring those. It’s probably something related to one of the vfs fruit options. I’ve seen recommendations online about loading vfs catia
and streams_xattr
modules as well but I’m not these helped in any way when I tested.. Available modules are located in /usr/lib/samba/vfs/
The vfs_streams_xattr
module is not available but streams_xattr
is, I assumed it’s the same. There are also what looks like proprietary Synology modules, prefixed by synovfs_...
Make it Persistent After Reboots This can be done via DSM UI, which I recommend, instead of messing around even more with SSH. Note: I still need to check if this runs on reboots.
#!/bin/sh
# backup default smb.conf
cp /var/tmp/nginx/smb.netbios.aliases.conf /usr/local/etc/rc.d/smb.netbios.aliases.conf
# copy backup config file
cp /usr/local/etc/rc.d/smb.netbios.aliases.conf /var/tmp/nginx/smb.netbios.aliases.conf
# restart samba
/usr/syno/sbin/synoservicecfg --restart samba
After DSM Upgrades To be verified, but the solution above (for reboots) should also work for DSM upgrades.
Other Possible Performance Improvements: Adjust SMB browsing behavior In this link you’ll find several suggestions made by Apple that might improve your SMB browsing experience as well:
https://support.apple.com/en-us/HT208209
Turn off packet signing for SMB 2 and SMB 3 connections One other possible culprit of slow performing SMB file shares may be SMB packet signing to be enabled on your Mac. To disable this, you’ll need to edit (or create the file if it’s not there), as described by this Apple article:
https://support.apple.com/en-us/HT205926