Mount Samba directory permanently on Debian

[Server] Mount Samba directory permanently on Debian

In this post I am trying to map a directory on your Network Attached Storage (NAS) to the Docker VM. This allows iCloudPD to download photos directly to the NAS.

To permanently mount a Samba share in Debian, you can leverage the /etc/fstab file. This system configuration file is used to define how disk partitions, block devices, or remote filesystems should be mounted into the filesystem.

Here are the steps you need to follow:

  1. Install Required Packages
    Ensure that the cifs-utils package is installed on your system. This package provides a means for mounting SMB/CIFS shares on a Linux system. Install it using the following command:
sudo apt-get update
sudo apt-get install cifs-utils
  1. Create a Credentials File
    For security purposes, avoid placing your username and password directly into the /etc/fstab file. Instead, create a separate file to store your Samba credentials. This file can be created anywhere, but a common location is in the root's home directory. Here's how to do it:
sudo vi /root/.smbcredentials

Add the following lines to this file, replacing username and password with your Samba username and password:

username=your_username
password=your_password

Save and close the file, then change its permissions so that only root can read and write to it:

sudo chmod 600 /root/.smbcredentials
  1. Edit the /etc/fstab File
    Open the /etc/fstab file with a text editor:
sudo nano /etc/fstab

Add a line at the end of the file that looks like this:

//server/share /mount/point cifs credentials=/root/.smbcredentials,iocharset=utf8,sec=ntlm 0 0

Replace //server/share with the address of your Samba share, and replace /mount/point with the directory where you want to mount the share on your Debian system.

Save and close the file.

  1. Mount the Share
    Mount the share by running the following command:
sudo mount -a

The -a option will mount all filesystems mentioned in /etc/fstab.

  1. Test the Configuration
    To ensure that the share will be mounted automatically at boot, reboot your system and then check if the share is mounted:
sudo reboot

After the system reboots, check the mounted shares with:

df -h

Your Samba share should be listed among the mounted filesystems.

Troubleshooting

  1. If you encounter the following error when executing mount -a:
mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)

And you see the following errors in dmesg:

CIFS: VFS: Unable to select appropriate authentication method!
CIFS: VFS: \SERVER_IP Send error in SessSetup = -22
CIFS: VFS: cifs_mount failed w/return code = -22

This error message indicates that your Debian system (the client) is unable to negotiate an appropriate authentication method with the Samba server.

The sec=ntlm option in your /etc/fstab file specifies that NTLM (NT LAN Manager) security should be used for authentication. However, it's possible that your Samba server is configured to use a different security mode.

To resolve this issue, try changing the security mode to NTLMv2, a more secure version of NTLM. Replace sec=ntlm with sec=ntlmv2 in your /etc/fstab file:

//server/share /mount/point cifs credentials=/root/.smbcredentials,iocharset=utf8,sec=ntlmv2 0 0

If that doesn't work, try using sec=ntlmssp, which specifies that NTLMv2 with session security should be used:

//server/share /mount/point cifs credentials=/root/.smbcredentials,iocharset=utf8,sec=ntlmssp 0 0

After making these changes, remember to remount the filesystem with sudo mount -a.

If none of these options work, check the configuration of your Samba server to determine which security modes are allowed. Depending on the server's configuration, you might need to use a different security mode or adjust the server's settings.

Leave a Comment

This post is created on January 26, 2024 and last updated on January 27, 2024