Совместное использование файлов между 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 в папке, содержащей монтирование общей папки, нет списка элементов. Окно Nautilus просто долго висит совершенно пустым с надписью «Загрузка ...» в правом нижнем углу, несмотря на то, что в этой папке есть много других папок и файлов для показа.

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

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

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

4
задан 4 February 2013 в 17:33

3 ответа

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

.
0
ответ дан 4 February 2013 в 17:33

1. umount -f

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

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

    umount -f <localsharepath>

- f размонтирование Силы (в случае недостижимого сервера).

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

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

2. Измените smbfs на cifs с defaults

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

Это официально, что smbfs не сохраняется больше

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

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

stintel пятница 9 мая 2008: Другая хорошая вещь о CIFS состоит в том, что он должен пережить сетевое отключение электричества или даже перезагрузку системы, от которой Вы монтируете долю

3. Отключите Оппортунистическое Кэширование Блокировки и Поиска (Никакой эффект в сокращении 5 минимальных тайм-аутов соединения)

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

4. Проверка Открывать File (Not применимая основа на комментарии)

После Ubuntu резюме VM проверьте, использует ли какой-либо пользователь/процесс какой-либо файл/каталог в папке доли

lsof | grep '<localsharepath>'

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

2
ответ дан 4 February 2013 в 17:33

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

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

0
ответ дан 4 February 2013 в 17:33

Другие вопросы по тегам:

Похожие вопросы: