Файловый сервер samba, работающий по протоколу cifs. Он должен предоставлять доступ к файловой системе, смонтированной из файла на диске. Независимо от заявленного размера файловой системы файл, который её содержит, должен занимать ровно столько места на диске, сколько файловая система занимает фактически. Например, один мегабайт. Запуск файлового сервера может происходить только в том случае, если файловая система смонтирована в нужный каталог. То есть, при попытке запуска файлового сервера происходит попытка монтирования файловой системы. В случае неудачного завершения попытки монтирования запуск файлового сервера не происходит. И наоборот — при попытке отмонтирования файловой системы происходит попытка останова файлового сервера. В случае неудачного останова отмонтирование файловой системы не выполняется. Что смог:
#!/bin/sh
cd /mnt
if [ ! -d samba ]; then
mkdir -p samba
fi
cd /opt
fallocate -l 1GB file_1gb
mkfs.ext4 file_1gb >> /dev/null 2>&1
mount /opt/file_1gb /mnt/samba
if [ $? -ne 1 ]; then
systemctl start smb
elif [ $? -ne 0 ]; then
systemctl stop smb
exit 1
fi