
У меня есть приложение 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=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
После этого можно будет безопасно перезагрузить компьютер, и ваш узел будет смонтирован, а ваши данные защищены.