ローカルディレクトリをどのようにマウントしますか?


16

Linuxで(特に開発者にとって)できることの1つは、フォルダーをマウントし、システム上の別のフォルダーにローカルにバインドすることでした。

これは、Gitが異なるタイプのノードであると検出しないため、元のコンテンツを削除する必要がないため、シンボリックリンクよりも利点がありました。完了したら、アンマウントするだけで元のファイルシステムの内容が残ります。

しかし、mount -bindまたはmount.local(OS X 10.10.2、ヨセミテのよう)は、Mac上に存在していないようです。

これについてどうしますか?

回答:


10

以下のようにStackOverflow上の別のユーザーによって言及、あなたはNFSはこれに行うマウントを使用することができます。ただし、1回限りのセットアップが少し必要です。

最初に、/etc/exportsファイルを設定する必要があります(まだ設定していない場合)。

$ sudo tee -a /etc/exports <<< "/ -alldirs -mapall=$USER localhost"

次に、rpcおよびnfsdサービスを開始する必要があります。

$ sudo launchctl start com.apple.rpcbind
$ sudo nfsd start

そこから、NFSdに少し目を覚まし、朝食をとる時間を与えてください。

$ sudo mount localhost:/path/to/target ./mnt

元のコンテンツを復元するには、単に

$ sudo umount ./mnt

私はexfat usbドライブをマウントしようとしました$ sudo mount localhost:/Volumes/Aren/Movies /Users/me/Movies/
Necktwi

mount_nfs: can't mount /Volumes/Aren/Movies from localhost onto /Users/me/Movies: No such file or directory
ネクトウィ

もしそれを逆にすればうまくいく!
Necktwi

「そのようなファイルまたはディレクトリがありません」というメッセージが表示された場合は、先にマウント先のフォルダーを作成してみてください。あなたは、「アクセス許可が拒否されました」エラーが発生した場合、(それがピックアップに新しい輸出ライン、私は考えて再起動する必要ので、私にとっては、nfsdのはすでに、開始された)「はsudo nfsdの再起動」してみてください
ニック・

1
@JayGee私はOPです。当時私にとってはうまくいきましたが、Gitにはどのようなエラーがありますか?あなたが持っているcdアウト編、その後バックでのGitを使用する前に?シェルは、完全な文字列パスではなく、inodeに関連付けられたファイル記述子で動作する傾向があります。したがって、「同じ」ディレクトリにマウントして留まる場合、シェルは、マウントされたディレクトリではなく基礎ディレクトリを使用して動作します。Gitが何かをマウント済みと見なすべき理由はありません-マウントはそのようには動作しません。すべての意図と目的のために、それは同じタイプのファイルシステムです。
Qix-モニカは

9

別のオプション-bindfsがあります。FUSEをインストールする必要がありますが、NFSを使用する代わりになります。

ソースからコンパイルする必要があるかもしれませんが、MacPortsでも利用できるようです。


2
Homebrew:osxfuseをインストールしてからbrew install homebrew/fuse/bindfs(El Capitanでテスト済み。ユーザー指向のマウントのsudobindfsに必要なし)
-dhchdhd

ヒューズの欠点は、inotifyイベントをサポートしないことです。ソースが更新された場合、アプリは宛先の更新を監視している間、更新を受信しません。
薄暗いディープ

また、bindfsボリューム内で物事をコンパイルするとき、それは私にとって少し不安定です。特に、明確な理由なしに、Xcodeの特定のプロジェクトで「開いているファイルが多すぎる」ことを一貫して取得します。マウントせずにコンテンツをコピーするだけで、うまくビルドされます。
グリシュカ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.