フォルダ
フォルダペインには、このワークスペースのVMに共有されている Mac 上のフォルダが一覧表示されます。共有フォルダは、実際のファイルシステムとサンドボックスをつなぐ橋渡し役です。エージェントが作業対象のコードを読み取り、加えた変更を書き込む場所となります。VM が触れるそれ以外のすべて(ホームディレクトリやシステムディスク)は使い捨てで隔離されていますが、共有フォルダはそうではありません。共有フォルダは、Mac への読み書き可能な生きた窓なのです。
このペインのキャプションは、ルールを正確に述べています。各フォルダはその実際の名前で VM 内にマウントされます(例: ~/Documents → ~ubuntu/Documents)。ワークスペースごとに最大 8 フォルダまでです。 フォルダが 1 つも設定されていない場合は、共有フォルダなしと表示されます。
フォルダが共有される仕組み
追加した各フォルダは、virtiofs 共有として VM にアタッチされ、/home/ubuntu/<basename> にマウントされます。ここで <basename> はフォルダ自身の名前です。~/Documents を共有すると、VM 内では ~ubuntu/Documents(すなわち /home/ubuntu/Documents)として表示されます。~/code/bromure を共有すると /home/ubuntu/bromure として表示されます。マウント名にはパスの最後の要素のみが使われるため、異なる場所にある同じ basename の 2 つのフォルダは衝突します。両方が必要な場合は、いずれか一方に別のディレクトリ名を付けてください。
この共有は読み書き可能です。VM 内のエージェントは、Mac 上のローカルプロセスと同じように共有フォルダ内のファイルを作成・変更・削除でき、それらの変更はホスト側で即座かつ恒久的に反映されます。これがワークスペースを有用なものにしています。エージェントは作業コピーをその場で編集し、Mac 上の git、エディタ、その他のツールは編集内容をリアルタイムに認識します。
共有は VM の起動時に設定された段階でアタッチされるため、この一覧への変更はワークスペースの VM が次に起動したときに適用されます。セッションの実行中にフォルダを追加または削除しても、それをホットプラグすることはありません。変更を保存してから、セッションを再起動して反映させてください。
警告: 共有フォルダはサンドボックスの一部ではありません。VM をリセットするあらゆる操作を生き延びます。ワークスペースを削除しても明示的に手を付けられません(確認ダイアログには「マウントされたホストフォルダはそのまま維持されます。」と表示されます)。また、ワークスペースが侵害されたとフラグ付けされてワイプされた場合でも、その共有フォルダはワイプされず、エージェントが書き込んだファイルが残っている可能性があります。エージェントが実際に必要とするフォルダのみを共有し、侵害イベントの後は共有フォルダを手作業で確認してください。侵害フローについては認証情報とワイヤ境界を参照してください。
フォルダの追加と削除
フォルダを共有するには、ペイン下部の**フォルダを追加…**をクリックします。これによりディレクトリピッカーが開き、一度に 1 つ以上のフォルダを選択できます。選択した各ディレクトリが新しい行になります。ワークスペースに 8 フォルダ(ワークスペースごとの上限)がすでに設定されると、このボタンは無効になります。
設定された各フォルダは、フォルダ名と Mac 上のフルパスを示す行として表示されます。行のマイナスボタンをクリックすると、そのフォルダの共有を停止できます。ここで行を削除しても、ホスト上のフォルダやその内容が削除されることはありません。次回起動時に VM から切り離されるだけです。
現在共有されているフォルダの一覧は、実行中のセッションからも確認できます。セッションウィンドウの情報パネルには共有フォルダ一覧が表示され、エージェントがアクセスできる範囲を一目で確認できます。セッションを参照してください。
設定リファレンス
| 設定 | 種類 | デフォルト | 説明 |
|---|---|---|---|
| フォルダ一覧 | ホストパスのリスト | 空 | 各行にフォルダ名とフルホストパスが表示され、削除用のマイナスボタンがあります。/home/ubuntu/<basename> に読み書き可能でマウントされます。 |
| フォルダを追加… | ディレクトリピッカー(複数選択) | — | 1 つ以上のフォルダを追加します。8 フォルダが設定されると無効になります。 |
関連する章
- コンセプト — VM、その使い捨てレイヤー、virtiofs 共有がどのように組み合わさるか。
- セッション — 実行中のセッションウィンドウと共有フォルダ一覧。
- 認証情報とワイヤ境界 — 侵害時のワイプが何に影響し、何に影響しないか。
- 設定リファレンス — すべてのペインの一覧。