我在網路上找不到任何有用的東西。
故事是這樣的。我正在嘗試在 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
Samba 原始碼中的函數檢查目錄(在我的例子中為/var/lib/samba/private/msg.sock
)是否真實。
有沒有linux方式的解決方案?我應該重寫該函數還是為外部硬碟上的目錄directory_create_or_exist_strict
建立絕對路徑?msg.sock
或者有其他方法將該資料夾鏡像到外部硬碟嗎?請與我分享一些提示。
答案1
問題可能是您正在使用軟連結將 samba var 資料夾重新導向到另一個磁碟。
軟連結的行為與真實資料夾有些不同,並且可能不被 samba 套接字建立程式碼所接受。
在像您這樣的設定中,我要做的就是將整個 /var 檔案系統放在另一個磁碟上(或作為 tmpfs),然後在啟動時簡單地安裝它。
或者,如果您不想一路走下去,只需在啟動時建立 tmpfs 檔案系統並將其掛載到 /var/lib/samba。
掛載點應該沒問題。否則,Linux 系統將無法將 /var 放在不同的檔案系統上。