VirtualBox: Freigeben von Dateien vom Dateisystem eines VM-Gastbetriebssystems auf einem Pfad im Dateisystem des Hostbetriebssystems wie WSL?

VirtualBox: Freigeben von Dateien vom Dateisystem eines VM-Gastbetriebssystems auf einem Pfad im Dateisystem des Hostbetriebssystems wie WSL?

Prämisse

     Unter Windows macht das Windows-Subsystem für Linux – ich verwende WSL 2, aber das gilt meines Wissens auch für WSL 1 – die Dateisysteme der Linux-Gastinstanz dem Windows-Host über 9p verfügbar, insbesondere 9p2000.L. Gibt es eine Möglichkeit, etwas Ähnliches zwischen einem VirtualBox-Gastbetriebssystem und einem Hostbetriebssystem zu tun? Ich interessiere mich für mehrere Hostbetriebssysteme, darunter:

  • Mac OS
  • Windows

und mehrere Gastbetriebssysteme, darunter:

(Konzentrieren Sie sich ruhig auf die bekannteren und besser gepflegten davon; ich verlange hier keinen übermäßigen Aufwand.)
     Einige mögliche Untersuchungswege, die mir bekannt sind, sind:

  • 9p, wie bereits erwähnt von WSL2 verwendet.

  • virtio

         (Notiz:

  • VirtFS

  • Nicht virtiofs, da in der wichtigsten Dokumentation steht, dass es zum Teilen von Dateien von einem Host-Betriebssystem zu einem Gast-Betriebssystem dient und nicht umgekehrt, wie ich es möchte.

  • virt-manager, vielleicht…?

  • SSHFS

(Bei den Antworten kann zwischen einer oder mehreren dieser Lösungen als abgedeckte Lösung gewählt werden.) Außerdem weiß ich, dass QEMU/KVM Virito/9p-Unterstützung haben, aber ich würde gerne wissen/sehen, ob die Art von Dateifreigabevereinbarung, nach der ich suche, mit VirtualBox möglich ist. Ich bin damit vertraut und es ist einfacher einzurichten, zumindest in dem Sinne, dass Sie keine Rohkonfigurationsdateien ändern oder CLI-Befehle ausführen müssen.

Hintergrund

     Der Grund, warum ich gerne wissen würde, wie man den Inhalt des Dateisystems eines VM-Gastbetriebssystems mit einem Hostbetriebssystem teilt, ist:

  • Für:

    • Kernel- und Betriebssystementwicklung
    • Möglicherweise wird in Zukunft eine Kernel-Erweiterung entwickelt
  • Wo der Leistungsmehraufwand ins Spiel kommt:

    • Wenn das Host-Betriebssystem auf Dateien im Dateisystem des Gast-Betriebssystems zugreift,
    • Nicht jedes Mal, wenn das Gastbetriebssystem auf Build- und andere Projektdateien zugreifen muss.

    Ich möchte Build-/Projektdateien nicht irgendwo auf einem Dateisystemspeicherort des Host-Betriebssystems speichern und dadurch das Gast-Betriebssystem mit dem Leistungsaufwand und den Kosten für den Roundtrip durch den verwendeten Dateifreigabemechanismus belasten. Zugriffe des Gast-Betriebssystems auf Dateisystemspeicherorte innerhalb des enthaltenen VM-Disk-Images sollten eine nahezu native/rohe Leistung oder zumindest eine annähernd native oder höhere Leistung erzielen.

Antwort1

Ich habe noch nie von 9p gehört, aber ich fandhttps://wiki.qemu.org/Documentation/9psetupund insbesonderehttps://wiki.qemu.org/Documentation/9pinteressant.

Ich denke auch, dass Qemu mit Virsh Ihren Entwicklungs- und Debugging-Anforderungen besser gerecht wird (und vielleicht schneller ist). Qemu und/oder libvirt werden auf der MacOS-Plattform unterstützt und Windows funktioniert vielleicht, aber ich denke, es ist aufgrund der Auswahl und des Designs von MS restriktiver (HyperV ist ihr Ding und so).

Warum kein Linux-Host? Aber ich beschränke mich auf die Beantwortung Ihrer allgemeinen Frage. Angesichts Ihrer Hintergrundbegründung: Warum mounten Sie die virtuelle Festplatte nicht bei Bedarf? libguestfs oder mein Favorit qemu-nbd könnten Ihnen erlauben, sie bei Bedarf zu mounten. qemu-ndb hat bei mir in der Vergangenheit mit mehreren Arten von Client-Betriebssystemen funktioniert, darunter Mac, Xbox und NTFS (Windows).

Wie kann ich in QEMU ein Verzeichnis ohne Netzwerk mit dem Host teilen?scheint Ihre Fragen vielleicht teilweise zu beantworten? Qemus System- und Kernel-Debugging-Fähigkeiten erweitern den Werkzeugkasten ebenfalls erheblich. Virsh als Frontend ist vielleicht ein bisschen umständlich, aber in gewisser Weise automatisierter.

Antwort2

VirtualBox verfügt über eine Funktion für freigegebene Ordner, die verfügbar ist, wenn Sie die Guest Additions in Ihrem Gastbetriebssystem installieren (Kapitel 4. Gastzugänge).

Ich habe keine Erfahrung mit freigegebenen Ordnern, habe aber die Guest Additions in einigen VMs zur Unterstützung der Mauszeigerintegration installiert.

Bearbeiten: Ich habe gerade den obigen Link durchgesehen und den Guest Control File Manager gefunden (4.8. Dateimanager für die Gaststeuerung), was benutzerfreundlicher sein könnte als die freigegebenen Ordner.

verwandte Informationen