4

Я на снежном барсе. У меня установлены MacFUSE и fuse4x. Можно ли установить файловую систему копирования при записи?

Я попытался собрать UnionFS-FUSE 0.25 с использованием include и библиотек fuse4x, но я получаю эту ошибку:

error: ‘AT_SYMLINK_NOFOLLOW’ undeclared

Похоже, что OS X не определяет эту константу (я извлек все /usr /include, и он не был найден).

Я также пытался использовать встроенные в OS X объединения монтирования (mount -o union), но он не работал должным образом. Я смонтировал 2 файловые системы (используя файлы dmg) с опцией объединения в одну точку монтирования. Первая была доступна только для чтения и имела каталог d1 содержащий некоторые файлы. У второго не было каталога с таким именем. Когда я попытался создать файл в d1 в объединении, я получил ошибку fs только для чтения. Я ожидал, что он автоматически создаст каталог и файл под ним, как в fs # 2. Затем я попытался создать d1 в fs # 2, но затем содержимое d1 в fs # 1 было полностью скрыто (каталог оказался пустым). По сути, объединяющее поведение происходило только на корневом уровне файловых систем и не было рекурсивным.

Если кто-то хочет попробовать воспроизвести встроенное поведение монтирования объединения, я воспользовался этим руководством.

Я не знаком с файловыми системами копирования при записи - совпадает ли мое ожидание с тем, как должны работать файловые системы копирования при записи?

1 ответ1

3

После небольшого исследования мне, возможно, придется отказаться от заранее написанного решения и просто написать свое собственное.

Похоже, что PyFilesystem обладает потенциалом, особенно тип MultiFS fs. Его FUSE-коду нужен патч для работы с fuse4x.

В документации MultiFS не ясно, будет ли она создавать каталог на доступном для записи fs, но я попробую.

ОБНОВИТЬ

Патч представил ошибку, когда перемещал эту строку перед загрузкой iconv CDLL:

_libfuse = CDLL(_libfuse_path)

Просто переместите его сразу после, и он должен работать на OS X. (Общее исправление требует также добавления строки после if _system in блоке.)

Поэтому я попробовал MultiFS, и он не создает отсутствующие каталоги на записываемой FS. Но я предполагаю, что это легко добавить (хотя я не эксперт по питону). Кроме того, попытка перезаписать или добавить файл в одну из файлов только для чтения не всегда создает соответствующий путь для записи. Я получаю много ошибок и зависаний (процесс плавкого предохранителя начинает использовать большое количество процессоров). Это решение по-прежнему выглядит очень многообещающе.

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