
我有一個在 Wine 上運行的 VB6 應用程式。該應用程式使用 mdb 資料庫,但 mdb 檔案位於 Windows 共用 (Iomega StorCenter) 上。我透過 fstab 掛載共享,並透過 Wine 分配字母「d:」。當我運行應用程式時,它會引發異常,因為它無法鎖定 mdb 檔案(建立鎖定檔案)。
我使用的 fstab 行是:
//IomegaStorCenter/public/Server /home/jmm/Iomega cifs,uid=wine,gid=users,fmask=7777,dmask=0777,iocharset=utf8,codepage=unicode, unicode 0 0
有人知道如何安裝共用以避免異常嗎?
答案1
與umask
,fmask
和dmask
一樣減去從 777 取得有效許可。所以你實際上將你的共享掛載為 000,意思是“沒有人可以讀、寫或執行”
另外,您真的需要那麼多自訂配置選項嗎?如果這是您的家用計算機,我建議這樣做:
//IomegaStorCenter/public/Server /home/jmm/Iomega cifs defaults,uid=jmm,gid=plugdev,umask=022
jmm
,我猜,是您的用戶名。如果沒有,請進行相應更改。還有,我強烈地建議你不是將磁碟機安裝到您的主目錄中。以 root 身分建立/mnt/iomega
目錄,然後掛載到該目錄。如果需要,請在您的主資料夾中建立一個指向那裡的符號連結。終端機中的命令是:
sudo mkdir -p /mnt/iomega
fstab 條目將是:
//IomegaStorCenter/public/Server /mnt/iomega cifs defaults,rw
故障排除
如果這不起作用,讓我們從頭開始嘗試,只是檢查是否有任何未解決的問題:
1 - 從 fstab 中刪除與 IomegaStorCenter 相關的所有行。重啟
2 - 使用 Nautilus > 網路 > Windows 網路 > 工作群組(或任何工作群組名稱),然後查看磁碟機是否顯示。雙擊它。
3 - 是否要求輸入使用者名稱/密碼?你認識他們嗎?它們是否有效且 nautilis 顯示共用資料夾? (註:這是不是你的 Ubuntu 使用者名稱/密碼。分享登入名稱/密碼,您可能之前已在 IomegaStorCenter 中配置
4 - 仍然使用 nautilus,您可以在那裡拖放並建立檔案嗎?編輯它們、重新命名、刪除等?
如果是,那麼 fstab 是您唯一的問題。如果沒有,則必須在繼續之前配置 IomegaStorCenter,直到可以透過 Nautilus 正確存取它。
5 - 在 Nautilus 中卸載驅動器(使用“彈出”按鈕)
現在在終端機中(可以透過 GUI/Nautilus 完成,但終端機中的複製貼上命令速度更快且不易出錯):
6 - 刪除舊的安裝點。執行此操作之前請確保它是空的
rmdir /home/jmm/Iomega
7 - 建立新的安裝點和從舊位置到新位置的符號鏈接
sudo mkdir -p /mnt/iomega
ln -s /mnt/iomega /home/jmm/Iomega
8 - 將以下行之一(但不是全部)新增至 fstab,具體取決於您的共用是否需要密碼:
//IomegaStorCenter/public/Server /mnt/iomega cifs defaults,rw,username=YOURSHAREUSER,password=YOURPASSWORD 0 0
//IomegaStorCenter/public/Server /mnt/iomega cifs defaults,rw 0 0
9 - 安裝它,測試實體是否正常:
sudo mount /mnt/iomega
10 - 開啟 nautilus,進入 /mnt/iomega 並嘗試複製一些檔案。編輯、刪除等
如果有效的話,那就太好了。如果沒有,請嘗試使用終端複製檔案並將錯誤訊息貼到此處。也可以輸入ls -la /mnt/iomega
並sudo mount
貼上結果。
11 - 現在轉到 Wine 配置並確保 D: 指向新的正確位置 /mnt/iomega。也可以使用 nautilus 瀏覽/home/jmm/.wine/dosdevices/d:
並查看它是否正確的位置。
12 - 測試您的 VB 應用程式並感到高興:)
答案2
在 fstab 中使用這一行
//server/share /mnt/mountname cifs username=server_user,password=user_password,iocharset=utf8,mode=0777,dir_mode=0777 0 0
在哪裡
server = your server that you are trying to access
share = mapped share on that server
/mnt/mountname = any folder that you created with sudo /mnt/<folder_name> (or any folder in your home that you can access
username = the name of the user on that server that can access the mount
password = the password for that user
之後,您可以使用 進行測試sudo mount -a
,如果沒有出現任何錯誤,您可以安全地重新啟動以找到安裝在 中的共用/mnt/<folder_name>
。
要使用憑證檔案而不是 fstab 上的使用者名稱和密碼參數,您可以建立包含這兩行的文件,以便您的使用者名稱和密碼不會明確顯示在 fstab 中
sudo nano /etc/cifspwd
將這些行新增到文件中
username=<username on server>
password=<password for that username>
按 ctrl+x 鍵,並在詢問時按 y 儲存檔案。
用以下方法保護它
sudo chmod 600 /etc/cifspwd
使用這一行代替上一行
//server/share /mnt/mountname cifs credentials=/etc/cifspwd,iocharset=utf8,mode=0777,dir_mode=0777 0 0
之後,您可以安全地重新啟動,並且您應該已掛載並且您的詳細資訊受到保護。