読み取り専用システムへのSambaのインストール

読み取り専用システムへのSambaのインストール

ウェブ上で役に立つものは何も見つかりませんでした。

経緯はこうです。Debian (Raspbian ですが、どちらでも構いません) に Samba (バージョン 4.5.12) をインストールしようとしています。Debian は読み取り専用ファイルシステムにインストールされています。インストールは問題ありませんが、Samba は RO モード (読み取り専用) で起動しません。/var/lib/samba files外付け HDD (読み取り/書き込み可能) に必要なデータ ( ) のシンボリック リンクを作成しようとしましたが、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

directory_create_or_exist_strictGoogle で検索すると、 Samba ソース コードの 関数がディレクトリ (私の場合は/var/lib/samba/private/msg.sock) が実在するかどうかをチェックすることがわかりました。

Linux 的な解決策はありますか? 関数を書き直すdirectory_create_or_exist_strictか、外付け HDD のディレクトリの絶対パスを作成する必要がありますかmsg.sock? または、そのフォルダーを外付け HDD にミラーリングする他の方法はありますか? ヒントがあれば教えてください。

答え1

問題は、おそらくソフトリンクを使用して samba var フォルダーを他のディスクにリダイレクトしていることです。
ソフトリンクは実際のフォルダーとは多少異なる動作をするため、samba ソケット作成コードでは受け入れられない可能性があります。

あなたのような設定で私が行うことは、/var ファイルシステム全体を他のディスク (または tmpfs) に配置し、起動時にマウントするだけです。
または、すべてをやりたくない場合は、起動時に tmpfs ファイルシステムを作成し、それを /var/lib/samba にマウントします。

マウント ポイントは OK である必要があります。そうでない場合、Linux システムは /var を別のファイルシステムに配置することができなくなります。

関連情報