2

Этот вопрос является своего рода противоположностью кодирования в Visual Studio в Linux VM? , Я подумал о том, чтобы разместить его в Stack Overflow, но так как это не является чисто программной проблемой, я подумал, что он лучше подойдет для SuperUser.

У меня есть виртуальная виртуальная машина VirtualBox, которая работает под управлением Windows 7, Visual Studio 2012 и некоторых других факторов и заканчивается на моей основной системе Linux. Это хорошо работает, но, прежде всего, для облегчения создания полезных резервных копий, я хотел бы разместить локальное дерево исходного кода вне виртуальной машины. (Резервное копирование виртуальной машины выполняется, но только способом "полный или полный образ диска", а не гораздо более полезными отдельными файлами, в которых выполняется резервное копирование хост-системы.)

Я попытался просто создать общий каталог, такой как ~/src на хосте и отобразить его в виртуальной машине. Само сопоставление работало нормально, и я смог выполнить Получить последнюю версию из управления исходным кодом, чтобы заполнить ее, но кажется, что стороне хоста не нравится что-то о том, как Visual Studio создает некоторые из своих рабочих файлов, и я получил большой количество ошибок из-за этого (включая ошибки сборки из CSC и друзей о недопустимых форматах файлов). Я полагаю, что атрибут "скрытый" в некоторых файлах может иметь к этому какое-то отношение, поскольку ext3, по крайней мере, напрямую не поддерживает такие причудливые свойства для файлов, но могут быть и другие факторы.

Таким образом, возникает вопрос: как я могу сделать так, чтобы Windows внутри виртуальной машины VirtualBox могла хранить файлы как отдельные файлы на хосте так, как это работает с тем, как Visual Studio 2012 создает свои рабочие файлы?

Мне известно о возможности регулярно копировать файлы из ВМ изнутри ВМ, но я бы не стал идти по этому пути, если есть другой вариант.

2 ответа2

0

Я просто приведу это как возможное решение, потому что ваша проблема звучит аналогично той, с которой я столкнулся, хотя фактические детали аппаратного и программного обеспечения сильно отличаются, по крайней мере, внешне.

В моем случае у меня был коммерческий NAS под управлением Linux в моей сети Windows. Общие ресурсы на NAS появляются и в основном работают на компьютере Windows в сети, однако SMB-сервер, работающий на NAS, не поддерживает все атрибуты файловой системы NTFS, что иногда является проблемой, поскольку некоторые из используемых мной программ зависят от них.

Обходное решение, которое я использую, на удивление, основывалось на TrueCrypt, хотя его целью на самом деле не является шифрование файлов. Причина в том, что TrueCrypt позволяет создавать большие файлы томов TC, в которых он эмулирует зашифрованную версию собственной файловой системы Windows NTFS. Сам файл тома не должен поддерживать какие-либо необычные атрибуты файла, но прекрасно поддерживает все из них для всех файлов, которые он содержит.

Чтобы получить доступ к файлам, хранящимся на NAS, я просто сначала монтирую файл тома TrueCrypt в сетевой папке на одном из компьютеров Windows, на котором установлено каждое программное обеспечение TrueCrypt, которое создает виртуальный диск, содержимое которого содержит все нормально действующие NTFS-файлы, включая все их атрибуты.

TrueCrypt настолько быстр, что его использование практически невозможно обнаружить с точки зрения производительности. Тем не менее, вы можете использовать что-то другое, если хотите, если оно предоставляет такую же возможность для перечисления файловой системы NTSF с использованием содержимого другого файла. Возможно, вы могли бы просто использовать для этой же цели тот же Windows 7 или отдельный файл тома VirtualBox VDI (Virtual Disk Image).

0

Вы смотрели на Vagrant? Общие файлы живут на хосте и по-прежнему доступны, когда виртуальная машина выключена. Большинство бродячих ящиков работают в автономном режиме, но вы можете переключить их для загрузки графического интерфейса. При этом я никогда не использовал бродячую коробку для окон :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .