web-dev-qa-db-ja.com

VMWare共有フォルダにクローンをgitできません

今朝の奇妙な問題-SSHまたはHTTPSのいずれかを使用して、GitHubのパブリックリポジトリから共有VMWareフォルダーにクローンをgitできません。私はFedora22で作業していますが、共有フォルダー以外のシステムのどこかでこのコマンドを試してみると、完全に機能します。

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)

共有フォルダがこれを引き起こしている理由を誰かが知っていますか?

33
Toby

同じ問題があります。これは、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 cloneが失敗すると、チェックアウトのファイル名を再び使用することはできません。

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

他の人は、VMWare共有フォルダの hardlinks および git clone の問題に気づいています。誰も解決策を見つけていません。

OS Xゲストを使用するときに、ディスクイメージを共有フォルダーに保存し、ディスクイメージをゲストにマウントしてから、マウントされたファイルシステムにgit-cloningすることで、この問題を回避しました。 同様の手法 Linuxでも機能する可能性がありますが、私は試していません。

7
bacongravy

ローレンスが指摘したように、これは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.

原因:

私の知る限り、これがこの問題と他のファイルシステム操作に関連する他のバグの背後にある理由です。より適切には、

この問題は、監査オブジェクトアクセスGPOが共有フォルダーで有効になっていて、共有フォルダーがホットプラグ可能なデバイス上にある場合に発生します。

解決策:

共有フォルダをマウントします。参照 this

共有フォルダを見つけます。

共有フォルダーで監査ファイルへのアクセスを無効にし、ホットプラグ可能なデバイスをすべて削除します。

これがお役に立てば幸いです。

数か月前、私の開発チームは、同僚が組織を代表してサポートチームに連絡したという同様の問題に直面しました。

Hashicorp supportのAlvaroAguileraは、問題を指摘するのに十分親切でした。当初、サポートチームはFusion 8.0.2に移行することを提案していました。これは、面倒な作業を避けたい場合にも機能します。

以下は、2016年5月20日のサポートチームからの最後のメッセージです。

お問い合わせいただきありがとうございます。

ログによると、HGFSモジュールがVMに存在しないようです。

さらに、8.1。*および転送ポートでVMWare Fusionの問題が発生します。これは、問題なく動作することがわかっている最後の問題であるため、Fusion8.0.2に移動してみてください。

開発者チームが2017年第1四半期2017年第1四半期に解決される予定であることを確認したため、最新のVMware Fusionではなく、古いボックスを使用してください。

理解に感謝。

Fusion 8.0.0に移行し、この問題は解決されました。

4
Aditya C

私は今日修正を見つけました。すべての人に同じかどうかはわかりませんが、smbmfsymlinksを使用するようにVM syncフォルダーを構成する必要があります

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

これで、GitとシンボリックリンクをVM内で問題なく正しく使用できるようになりました。

1
Laurence

私は同じ問題を抱えていましたが、解決策を見つけました。私のセットアップでは、ゲストにVMware Workstation12.5.5とLinuxカーネル4.4を使用しています。ホストはLinuxカーネル4.10.8を実行しています。 Linuxゲストの$ HOMEの下にある最新のopenvm-toolsをgitcloneする必要があります(もちろん、HGFSマウントディレクトリの下ではありません): https://github.com/vmware/open-vm-tools

指示に従い、ソースからopenvm-toolsをコンパイルします。コンパイル後、/ usr/bin/vmhgfs-Fuse(cd/usr/bin; mv vmhgfs-Fuse vmhgfs-Fuse.bak)をバックアップし、$ HOME/open-vm-をコピーします。 tools/open-vm-tools/vmhgfs-Fuse/.libs/vmhgfs-/usr/binに融合します。

次に、$ HOME/open-vm-tools/open-vm-tools/libvmtools/.libs /libvmtools.so.0.0.0を/ lib64にコピーし、それにリンクを作成します。ln-s libvmtools.so.0.0.0 libvmtools .so.0

必要になる可能性のある他のライブラリを確認してください。 (ldd/usr/bin/vmhgfsを使用-どのライブラリが欠落しているかを確認し、それに応じてコピーします)

これで、vmwareゲストマシンを再起動すると、HGFSを介してホストにマウントされたディレクトリを使用してGitリポジトリを保存できるようになり、クローン、プル、プッシュが正常に機能するようになりました:)

0
Arkh4mkn1ght

この問題の回避策を見つけました。Windowsからフォルダーを共有してから、Linuxゲストでsambaとcif-utilsをインストールします。次に、次のようにホストのIPで共有をマウントできます。

(この行をfstabに追加します)

// YOUR_Host_IP/share/PATH_TO/GUEST_SHARE cifs user、noperm、rw、username = YOURUSERNAME、password = YOURPASSWORD 0 0

ここで重要なのはnopermの指定です

注:セキュリティ上の理由から、Windowsパスワードを資格情報ファイルに保存してここで呼び出すか、共有アクセス専用に指定されたユーザーをWindowsインスタンスに作成して、プライマリユーザーアカウントのアクセスを共有ユーザーに付与できます。

お役に立てれば。

あなたの心の欲望にクローンをGIT

0

これが私の解決策です。 VMware Machineではgitcloneができないため、他のコマンドを使用すると問題が発生する可能性があります。そのため、Windowsシステムでgit cloneを実行し、Windowsシステムでgitジョブを実行します。そしてそれは私のために働きます。

0
Andy

ここには関連する設定がないので、間違っているかもしれませんが、問題は共有フォルダでのみ発生するとおっしゃっています。私が考えるかもしれない1つのオプションは、SSH/HTTPSがそのようなフォルダーにあるときに自分のものとは異なるキーを使用することです。

この場合、考えられる解決策は、VMWareによってユーザーと見なされるユーザーのキーを定義することです。

ところで、リポジトリをプライベートフォルダに複製して共有しようとしましたか?それがそのように機能するか(問題がフォルダのローカル作成時にのみ発生することを示している可能性があります)、さらにプルまたはプッシュしようとしたときに同様または異なるエラーで失敗するか(問題がにあることを示している可能性があります)は興味深いです接続自体ですが、必ずしもそうとは限りません)。

0
Mike