VirtualBox: общий доступ к файлам из файловой системы гостевой ОС виртуальной машины в файловой системе ее хостовой ОС, например WSL?

VirtualBox: общий доступ к файлам из файловой системы гостевой ОС виртуальной машины в файловой системе ее хостовой ОС, например WSL?

Помещение

     В Windows подсистема Windows для Linux — я использую WSL 2, но это также применимо к WSL 1, насколько я понимаю — делает файловые системы гостевого экземпляра Linux доступными для хоста Windows через 9p, в частности 9p2000.L. Есть ли способ сделать что-то подобное между гостевой ОС VirtualBox и ОС хоста? Мне это интересно для нескольких ОС хоста, включая:

  • macOS
  • Окна

и несколько гостевых ОС, включая:

(Вы можете свободно сосредоточиться на наиболее известных и поддерживаемых в хорошем состоянии из них; я не прошу вас прилагать чрезмерные усилия.)
     Некоторые потенциальные направления расследования, о которых я знаю, включают:

  • 9p, используемый WSL2, как упоминалось ранее.

  • виртио

         (Примечание:

  • VirtFS

  • Нет virtiofs, поскольку в его наиболее известной документации указано, что он предназначен для обмена файлами из хостовой ОС в гостевую ОС, а не наоборот, как мне хотелось бы.

  • virt-manager, может быть…?

  • СШФС

(Ответы могут выбирать между использованием одного или нескольких из них в качестве решения, которое они охватывают.) Кроме того, я знаю, что QEMU/KVM поддерживают virito/9p, но я хотел бы узнать/посмотреть, возможен ли тот тип соглашения о совместном доступе к файлам, который я ищу, с VirtualBox. Я с ним знаком, и его проще настроить, по крайней мере в том смысле, что вам не нужно изменять сырые файлы конфигурации или выполнять команды CLI.

Обоснование предпосылки

     Причина, по которой мне хотелось бы узнать, как поделиться содержимым файловой системы гостевой ОС виртуальной машины с хостовой ОС, заключается в следующем:

  • Для:

    • Разработка ядра и ОС
    • Возможно, в будущем будет разработано расширение ядра.
  • Где в игру вступают накладные расходы на производительность:

    • Когда хостовая ОС обращается к файлам в файловой системе гостевой ОС,
    • Не каждый раз гостевой ОС требуется доступ к файлам сборки и другим файлам проекта.

    Я не хочу хранить файлы сборки/проекта где-то в файловой системе хостовой ОС, тем самым заставляя гостевую ОС сталкиваться с издержками производительности и затратами на кругооборот через используемый механизм обмена файлами. Доступ гостевой ОС к файловым системам в образе диска виртуальной машины, содержащем ее, должен обеспечить производительность, близкую к нативной/сырой, или, по крайней мере, более высокую или близкую к нативной.

решение1

Я никогда не слышал о 9p, но я нашелhttps://wiki.qemu.org/Documentation/9psetupи особенноhttps://wiki.qemu.org/Documentation/9pинтересно.

Я также думаю, что Qemu с Virsh может больше подойти для ваших требований к разработке и отладке (и, возможно, будет быстрее). Qemu и/или libvirt поддерживаются на платформе MacOS, и Windows может работать, но я считаю, что это более ограничено выбором и дизайном MS (HyperV — их фишка и все такое).

Почему не Linux host? но я продолжу отвечать на ваш широкий вопрос. Учитывая ваше обоснование, почему бы не монтировать виртуальный жесткий диск, когда это необходимо? libguestfs или мой любимый qemu-nbd могут позволить вам монтировать его в то время, когда вам это необходимо. qemu-ndb работал у меня в прошлом с несколькими типами клиентских ОС, включая mac, xbox и ntfs (windows)

Как предоставить общий доступ к каталогу хосту без использования сети в QEMU?кажется, частично отвечает на ваши вопросы? Возможности отладки системы и ядра Qemu также добавляют много в набор инструментов. Virsh в качестве интерфейса может быть немного неуклюжим, но более автоматизированным в некотором смысле.

решение2

VirtualBox имеет функцию общих папок, которая доступна при установке гостевых дополнений в гостевую ОС (Глава 4. Гостевые дополнения).

У меня нет опыта работы с общими папками, но я установил гостевые дополнения на некоторых виртуальных машинах для поддержки интеграции указателя мыши.

Редактировать: Я только что просматривал ссылку выше и нашел Диспетчер файлов гостевого управления (4.8. Диспетчер файлов гостевого управления), которые могут быть более удобными, чем общие папки.

Связанный контент