Wine + Microsoft Access + Windows Share

Wine + Microsoft Access + Windows Share

У меня есть приложение VB6, работающее на Wine. Это приложение использует базу данных mdb, но файл mdb находится на общем ресурсе Windows (Iomega StorCenter). Я монтирую общий ресурс через fstab и назначаю букву "d:" через Wine. При запуске приложение выдает исключение, так как не может заблокировать файл 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 config и убедитесь, что 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

После этого можно будет безопасно перезагрузить компьютер, и ваш узел будет смонтирован, а ваши данные защищены.

Связанный контент