Установка Samba в системе только для чтения

Установка Samba в системе только для чтения

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

Вот история. Пытаюсь установить Samba (версия 4.5.12) на Debian (Raspbian, но это неважно). Debian установлен на файловой системе только для чтения. Установка проходит нормально, но Samba не запускается в режиме RO (только для чтения). Пытался сделать символические ссылки необходимых данных ( /var/lib/samba files) на внешнем HDD (который доступен для чтения и записи), но при запуске Samba выдает ошибку - systemctl failed to start 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каталога на внешнем HDD? Или есть другой способ отзеркалить эту папку на внешний HDD? Пожалуйста, поделитесь со мной советами.

решение1

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

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

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

Связанный контент