Существует ли файловая система копирования при записи для Mac OS X?

Я на снежном барсе. У меня установлены 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 в фс № 2, но затем содержимое d1 в fs #1 были полностью скрыты (каталог оказался пустым). По сути, объединяющее поведение происходило только на корневом уровне файловых систем и не было рекурсивным.

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

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

1 ответ

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

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

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

ОБНОВИТЬ

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

_libfuse = CDLL(_libfuse_path)

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

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

Другие вопросы по тегам