Задача : У меня есть портативное устройство Linux, которое записывает данные и сохраняет их на диске.Он должен обмениваться этими данными с приложением Windows через USB.Когда эти данные доступны пользователю - например, через USB-накопитель - они должны быть зашифрованы.Он должен работать "из коробки", с различными ОС, также для терминальных сессий Citrix и т. Д.
План : я создаю файловую систему в пространстве пользователяс FUSE , и предлагать его для окон через запоминающее устройство.Всякий раз, когда Windows обращается к одному файлу, я получаю обратный вызов и шифрую данные на лету.Более того, у нас может быть некоторое динамическое содержимое - например, когда в файл записывается какой-либо пароль, отображается больше содержимого.
Проблема : при использовании гаджета-накопителя (например, g_file_storage ) он принимает только файлы или блочные устройства - но не файловые системы (каталоги).Почему?
[...] он обеспечивает простой интерфейс для чтения и записи секторов данных - во многом как низкоуровневый интерфейс, используемый для доступа к любому жесткому диску [...].Операционные системы могут относиться к USB-накопителю как к жесткому диску и могут форматировать его в соответствии с любой файловой системой.(из wikipedia )
Так что нет никакой возможности иметь динамическую файловую систему через запоминающее устройство большой емкости ... и это, кажется, причина, почему мой мобильный Androidтелефон отключает все данные на телефоне, когда я подключаю его к ПК.
Опции :
- Создание блочного устройства 'в пользовательском пространстве '- аналогично FUSE (нужен динамический FAT-драйвер, когда я хочу динамически предлагать файлы)
- Реализация собственного nbd-сервера для создания блочного устройства (требуется обратныйТакже и FAT-драйвер?)
- Я сохраняю зашифрованные файлы в раздел и передаю этот раздел в гаджет памяти (проблема может быть в производительности и отсутствии динамического взаимодействия)
- Не предлагайте устройство массовой памяти и следите за другими идеями (например, через USB)
На данный момент только последний вариант кажется реалистичным - или у вас есть другой совет для меня?
Буду благодарен!
Чарли