web-dev-qa-db-ja.com

ゲストOSが共有フォルダーのシンボリックリンクをたどる方法

VirtualBox 4.2.16では、メインOSとしてUbuntuデスクトップを、ゲストOSとしてUbuntu Serverを使用しています。

/ sharedという共有フォルダーを作成し、メインOSのさまざまなフォルダーへのシンボリックリンクをいくつか入れました。もちろん、ゲストOSには壊れたシンボリックリンクしか表示されません。これらの場所はメインOSにのみ存在するためです。

ゲストOSに実際のコンテンツを表示させるにはどうすればよいですか?

別の共有フォルダーを作成することはオプションではありません。

18
dev9

これは、virtualBoxの問題であり、セキュリティに関係しています。 4.1.8より前のシンボリックリンクは機能しましたが、深刻な欠陥がありました。そして、シンボリックリンクのサポートを削除することを決定しました。

このコメントを参照

VirtualBox 4.1.8では、セキュリティ上の理由から、ゲスト内からのシンボリックリンクの作成が無効になっています。ゲストは、割り当てられたホストディレクトリの外部を指すシンボリックリンクを作成できます。これは、ext3/ext4のバグとは関係ありません。また、ゲストはホスト上で作成されたシンボリックリンクを引き続き読み取ることができます。

声明が遅れてすみません。

もしあなたがそうするなら

 VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1

その後、ゲストは再びシンボリックリンクを作成できるようになります。ただし、セキュリティ上の理由(上記参照)により、これはデフォルトで無効になっています。ゲストからの危険なシンボリックリンクを防ぐための修正は非常に複雑であるため、セキュリティ問題を回避するためにゲストがシンボリックリンクを作成できないようにすることにしました。

(私はコメントのバグを修正するために自由を取りました;))

  • また、変更を有効にするには vBoxを再起動 する必要があることに注意してください。
23
Rinzwind

簡単に言えば、それはできません。

Virtualbox.orgの次の ticket には明確な説明があります。

この変更は意図的なものであり、共有フォルダーの現在の実装に関する問題を修正します。現時点ではホスト側で解釈されるシンボリックリンクが何であるかわからないゲストOSとの互換性のために、これはシンボリックリンクが何であるかを知っているゲストOSで予期しない動作をすることを意味します(たとえば、共有フォルダのシンボリックリンクがマウントされている場合/ fooで/ bar/fileを指すと、ホスト側で正しいことを行うことができなくなります)。

もちろん修正可能ですが、ゲストOS側とホスト側の間のシンボリックリンク処理の分離を再設計する必要があるため、些細なことではありません。これはすぐには実行できないため、唯一のオプションはシンボリックリンクの作成を無効にすることでした。あまりにも多くのユーザー/アプリケーションが、非標準の動作に驚かされました。

ソース

1
Sylvain Pineau