У меня 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 в папке, содержащей монтирование общей папки, нет списка элементов. Окно Nautilus просто долго висит совершенно пустым с надписью «Загрузка ...» в правом нижнем углу, несмотря на то, что в этой папке есть много других папок и файлов для показа.
Перезапуск компьютера с Ubuntu помогает, но это не практично: для завершения работы Ubuntu требуется вечность, он просто зависает на одном из последних окон командной строки, отчаянно ожидая чего-то (когда монтирование доступно, такой проблемы нет). ). На данный момент единственный вариант - это жестко отключить Ubuntu, а затем снова включить его, чтобы получить доступ к маунту, что, конечно, также не практично.
Я предполагаю, что когда некоторые параметры связи CIFS / Samba изменяются (после перезапуска Windows), восстановленный образ виртуальной машины Ubuntu каким-то образом перестает работать.
Даже с установленными VMware Tools на компьютере с Ubuntu, функция общих папок VMware, которая может служить альтернативой, не работает для Ubuntu 12 (и многих других дистрибутивов Linux). Но даже если бы это было так, общий доступ к CIFS / Samba по-прежнему требовался бы для обмена файлами с другими виртуальными машинами.
Я рекомендую использовать autofs
вместо статической fstab
записи. См .: https://help.ubuntu.com/community/Autofs
umount -f
Это не решение, ни работа вокруг, а процедура (раздражающая).
После резюме VM не пытайтесь просмотреть диск доли с Наутилусом или любой программой. Не делать ls
к нему. Любой вид доступа инициирует 5 минимальных тайм-аутов и сделает долю занятой. Просто сделайте umount -f
перед чем-либо.
umount -f <localsharepath>
- f размонтирование Силы (в случае недостижимого сервера).
Пока доля не занята, это сразу размонтирует долю, не инициировав 5 минут cifs тайм-аут.
Это определенно не идеально, но это не требует перезагрузки, и доля может быть монтированием снова сразу же.
defaults
//<remotehost>/<sharename> <localsharepath> cifs defaults,uid=1000,username=<remoteusername>,password=<remotepassword> 0 0
Это официально, что smbfs не сохраняется больше
smbfs не сохранялся в последние несколько лет. Вместо этого разработка была сфокусирована на другой реализации протокола CIFS в ядре. Посмотрите VFS CIFS для получения дополнительной информации.
Основа на комментарии этого блога (не может найти более авторитетную ссылку),
stintel пятница 9 мая 2008: Другая хорошая вещь о CIFS состоит в том, что он должен пережить сетевое отключение электричества или даже перезагрузку системы, от которой Вы монтируете долю
echo '0' > /proc/fs/cifs/OplockEnabled
echo '0' > /proc/fs/cifs/LookupCacheEnabled
После Ubuntu резюме VM проверьте, использует ли какой-либо пользователь/процесс какой-либо файл/каталог в папке доли
lsof | grep '<localsharepath>'
Если какой-либо пользователь/процесс будет использовать файлы/каталог в <localsharepath>, то Вы доберетесь device busy
(Это независимо от того, как это - монтирование, локальное или удаленное).
Если вы часто обмениваетесь файлами между хостом и гостем, используйте FTP или SFTP или даже программное обеспечение для контроля версий, такое как Git. Они более стабильны и полезны по сравнению с этими приспособлениями.
Если нет, установите VMTools на гостевую Ubuntu. Затем вы можете перетаскивать файлы между хостом и гостем.