Чи існує файлова система для копіювання на запис для Mac OS X?


4

Я на Snow Leopard. У мене встановлено як MacFUSE, так і fuse4x. Чи є файлова система копіювання на запис, яку я можу встановити?

Я спробував побудувати UnionFS-FUSE 0.25, використовуючи fuse4x's include і libs, але я отримую цю помилку:

error: ‘AT_SYMLINK_NOFOLLOW’ undeclared

Схоже, що OS X не визначає цю константу (я підстрибував все / usr / include і його не знайдено).

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

Якщо хтось хоче спробувати скопіювати вбудовану поведінку монтування об'єднання, я використав це керівництво .

Я не знайомий з файловими системами копіювання на запис - чи відповідає моє очікування тим, як повинні працювати файлові системи копіювання на запис?


mount -union здається, працює як задокументовано: Викликає простір імен у точці монтування як об'єднання з підключеним коренем файлової системи та існуючим каталогом. Пошуки будуть зроблені в монтованій файловій системі спочатку. Це значить, коли знаходить d1 у fs # 1, що використовується, замість деякого віртуального каталогу об'єднання, що повертається. Отже, це не є рішенням ...
Daniel Beck

@DanielBeck спасибі, я не помітив, що. Але це означає, що мені знадобиться інше рішення.
Kelvin

Відповіді:


3

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

PyFilesystem схоже, що він має потенціал, зокрема тип MultiFS fs. Її код FUSE потребує a patch для роботи з fuse4x .

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

UPDATE

Патч ввів помилку, коли він перемістив цю лінію перед завантаженням iconv CDLL:

_libfuse = CDLL(_libfuse_path)

Просто перемістіть її одразу, і вона повинна працювати на OS X. (Загальне виправлення вимагає також додавання рядка після if _system in блок.)

Так що я спробував MultiFS і це робить ні створювати відсутні каталоги на доступних для запису FS. Але я припускаю, що його легко додати (навіть якщо я не експерт з python). Крім того, спроба перезапису або додавання до файлу на одному з FS лише для читання не послідовно створює відповідний шлях на записуваному. Я отримую багато помилок і зависань (тоді процес запобіжника починає використовувати багато процесорів). Таке рішення все ще виглядає дуже перспективним.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.