Подтвердить что ты не робот

Не удается git клонировать общую папку VMWare

Странная проблема сегодня утром - я не могу клонировать git из публичного репо на GitHub в мою общую папку VMWare с SSH или HTTPS. Я работаю над Fedora 22, и если я пробую эту команду в любом месте системы, кроме общей папки, она отлично работает.

git clone https://github.com/twbs/bootstrap.git
Cloning into 'bootstrap'...
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Шаги, которые я пробовал:

  • Перезагрузка VM и хоста Mac (запуск El Capitan)
  • Переустановка git
  • Проверка разрешений (drwxr-xr-x)

Кто-нибудь знает, почему общая папка может вызвать это?

4b9b3361

Ответ 1

У меня такая же проблема. Я считаю, что это может быть связано с тем, что файловая система общих папок VMWare не поддерживает все операции с файловой системой должным образом. Например, вы не можете создать жесткую ссылку:

$ touch foo
$ ln foo bar
ln: bar: Operation not supported

... и вы не можете скопировать символическую ссылку:

$ touch foo
$ ln -s foo bar
$ cp -R bar baz
cp: bar: could not copy extended attributes to baz: Invalid argument

Кроме того, как только клон git терпит неудачу, имя файла проверки не может быть снова использовано:

$ git clone https://github.com/twbs/bootstrap.git
Cloning into 'bootstrap'...
[...]
fatal: index-pack failed
$ touch bootstrap
touch: bootstrap: Input/output error

Другие заметили проблемы с hardlinks и git clone в общих папках VMWare. Никто не нашел решение.

Я работал над этой проблемой при использовании гостевой ОС OS X, сохраняя образ диска в общей папке, монтируя образ диска в гостевой системе, а затем git -cloning в смонтированную файловую систему. подобный метод может работать в Linux, но я его не пробовал.

Ответ 2

Как отметил Лоуренс, это проблема VMWare версии 0.6.0. Это происходит потому, что:

VMware изменила пакет инструментов и переместилась из HGFS в FUSE вместо того, чтобы быть в ядре.

В папке /mnt/hgfs нет папок, а общие папки создаются под папкой с именем shared_folder.

Симптомы

  • Невозможно получить доступ к общей папке на виртуальной машине с других компьютеров в сети.
  • Общая папка с соответствующими разрешениями на виртуальной машине недоступна по сети.

Ошибка, аналогичная:

You cannot access ip_address\folder_name
You do not have permission to access ip_address\folder_name. Contact your network administrator to request access.

Причина:

Насколько я вижу, это причина этой проблемы и другие ошибки, связанные с другими операциями файловой системы. Более того,

Эта проблема возникает, если объект групповой политики доступа объекта аудита включен в общей папке, а общая папка находится на устройстве с возможностью "горячей" замены.

Решение:

Установите общие папки. См. this

Найдите общие папки.

Отключить доступ к файлам аудита в общей папке и удалить все устройства с возможностью "горячей" замены.

Надеюсь, это поможет.

Несколько месяцев назад моя команда разработчиков столкнулась с аналогичной проблемой, касающейся того, что коллега связался с группой поддержки от имени организации.

Альваро Агилера от Hashicorp support был достаточно любезен, чтобы указать на проблему. Первоначально команда поддержки предложила перейти на Fusion 8.0.2, который также работает, если вы хотите избежать хлопот.

Ниже приводится заключительное сообщение от команды поддержки 20 мая 2016 года:

Спасибо, что обратились к нам.

В соответствии с журналом, кажется, что модуль HGFS отсутствует на виртуальной машине.

Кроме того, есть проблема слияния VMWare с 8.1. * и переадресованными портами, попробуйте перейти к Fusion 8.0.2, так как это последнее, которое, как известно, работает без проблем.

Пожалуйста, используйте старые блоки для вашего использования, а не последние версии VMware Fusion, поскольку команда разработчиков подтвердила, что ожидается, что она будет решена в Q1 2017.

Спасибо за понимание.

Мы перешли на Fusion 8.0.0, и эта проблема была решена.

Ответ 3

Я нашел исправление сегодня. Не уверен, что все одинаково для всех - но вам нужно настроить папку синхронизации VM для использования smb, а также mfsymlinks

config.vm.synced_folder ".", "/vagrant", type: "smb", mount_options: ['vers=3.02', 'mfsymlinks']

Теперь я могу использовать Git и символические ссылки внутри VM без проблем.

Ответ 4

Вот мое решение. Поскольку в VMware Machine не может выполняться клонирование git, а при использовании других команд это может вызвать проблемы. Итак, я git клон в системах Windows и выполняю мои задания git в моей системе Windows. И это работает для меня.

Ответ 5

У меня нет соответствующей настройки здесь, поэтому я могу ошибаться, но... вы говорите, что проблема возникает только в общих папках. Один из вариантов, о котором я мог подумать, заключается в том, что SSH/HTTPS использует другой ключ, чем ваш, когда в такой папке.

Если это так, то возможным решением является определение ключей для тех, кто рассматривается VMWare как пользователь.

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

Ответ 6

У меня была такая же проблема, но я нашел решение. Моя установка использует VMware Workstation 12.5.5 и ядро ​​Linux 4.4 для гостя. Хост запускает ядро ​​Linux 4.10.8. Вам нужно git клонировать последние инструменты openvm у вашего гостя Linux под $HOME (конечно, не под вашим каталогом HGFS): https://github.com/vmware/open-vm-tools

следуйте инструкциям и скомпилируйте openvm-инструменты из источника. После компиляции backup/usr/bin/vmhgfs-fuse (cd/usr/bin; mv vmhgfs-fuse vmhgfs-fuse.bak) и скопируйте $ HOME/open-vm-tools/open-vm-tools/vmhgfs-fuse/.libs/vmhgfs-fuse в /usr/bin.

Затем скопируйте $HOME/open-vm-tools/open-vm-tools/libvmtools/.libs/libvmtools.so.0.0.0 в /lib 64 и создайте для него ссылку: ln -s libvmtools.so.0.0.0 libvmtools.so.0

Проверьте наличие других библиотек. (используйте ldd/usr/bin/vmhgfs-fuse, чтобы узнать, какие библиотеки отсутствуют и копировать соответственно)

Чтобы перезагрузить гостевую машину vmware, вы сможете использовать ваш хост, установленный через HGFS, для хранения репозиториев git, клонирования, выдержек, нажатий теперь работают нормально:)