Wine + Microsoft Access + Windows 共享

Wine + Microsoft Access + Windows 共享

我有一個在 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,fmaskdmask一樣減去從 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/iomegasudo 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=07‌​77 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=07‌​77 0 0

之後,您可以安全地重新啟動,並且您應該已掛載並且您的詳細資訊受到保護。

相關內容