Я не мог найти ничего полезного в Интернете.

Вот история. Я пытаюсь установить Samba (версия 4.5.12) на Debian (Raspbian, но это не имеет значения). Debian установлен в файловой системе только для чтения. Установка в порядке, но Samba не запускается в режиме RO (только для чтения). Я пытался создать символические ссылки на необходимые данные (/var/lib/samba files) на внешнем жестком диске (это чтение-запись), но у меня возникла ошибка при запуске Samba - systemctl не удалось запустить smdb.service. В systemctl status ничего интересного не было. Но в samba/log. Я нашел это:

[2018/04/01 17:11:55.333301,  0] ../lib/util/util.c:270(directory_create_or_exist_strict)
  directory /var/lib/samba/private/msg.sock isn't a directory
[2018/04/01 17:12:35.116576,  0] ../lib/util/util.c:270(directory_create_or_exist_strict)
  directory /var/lib/samba/private/msg.sock isn't a directory
[2018/04/01 17:42:24.843043,  0] ../lib/util/util.c:216(directory_create_or_exist)
  mkdir failed on directory /var/lib/samba/private/msg.sock: Read-only file system
[2018/04/01 18:04:41.824892,  0] ../lib/util/util.c:216(directory_create_or_exist)
  mkdir failed on directory /var/lib/samba/private/msg.sock: No such file or directory

Поиск в Google помог мне выяснить, что функция directory_create_or_exist_strict в исходном коде Samba проверяет наличие каталогов (в моем случае /var/lib/samba/private/msg.sock).

Есть ли какое-нибудь решение для Linux? Должен ли я переписать функцию directory_create_or_exist_strict или указать абсолютный путь для msg.sock на внешнем жестком диске? Или есть другой способ зеркалирования этой папки на внешний жесткий диск? Пожалуйста, поделитесь со мной некоторыми советами.

1 ответ1

0

Возможно, проблема в том, что вы используете программную ссылку для перенаправления папки samba var на другой диск.
Функциональная ссылка ведет себя несколько иначе, чем реальная папка, и может быть неприемлемой для кода создания сокета samba.

В настройках, подобных вашей, я хотел бы поместить всю файловую систему /var на другой диск (или как tmpfs) и просто смонтировать ее во время загрузки.
Или, если вы не хотите идти до конца, просто создайте файловую систему tmpfs при загрузке и смонтируйте ее в /var /lib /samba.

Точка монтирования должна быть в порядке. В противном случае ни одна система Linux никогда не сможет поместить /var в другую файловую систему.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .