ウェブ上で役に立つものは何も見つかりませんでした。
経緯はこうです。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_strict
Google で検索すると、 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 を別のファイルシステムに配置することができなくなります。