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

与一样umaskfmaskdmask减去从 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

此后,您就可以安全地重新启动,并且您的安装应该已经完成​​,您的详细信息也得到了保护。

相关内容