Instalación de Samba en sistema de solo lectura

Instalación de Samba en sistema de solo lectura

No pude encontrar nada útil en la web.

Aquí está la historia. Estoy intentando instalar Samba (versión 4.5.12) en Debian (Raspbian, pero no importa). Debian está instalado en un sistema de archivos de sólo lectura. La instalación está bien, pero samba no se inicia en modo RO (solo lectura). Estaba intentando crear enlaces simbólicos de los datos necesarios ( /var/lib/samba files) en un disco duro externo (que es de lectura y escritura), pero aparece un error al iniciar Samba: systemctl no pudo iniciar smdb.service. No hubo systemctl statusnada interesante. Pero en samba/log.he encontrado que:

[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

Buscar en Google me ayudó a descubrir que la directory_create_or_exist_strictfunción en el código fuente de Samba verifica que los directorios (en mi caso /var/lib/samba/private/msg.sock) sean reales.

¿Existe alguna solución estilo Linux? ¿Debo reescribir la directory_create_or_exist_strictfunción o crear una ruta absoluta para msg.sockel directorio en el disco duro externo? ¿O hay alguna otra forma de reflejar esa carpeta en un disco duro externo? Por favor, comparte conmigo algunos consejos.

Respuesta1

El problema probablemente sea que esté utilizando un enlace suave para redirigir la carpeta samba var al otro disco.
Un enlace suave se comporta de manera algo diferente a una carpeta real y podría no ser aceptable para el código de creación del socket samba.

Lo que haría en una configuración como la suya es colocar todo el sistema de archivos /var en el otro disco (o como tmpfs) y simplemente montarlo en el momento del arranque.
O, si no quiere llegar hasta el final, simplemente cree un sistema de archivos tmpfs en el arranque y móntelo en /var/lib/samba.

Un punto de montaje debería estar bien. De lo contrario, ningún sistema Linux podría colocar /var en un sistema de archivos diferente.

información relacionada