Проверить, что установлен mount.cifs:
command -v mount.cifs
Если команды нет, установить пакет:
sudo apt update
sudo apt install cifs-utils
Создать точку монтирования, если ее нет:
sudo mkdir -p /mnt/ntfs
Проверить UID/GID пользователя, которому должны принадлежать файлы в шаре:
id -u vova
id -g vova
В моем случае оба значения были 1000.
Создать защищенный каталог:
sudo install -d -m 700 /etc/samba/credentials
Создать файл с логином и паролем:
sudo nano /etc/samba/credentials/ntfs
Содержимое файла:
username=vova
password=ВВЕСТИ_ПАРОЛЬ_ОТ_SMB
Выставить права:
sudo chown root:root /etc/samba/credentials/ntfs
sudo chmod 600 /etc/samba/credentials/ntfs
Файл должен называться именно mnt-ntfs.mount, потому что systemd кодирует путь /mnt/ntfs как mnt-ntfs.
Создать файл:
sudo nano /etc/systemd/system/mnt-ntfs.mount
Содержимое:
[Unit]
Description=SMB share //192.168.101.100/ntfs
Documentation=man:systemd.mount(5) man:mount.cifs(8)
Wants=network-online.target
After=network-online.target
[Mount]
What=//192.168.101.100/ntfs
Where=/mnt/ntfs
Type=cifs
Options=credentials=/etc/samba/credentials/ntfs,uid=1000,gid=1000,file_mode=0755,dir_mode=0755,iocharset=utf8,vers=3.1.1,soft,nounix
TimeoutSec=15s
TimeoutSec=15s ограничивает ожидание при проблемах с сервером.
Чтобы система не уходила в emergency mode при недоступном 192.168.101.100, включается не сам .mount, а .automount.
Создать файл:
sudo nano /etc/systemd/system/mnt-ntfs.automount
Содержимое:
[Unit]
Description=Automount SMB share /mnt/ntfs
ConditionPathIsDirectory=/mnt/ntfs
[Automount]
Where=/mnt/ntfs
TimeoutIdleSec=300s
[Install]
WantedBy=multi-user.target
После этого при загрузке будет создана automount-точка /mnt/ntfs, а реальное CIFS-монтирование произойдет только при обращении к каталогу. Если SMB-хост недоступен, система продолжит загружаться, а недоступной будет только сама шара.
sudo systemctl daemon-reload
sudo systemctl enable mnt-ntfs.automount
sudo systemctl start mnt-ntfs.automount
Не нужно включать mnt-ntfs.mount через enable.
Проверить синтаксис unit-файлов:
sudo systemd-analyze verify /etc/systemd/system/mnt-ntfs.mount /etc/systemd/system/mnt-ntfs.automount
Проверить, что automount включен:
systemctl is-enabled mnt-ntfs.automount
systemctl status mnt-ntfs.automount
Обратиться к каталогу, чтобы systemd выполнил реальное монтирование:
ls -la /mnt/ntfs
Проверить результат:
findmnt /mnt/ntfs -o TARGET,SOURCE,FSTYPE,OPTIONS
Ожидаемый источник:
//192.168.101.100/ntfs
Ожидаемый тип:
cifs
Посмотреть состояние mount unit:
systemctl status mnt-ntfs.mount
Посмотреть логи:
journalctl -u mnt-ntfs.mount -u mnt-ntfs.automount -b
Отключить постоянное монтирование:
sudo systemctl disable --now mnt-ntfs.automount
sudo systemctl stop mnt-ntfs.mount
Размонтировать вручную:
sudo umount /mnt/ntfs