web-dev-qa-db-ja.com

仮想化:VirtFS(9p)共有のシンボリックリンクをたどる

別のデバイスへのシンボリックリンクがあるホストマシン上のフォルダがあります。このような

$ ls -all ~/folder_to_share
...
file1
file2
linked_dir -> /mnt/bdrive/real_dir/
...

libvirt および vagrant-libvirt を介してQEMU仮想マシンをセットアップします。また、ホストディレクトリにマップされている共有フォルダを設定します~/folder_to_share using VirtFS9pプロトコル )。

仮想マシンが共有ディレクトリ内を歩き、実際のディレクトリであるためシンボリックリンクをたどってほしい。それは可能ですか、それとも別のプロトコルに切り替える必要がありますか?

P.S. vagrant-libvirtの一部 config

config.vm.synced_folder "~/folder_to_share/", "/home/vagrant/shared_folder", type: '9p', owner: 1000
1
petRUShka

私はずっと前にバインドマウントでそれを解決しました。シンボリックリンクを削除して、バインドマウントに置き換えることができます。

mkdir /symlink/to/replacemount -o bind /src/dir /symlink/to/replace

しかし、試してみると、「diod」9pサーバーがバインドマウントを無条件にスキップしていることがわかりました。だから私はそれにパッチを当てなければなりませんでした。

注:Plan9とその隣接プロジェクトは、一般に、ダイナミックリンクやシンボリックリンクなどの多くの「悪い習慣」に抗議します。他の環境であっても、これらをサポートしないのはおそらく正常です。したがって、他の場所へのシンボリックリンクでいっぱいのディレクトリがある場合は、9pサーバーソフトウェアにパッチを適用することになります。

2
user140866