Networking

如何使用 autofs 將硬碟驅動器自動掛載到 samba?

  • September 7, 2018

我有一個安裝了 samba 的樹莓派。我研究了autofs並看到了在我的 Windows 機器通過網路訪問外部硬碟驅動器時自動安裝外部硬碟驅動器的潛力。

顯然,提供的auto.smb配置是為 samba 客戶端應用程序設計的,但我的意圖是相反的。我希望伺服器在我通過網路訪問它時自動掛載我的硬碟,並在 5 分鐘左右後自動解除安裝它。另外 fstype 應該設置為 NTFS。

根據我目前對autofs我需要做的是創建一個配置文件的理解,我們將其命名為auto.ntfs

內容auto.ntfs

driveA -uuid="UUID of my drive",fstype=ntfs,verbose=1 :/dev/sda1

然後我需要將該配置添加到auto.master類似中PATH MAP -options

要指定,我的 PATH 是/share這樣我每次通過網路訪問它時都會成功地將我的外部硬碟驅動器自動掛載到該目錄中/share /etc/auto.ntfs -t=60/etc/auto.master

我是否了解它的正常工作方式以及我應該如何處理配置文件?有什麼我需要考慮這樣做的嗎?是否可以?

我想有這個答案的可能性。(不,我不想要除 samba 以外的其他解決方案,是的,它必須是 NTFS)


更新

我已經添加了配置文件。我現在的問題是驅動器的內容沒有顯示,因為我試圖在本地訪問驅動器以便自動安裝它只是為了測試功能本身。

自動大師: /share /etc/auto.ntfs -t=60

自動.ntfs: /share -uuid=E820DC6120DC3870,fstype=ntfs :/dev/sda1

這行不通。當我進入 /share 目錄時,我看不到驅動器的內容。這是一個輸出$ service autofs status

Jan 15 13:57:04 raspberrypi automount[529]: key ":" not found in map source(s). 
Jan 15 13:57:04 raspberrypi automount[529]: failed to mount /share/: 
Jan 15 13:57:04 raspberrypi automount[529]: re-reading map for /share

修復上述

對於將來對這個問題感興趣的人,通過檢查dmesg相關消息來解決上述問題,這些消息指出了問題的實際原因,而不是僅僅說它不起作用。此命令有助於找出它:

$ dmesg -w | grep ntfs(如果對您不同,您可以使用 grep 查找其他消息類型)

問題是該選項-uuid不受支持。我的最終配置現在看起來像這樣:

自動大師: /- /etc/auto.ntfs -t=60

自動.ntfs: /sharing -fstype=ntfs :/dev/sda1


在所有這些錯誤修復之後,手頭的最後一個主題:Samba

目前我的問題是,每當安裝驅動器時,它都會不恰當地更改權限。我已經使用 創建了共享目錄nautilus-share,因為我可以在那裡簡單地檢查適當的選項。

$ stat sharing/以下是禁用 autofs 時的片段:

訪問:(0777/drwxrwxrwx) Uid:(0/root) Gid:(0/root)

這是啟用 autofs 時相同命令的片段:

訪問:(0500/dr-x——) Uid:( 0/ root) Gid:( 0/ root)

根據此 dmesg 消息,在安裝時編輯訪問權限:

ntfs: (device sda1): load_system_files(): 卷臟。安裝只讀。在 Windows 中執行 chkdsk 並掛載。

ntfs: (device sda1): load_system_files(): $LogFile 不干淨。將無法重新掛載讀寫。安裝在 Windows 中。

我不知道現在該怎麼辦。我哪裡做錯了? 我在想我可能需要在 autofs 的配置文件中配置權限,但由於上面的消息,我不確定。

如果不建議將 ntfs 用作共享掛載,我會建議將分區格式更改為更合適的格式!

解決方案!

我現在想通了。錯誤消息(再次)為我指出了正確的方向,並通過Google搜尋探勘我遇到了這個ntfs-3g包和ntfs-config包。後者為 NTFS 驅動器提供寫入能力,就像消息一樣

卷臟。安裝只讀。在 Windows 中執行 chkdsk 並掛載。

沒有再出現。之後,從 Windows 機器訪問共享驅動器也變得輕而易舉。

另一個很大的幫助是Nautilus文件管理器,它使權限處理變得非常容易,只需轉到目錄路徑並選擇“右鍵點擊->屬性”,然後從那裡簡單地編輯權限共享​​選項。(這顯然是最簡單/初學者的方法)

為了將來參考,這裡是我的所有配置文件以及我在 CLI 中採取的步驟:

自動大師: /- /etc/auto.ntfs -t=60

> > auto.master 的 Linux 手冊頁 > > >

自動.ntfs: /sharing -fstype=ntfs :/dev/sda1

> > 自動掛載映射的 Linux 手冊頁 > > >

smb.conf:

編輯標準配置並使用標籤分號註釋您不需要的所有內容。以下是我編輯的內容。

> > > > [global] > workgroup = WORKGROUP # This was irrelevant for me but I left it activated > wins support = yes # Tells samba to act as WINS Server > #Recycle bin for mounted drive (useful feature, but not mandatory) > recycle:keeptree = yes > recycle:touch = yes > recycle:versions = y > recycle:maxsize = 0 > #======================= Share Definitions ======================= > #I've commented evverything here except the one I've created myself, > #since I didn't want any of those default share definitions. > #Shared network drive > [share] > comment = Pi shared folder > path = /sharing > available = yes > browseable = yes > writeable = Yes > only guest = no > create mask = 0777 > directory mask = 0777 > force group = sambashare > > > > 有關伺服器類型的有用連結 > > > samba 配置文件的文件 > > >

命令行:

> > > > $ cd / > $ mkdir sharing > > > > 要顯示有關創建的目錄及其權限的資訊,您可以使用$ stat directory/file命令 > > >

以下是用於控制autofssamba服務的命令。每當您進行配置更改並希望應用它們時,您都需要重新啟動它們

> > > > $ service autofs {start|forcestart|stop|restart|forcerestart|reload|force-reload|status} > $ /etc/init.d/samba {start|stop|reload|restart|force-reload|status} > > > >

創建目錄後,鍵入並導航到目錄並編輯上面提到的權限和共享​​選項來啟動 nautilus $ nautilus(複選框非常不言自明)。我已經為本地和 Windows 使用者啟用了讀寫功能。

引用自:https://unix.stackexchange.com/questions/416638