Вопрос Совместное использование файлов между Ubuntu VM и Windows 7


У меня Ubuntu 12.04 работает как Гость на виртуализированной сессии VMware Workstation 9 на хосте Windows 7. Компьютер Windows совместно использует папку с машиной Ubuntu через CIFS, и машина Ubuntu автоматически устанавливает общую папку при запуске благодаря этой строке в /etc/fstab файл:

//<remotehost>/<sharename> <localsharepath> cifs soft,uid=1000,username=<remoteusername>,password=<remotepassword> 0 0

Совместное использование файлов с помощью монтирования отлично работает до тех пор, пока не будет возобновлена ​​виртуальная машина Ubuntu после ее приостановки или восстановления из моментального снимка. Обычно это происходит после перезапуска или запуска хост-машины Windows после ночного выключения.

После возобновления Ubuntu папка, содержащая mount общей папки, не содержит никаких элементов. Окно «Наутилус» довольно долго висит над «Загрузка ...» в правом нижнем углу, несмотря на то, что в этой папке есть много других папок и файлов.

Перезапуск машины Ubuntu помогает, но это непрактично: Ubuntu навсегда останавливается, он просто зависает на одном из тех финальных экранов командной строки, отчаянно ожидающих чего-то (когда монтируется, нет такой проблемы). На данный момент единственный вариант - отключить Ubuntu зверски, а затем снова включить его, чтобы иметь возможность доступа к монтированию, что, конечно же, тоже не практично.

Я предполагаю, что когда некоторые параметры связи CIFS / Samba меняются (после перезагрузки Windows) восстановленное изображение виртуальной машины Ubuntu каким-то образом не догоняет.

Даже если VMware Tools установлен на машине Ubuntu, функция общей папки VMware, которая может служить альтернативой, не работает для Ubuntu 12 (и многих других дистрибутивов Linux). Но даже если бы это было так, совместное использование CIFS / Samba было бы необходимо для совместного использования файлов с другими виртуальными машинами.


4


происхождения


Я считаю, что это скорее проблема, связанная с используемым виртуальным программным обеспечением, так и с каким хостом вы его используете. Можете ли вы добавить, какое программное обеспечение виртуализации вы используете? - Luis Alvarado♦
Вы пытались переустановить эту часть? Подобно: umount <localsharepath>; mount -a, - Pavel A
@PavelA Да. Он продолжает говорить, что «устройство занято». - Desmond Hume
(1) Есть ли какое-нибудь программное обеспечение daemon (dababase и т. Д.), Используя файлы в общей папке? (2) Любое сообщение об ошибке из syslog? - John Siu
@JohnSiu (1) Нет такого программного обеспечения демонов, ничто не блокирует какие-либо файлы в общей папке. (2) Единственный тип записи syslog, который я нашел, - это CIFS VFS: Server <remotehost> has not responded in 300 seconds. Reconnecting..., Любой, кто имеет доступ к ПК и с пробной версией VMware Workstation, может легко реплицировать проблему. Также нет необходимости перезапускать Windows, чтобы перевести ее в реалистичный контекст. Просто перезагрузите службу Windows под названием «Сервер», которая отвечает за совместное использование файлов с Windows, а Ubuntu - приостановлена. - Desmond Hume


ответы:


Я рекомендую использовать autofs вместо статического fstab запись. Видеть: https://help.ubuntu.com/community/Autofs


2



После нескольких тестов я должен сказать, что проблема не исчезает с autofs, Да, он автоматически отключает общий ресурс по истечении определенного времени, и если машина Ubuntu будет приостановлена ​​или снимок после того, как общий ресурс будет автоматически отключен, тогда все будет в порядке с монтированием после возобновления работы машины Ubuntu. Но если Ubuntu приостанавливается до того, как share будет автоматически отключен, он войдет в тот же набор проблем при возобновлении. И если я установил количество секунд автоотключения для небольшого значения, скажем, 10 секунд, окна Nautilus начинают спонтанно закрываться при просмотре общих файлов. - Desmond Hume


1. umount -f

Это не решение и не работает, а процедура (раздражающая).

После возобновления работы VM не пытайтесь просматривать общий диск с помощью Nautilus или любой программы. Не делай ls к нему. Любой вид доступа вызовет тайм-аут 5min и сделает занятую долю. Просто сделайте umount -f перед чем-либо.

    umount -f <localsharepath>

-f Извлечь размонтер (в случае недоступного сервера).

Пока ресурс не занят, он немедленно отключит этот ресурс, не вызывая тайм-аут cmins 5min.

Это определенно не идеально, но он не требует перезагрузки, и этот ресурс можно снова установить снова.

2. Изменение SMBFS в CIFS с defaults

//<remotehost>/<sharename> <localsharepath> cifs defaults,uid=1000,username=<remoteusername>,password=<remotepassword> 0 0

Официально, что smbfs больше не поддерживается

За последние несколько лет smbfs не поддерживался. Вместо этого разработка была сфокусирована на другой реализации протокола CIFS в ядре. См. CIFS VFS для получения дополнительной информации.

Основание для комментария этот блог (не может найти более авторитетную ссылку)

stintel Friday 9 May 2008: Еще одна приятная вещь в CIFS заключается в том, что она должна пережить перебои в сети или даже перезагрузить систему, в которой вы устанавливаете долю из

3. Отключить блокировку оппортунистического блокирования и поиска (не влияет на сокращение таймаута соединения 5min)

echo '0' > /proc/fs/cifs/OplockEnabled
echo '0' > /proc/fs/cifs/LookupCacheEnabled

4. Проверьте Open File (Неприменимо для комментария).

После возобновления работы виртуальной машины Ubuntu убедитесь, что какой-либо пользователь / процесс используя любой файл / каталог в папке общего доступа

lsof | grep '<localsharepath>'

Если какой-либо пользователь / процесс использует каталог / каталог в <localsharepath>, вы получите device busy(Это независимо от того, как он монтируется, локальный или удаленный).


2



Изменено smbfs в cifs и перезагрузили машину Ubuntu. Проблемы все еще сохраняются. Повторно повторяется, не улучшается. - Desmond Hume
Можете ли вы размонтировать долю с помощью cif? - John Siu
То же самое, что и с smbfs, он говорит, что «устройство занято». - Desmond Hume
Является ли эта точка монтирования частью samba? Остановите samba перед размонтированием. - John Siu
Нет, эта точка монтирования доступна только, а не из. Машина Ubuntu никогда не является файловым сервером, а только клиентом. - Desmond Hume


Если вы часто обмениваетесь файлами между хостом и гостем, используйте FTP или SFTP или даже программное обеспечение для контроля версий, такое как Git. Они более стабильны и полезны по сравнению с этими монтируемыми вещами.

Если нет, установите VMTools на гостевой Ubuntu. Затем вы можете перетаскивать файлы между хостом и гостем.


0