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


18

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

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

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

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


1
参考までに、ホストがwindows7、8、10の場合は、回答の指示に従う必要があります。また、symlinkをオンにしたLinuxゲストVM共有フォルダーに関するこのブログ投稿にあるように、sudo VM(別名「管理者として実行」)Windowsホスト
トレバーボイドスミス

回答:


23

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

このコメントを参照してください

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

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

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

 VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1

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

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

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

このコマンドを実行し、VBを再起動しました。シンボリックリンクの色は変更されましたが、今ではその中にcdすることさえできません。lsを使用すると表示されますが、bashはTABでの表示を停止しました。
dev9

うーん、それは実行可能ではないように聞こえますか?
リンツウィンド14

まあ、lsはlrwxrwxを表示します---それで問題ないはずです。そこにcdしようとすると、bashはそのようなファイルやディレクトリがないことを教えてくれます。
dev9 14

3
SHARE_NAMEとは どこで入手できるのか、誰も明確に説明していません。
メリオ

3
共有に使用するフォルダー。
リンツウィンド

1

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

virtualbox.org の次のチケットには明確な説明があります。

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

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

ソース

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.