- macFUSE File system integration made easy
- What is macFUSE?
- Features
- How It Works
- Benjamin Fleischer Extension Won’t Install on M1 MacBook Pro #754
- Comments
- markbyrn commented Dec 2, 2020
- djkcel commented Dec 2, 2020
- vijaynr commented Dec 4, 2020
- bfleischer commented Dec 5, 2020
- tommythorn commented Dec 15, 2020 •
- NewAlexandria commented Dec 18, 2020
- veganmaister commented Dec 21, 2020
- veganmaister commented Dec 21, 2020
- bfleischer commented Jan 7, 2021
- tommythorn commented Jan 7, 2021
- someone857 commented Jan 29, 2021 •
- bfleischer commented Jan 29, 2021
- someone857 commented Jan 29, 2021 •
- bfleischer commented Feb 2, 2021
- crmscenarios commented Mar 22, 2021
- mrjayberry commented Jun 17, 2021
- Использование MacFUSE — монтируйте практически что угодно как виртуальный жесткий диск
- Использование Gmail для файлового хранилища
- Расширяем возможности Spotlight
macFUSE
File system integration made easy
What is macFUSE?
macFUSE allows you to extend macOS’s native file handling capabilities via third-party file systems.
Features
As a user, installing the macFUSE software package will let you use any third-party FUSE file system. Legacy MacFUSE file systems are supported through the optional MacFUSE compatibility layer.
As a developer, you can use the FUSE SDK to write numerous types of new file systems as regular user space programs. The content of these file systems can come from anywhere: from the local disk, from across the network, from memory, or any other combination of sources. Writing a file system using FUSE is orders of magnitude easier and quicker than the traditional approach of writing in-kernel file systems. Since FUSE file systems are regular applications (as opposed to kernel extensions), you have just as much flexibility and choice in programming tools, debuggers, and libraries as you have if you were developing standard macOS applications.
How It Works
In more technical terms, FUSE implements a mechanism that makes it possible to implement a fully functional file system in a user-space program on macOS. It provides multiple APIs, one of which is a superset of the FUSE API (file system in user space) that originated on Linux. Therefore, many existing FUSE file systems become readily usable on macOS.
The macFUSE software consists of a kernel extension and various user space libraries and tools. It comes with C-based and Objective-C-based SDKs. If you prefer another language (say, Python or Java), you should be able to create file systems in those languages after you install the relevant language bindings yourself.
The filesystems repository contains source code for several exciting and useful file systems for you to browse, compile, and build upon, such as sshfs, procfs, AccessibilityFS, GrabFS, LoopbackFS, SpotlightFS, and YouTubeFS.
Источник
Benjamin Fleischer Extension Won’t Install on M1 MacBook Pro #754
Comments
markbyrn commented Dec 2, 2020
The text was updated successfully, but these errors were encountered:
djkcel commented Dec 2, 2020
I’m running the same os on an M1 MacBook Air.
I had to boot into recovery mode and then launch the «Startup Security Utility.» From here I enabled kernel extensions and rebooted, after which I was able to «allow» in the security prefpane. However it still doesn’t work. When I try to actually mount a volume in terminal I get
«kext load failed: -603947007»
After trying to manually load the kext, I get:
I fear that this software may not be compatible with the new Apple M1 ARM chips but I’ll look around a little more.
vijaynr commented Dec 4, 2020
@djkcel are you sure you are loading the correct kext? I can see osxfuse is renamed to macfuse in versions 4+.
The kext path would be something like this /Library/Filesystems/macfuse.fs/Contents/Extensions/11/macfuse.kext
The one you are trying to load might have Intel only support. Please check.
bfleischer commented Dec 5, 2020
@djkcel The version of FUSE you are using is not compatible with Apple Silicon Macs. Please upgrade to macFUSE 4
tommythorn commented Dec 15, 2020 •
UPDATE 2: I don’t know what I did wrong but kmutil unload —bundle-path /Library/Filesystems/macfuse.fs/Contents/Extensions/11/macfuse.kext does work and will carry me over until the next version (now to see if I can make Keybase work with it).
NewAlexandria commented Dec 18, 2020
I have this issue, but with version 4.0.4. I am testing on a new MacBookPro (silicon / M1), Big Sur (obviously).
- I tried installing normally + security panel to accept. (not-working)
- I also tried csrutil disable after an uninstall of macfuse, then reinstalling, security panel allow, and related requisite reboots (not-working)
- I tried manually loading the kext via the terminal. This worked to stop the security panel alerts (the ‘allow app’), but my normal client apps (Keybase) still won’t run.
How can I confirm if MacFUSE is working correctly? I don’t normally use this library otherwise, and there’s no ‘hello world’ that I see in docs. Thanks
veganmaister commented Dec 21, 2020
@djkcel The version of FUSE you are using is not compatible with Apple Silicon Macs. Please upgrade to macFUSE 4
I’m experiencing the same problem with 4.0.4 which has subsequently broken pCloud.
veganmaister commented Dec 21, 2020
Is there any way we can help fast track the resolution here? I find it astounding how a little OS extension has completely broken productivity on M1 Macs.
bfleischer commented Jan 7, 2021
macFUSE 4 is required on M1 Macs. Older releases of FUSE do not support the new processor architecture. Please keep in mind that Rosetta, which translates old Intel apps to run on M1 Macs, does not support translating kernel extensions. That’s why you will need to upgrade to macFUSE 4.
@veganmaister There is no need downvote this. It’s a matter of fact.
In macOS 11 Apple completely rewrote the Kext Manager component of macOS. Unfortunately, with all new software there are bugs. Since the first release of macOS 11, I raised 11 issues with Apple. Four of the issues have been addressed in the meantime. Seven are currently open. For three of these seven remaining issues, FUSE contains workarounds. This leaves 4 issues that can prevent third-party kernel extension from being loaded. This is true for macFUSE and pCloud.
tommythorn commented Jan 7, 2021
@bfleischer Thanks for the informative update. This is the kind of things we should expect with the M1 transition and I’m glad progress is being made. Is subscribing to this bug the best way to monitor the progress?
someone857 commented Jan 29, 2021 •
I’m having the same or similar issue. I get to this loop where System Preferences wants me to «Allow» every time, and after a restart there’s a popup stating «System Extension Error» and telling me it needs to rebuild, and then there’s the Allow button again.
Not sure if that makes a difference, but I partitioned my macOS with 2 Volumes, each one with its own macOS 11.1 installation. In the first (original) volume, I was able to install macFUSE 4.0.5 without a hitch (I think it was even before I created the 2nd volume, not sure atm). Trying to install macFUSE on my 2nd volume is where I’m getting this behaviour. I’ve authorized user extensions on both Volumes using the Startup Recovery.
bfleischer commented Jan 29, 2021
@someone857 This is a known bug in macOS. It’s unclear what triggers it. Apple is working on a fix. As a workaround you can try triggering the new panic medic.
To do so, run the following command in Terminal in the recovery environment. You will probably need to update the root volume path (/Volumes/System) since you have two macOS installs.
This disables loading third-party kernel extensions until the user approves them again. This has worked for me in one or two cases when the Kext Manager was stuck.
someone857 commented Jan 29, 2021 •
Thanks for your reply @bfleischer . I saw your comment on #779 (comment) shortly after I wrote this. I tried running this code, but it gave me the same results (and just FYI trigger-panic-medic is a subcommand, not a flag — so the actual command is kmutil trigger-panic-medic —volume-root /Volumes/MyVolume ).
When I logged to my OS it told me the extensions were reset, that every permission would be asked again, but once I tried to re-run macFUSE it gave me the same loop. Tried possibly every combination of installing/uninstalling and running this command and never got it working 🙁
From your comment, I think my only option is to wait for an Apple fix?
bfleischer commented Feb 2, 2021
@someone857 Yes, the only proper solution is for Apple to address the bug. In the meantime you can try uninstalling macFUSE, triggering the panic medic, rebooting a couple of times and then reinstalling macFUSE. At some point macOS will load the extension.
crmscenarios commented Mar 22, 2021
mrjayberry commented Jun 17, 2021
@someone857 did you ever find a solution to getting macFUSE working on your 2nd partition?
Extension won’t install running 11.4 Big Sur on an external SSD, and the question of approving it from Security & Privacy just never appears.
Yet it installs (and asks for approval) just fine on the OS running from the internal SSD. Both instances are otherwise identical clean installs.
I’ve tried quite everything I can think of, to load the extension manually or trigger it asking me to approve in Security & Privacy: (of course Reduced Security is setup in recovery mode first)
- install/uninstall with 5 reboots between each step.
- turning off SIP (and repeating.. install/uninstall/rebooting many times)
- triggering panic medic (and repeating install/uninstall). It does ask me to authorize other extensions, but not Benjamin.
- tried 4.0.4, 4.1.2, 4.2 versions.. all same.
However something interesting,
kmutil unload —bundle-path /Library/Filesystems/macfuse.fs/Contents/Extensions/11/macfuse.kext
gives me the error
Error Domain=NSPOSIXErrorDomain Code=1 «Operation not permitted»
Any advice?
Note, I have limited experience using terminal, coding, etc. Just perseverance. Maybe I’m making an easy mistake somewhere..
Источник
Использование MacFUSE — монтируйте практически что угодно как виртуальный жесткий диск
Кроме того, файловые системы могут действовать и как клиенты для сетевых протоколов, обеспечивая доступ к файлам, хранящимся на сервере (например, это справедливо для NTFS). Наконец, существуют так называемые «виртуальные» файловые системы, предоставляющие метод доступа к данным файловых устройств. В качестве примера такой системы в мире UNIX можно назвать procfs — в UNIX эта система предоставляет информацию о процессах в виде структуры каталогов.
MacFUSE позволяет реализовать полнофункциональную файловую систему в пользовательском пространстве Mac OS X. Это означает, что реализованный код файловой системы может создаваться и запускаться непривилегированными пользователями без необходимости переписывания кода ядра. Модуль файловой системы в пользовательском пространстве (FUSE) предоставляет «мост» к фактическому коду ядра. MacFUSE делает попытку обеспечения совместимости с исходным механизмом FUSE, который впервые появился в Linux. Это позволяет пользователям компилировать и использовать множество популярных файловых систем FUSE, разработанных на других платформах, в дополнение к новым, разработанным специально для Mac OS X. Это дает возможность разработчикам строить определения файловых систем, которые будут работать на любой платформе, при условии поддержки спецификаций FUSE.
Filesystem in Userspace (FUSE) — файловая система в пользовательском пространстве. Это модуль для ядер UNIX-подобных ОС, с открытым исходным кодом и относящийся к свободному программному обеспечению. Он позволяет пользователям без привилегий создавать их собственные файловые системы без необходимости переписывать код ядра. Соответственно, MacFUSE — это разновидность файловой системы FUSE (File System in User Space) для платформы Mac. Технология MacFUSE была разработана Амитом Сингхом (Amit Singh), руководителем направления свободного ПО для Macintosh в компании Google. Домашняя страница проекта MacFUSE — http://code.google.com/p/macfuse/.
MacFUSE требует Mac OS 10.4 Tiger или более новой. Чтобы установить MacFUSE, загрузите и установите основной пакет MacFUSE, доступный на сайте проекта. Как только установка завершится, ваш компьютер будет готов к использованию некоторых файловых систем FUSE. Чтобы установить некоторые из них, вам может понадобиться добавить такие свободные пакеты, как pkg-config, gettext и, в особенности, glib. Установить эти пакеты можно с помощью Fink, MacPorts или вручную, следуя инструкциям, приведенным в разделе HOWTO на сайте MacFUSE (http://code.google.com/p/macfuse/wiki/HoWTo).
FTPFS (FTP File System) и SSHFS (SSH File System) — это файловые системы FUSE, позволяющие монтировать удаленные системы с использованием протоколов FTP и SSH. Удаленные системы при этом будут выглядеть как примонтированные диски, с которыми можно будет производить обмен файлами методом перетаскивания. FTP (File Transfer Protocol) — это широко распространенный сетевой протокол, используемый для передачи файлов, а SSH (Secure SHell) — это протокол, обеспечивающий шифрование при коммуникациях с удаленными системами. SSHFS позволит вам примонтировать удаленную файловую систему (например, файл-сервер в офисе, учебном заведении или на сервере, предоставляющем вам хостинг для вашего Web-сайта) при обеспечении безопасных коммуникаций с использованием протокола SSH. SSHFS можно скачать с сайта MacFUSE. Этот компонент снабжен базовым графическим интерфейсом и очень прост в использовании.
Как правило, под управлением Mac OS X, диски, отформатированные с использованием NTFS, доступны только на чтение. NTFS — это предпочтительная файловая система, используемая всеми современными системами Windows (включая и компьютеры Mac, использующие Boot Camp). Если вы так или иначе должны взаимодействовать с компьютерами, работающими под управлением Windows, вы, скорее всего, часто сталкиваетесь и с NTFS. Файловая система ntfs-3g FUSE позволяет обеспечить для дисков NTFS возможности как чтения, так и записи.
Использование Gmail для файлового хранилища
Кроме того, существуют некоторые очень интересные виртуальные файловые системы, например, WikipediaFS и GmailFS. WikipediaFS позволяет монтировать на ваш компьютер сайт Wikipedia таким образом, чтобы получить возможность просмотра и редактирования различных статей в точно таком же режиме, как если бы они представляли собой файлы на вашем локальном компьютере. Например, вместо перехода браузером по адресу http://en.wikipedia.org/wiki/Apple и перехода на вкладку Edit (Править), вы можете просто открыть файл /Volumes/WikipediaFS/Apple любым текстовым редактором и редактировать эту статью как текстовый файл. GmailFS позволяет вам хранить файлы в виде почты в Gmail. Аналогичным образом, существуют и виртуальные системы для других сервисов Web, например, таких, как PicasaWeb (http://picasaweb.google.com), Flickr (http://www.flickr.com/), каналы RSS и Google Docs (http://docs.google.com).
GmailFS — это виртуальная файловая система, разработанная Ричардом Джонсом (Richard Jones). Она использует учетную запись Gmail для хранения файлов. GmailFS не следует путать с GoogleFS — распределенной файловой системой, созданной Google для внутренних целей.
Чтобы подготовить вашу систему к установке GmailFS (а также для использования других популярных файловых систем FUSE), вам потребуется установить следующие модули, в дополнение к MacFUSE:
- Python 2.4 или более новой версии — этот пакет можно установить как с помощью MacPorts, так и с помощью Fink.
- Python-FUSE bindings — этот пакет также доступен и в MacPorts (установите пакет fuse-bindings-python), и в Fink (установите пакет fuse-py24 or fuse-py25).
- Libgmail — этот пакет доступен через MacPorts (установите пакет py-libgmail) и через Fink (установите пакеты libgmail-py24 или libgmail-py25).
- GmailFS — этот пакет можно получить через Fink или скачать непосредственно с сайте разработчика (http://richard.jones.name/google-hacks/gmailfilesystem/gmail-filesystem.html).
Если вы — активный пользователь, имеющий большое количество файлов для передачи, не стоит использовать Gmail в качестве хранилища файлов. Хранение файлов на Google — это один из видов активности, за который вашу учетную запись могут взять на заметку, в результате чего вы можете лишиться доступа на срок до 24 часов.
Поскольку все эти компоненты доступны через Fink, то использование Fink будет простейшим вариантом установить GmailFS. Если вы уже пользуетесь MacPorts и вполне довольны этой системой, вы можете установить через MacPorts все компоненты, кроме libgmail. После этого можно скачать последнюю версию GmailFS с Web-сайте разработчика.
Если вы установили GmailFS через Fink, то последующие инструкции можно пропустить. После того как вы загрузите GmailFS с Web-сайта разработчика, вам потребуется открыть архив с исходным кодом, дав из командной строки Terminal следующие команды.
123// Открытие архива с исходным кодом GmailFS$ tar –zxvf gmailfs-0.8.0.tar.gz$ cd gmailfs-0.8.0/
Комбинация 0.8.0 представляет собой номер версии GmailFS, который в будущем может измениться. Последующие несколько команды могут запросить у вас пароль к Mac OS X.
123// Перемещение файлов GmailFS в инсталляционный каталог$ sudo mv gmailfs.py /usr/local/bin/gmailfs.py$ sudo mv mount.gmailfs /sbin/mount_gmail
После этого для получения полностью работающей инсталляции GmailFS вам останется произвести лишь одну заключительную конфигурационную операцию. В каталоге GailFS-0.8.0 имеется файл с именем gmailfs.conf. Отредактируйте этой файл любым текстовым редактором, изменив в нем следующие строки.
1234// Строки из файла gmailfs.conf, подлежащие редактированию[account]username = gmailusernamepassword = gmailpassword
Здесь строку gmailusername следует заменить на имя вашей учетной записи Gmail, а gmailpassword — на ваш пароль Gmail. Затем вам следует сохранить этот файл в каталоге /private/etc на вашем компьютере (для этого вам потребуется воспользоваться командой sudo). Теперь можно приступать к перемещению файлов в хранилище, образованное на базе вашей учетной записи Gmail. Для этого запустите программу Terminal и дайте следующие команды.
12345// Перемещение файлов в хранилище, // организованное на базе учетной записи Gmail$ mkdir
/gmailfs$ mount -ovolname=bla -o username=gmailuser -o password=gmailpass -o fsname=zOlRRa -t gmailfs /usr/local/bin/gmailfs.py
Команды, приведенные в листинге выше, приводят к тому, что ваша учетная запись Gmail будет примонтирована к папке /Users/yourosxusername/gmailfs в вашем домашнем каталоге. При работе через командную строку домашний каталог обозначается символом
, и, соответственно, путь к папке, к которой будет примонтировано ваше новое хранилище, будет выглядеть так:
/gmailfs/. После успешного исполнения команд из листинга выше, все файлы, которые вы поместите в каталог
/gmailfs/, будут сохранены в виде почты в вашем почтовом ящике Gmail. Вы сможете получать к ним доступ как через Finder, где ваше хранилище Gmail также будет отображаться в виде примонтированного диска, так и через командную строку.
Файлы, которые вы будете сохранять на своем диске Gmail, будут выглядеть как несколько необычные почтовые сообщения, поступившие в ваш почтовый ящик в папку входящей почты. Это нормально, но возможно, что это не то, чего вы хотели добиться. Если вы не хотите, чтобы в вашей папке входящей почты появлялись такие сообщения, вы можете создать фильтр Gmail, в соответствии с которым все почтовые сообщения, содержащие строку zOlRRa, сразу же отправлялись в папку с вашим почтовым архивом. Строка zOlRRa используется командой mount в качестве имени вашей файловой системы, и, естественно, вы при желании можете заменить ее любой другой строкой по вашему вкусу.
Чтобы установить WikipediaFS, вам потребуются пакеты Python 2.4 или более новой версии, а также привязки Python-FUSE. Как уже говорилось ранее, эти пакеты можно установить с помощью Fink, MacPorts или непосредственно из исходных кодов. WikipediaFS на текущий момент недоступна через Fink или MacPorts, поэтому устанавливать пакет вам нужно будет вручную. Сам пакет и инструкции по установке доступны для свободного скачивания на сайте разработчика: http://wikipediafs.sourceforge. net/.
Расширяем возможности Spotlight
SpotlightFS — это одна из наиболее интересных файловых систем FUSE. Она разработана специально для Mac OS X. Кроме того, она и появилась одной из первых. SpotlightFS создает интеллектуальные папки (smart folders) на базе Spotlight, содержимое которых генерируется динамически и практически мгновенно. Эти интеллектуальные папки обладают более широкими возможностями, нежели интеллектуальные папки, встроенные в Mac OS X, поскольку, в отличие от них, это не виртуальные, а настоящие папки. В Mac OS X встроенные виртуальные папки в действительности представляют собой не папки, а файлы формата XML, при открытии генерирующие запросы Spotlight. Преимущество настоящих папок перед виртуальными заключается в том, что их можно использовать из любого приложения, а также из командной строки. SpotlightFS можно скачать из раздела Downloads Web-сайта MacFUSE15. После установки вы немедленно сможете воспользоваться SpotlightFS, запустив приложение SpotlightFS.app.
Существуют два различных метода использования SpotlightFS. Простейший из них заключается в применении функции SmarterFolders, которая, как логично предположить на основании ее названия, представляет еще более интеллектуальные возможности, нежели встроенные интеллектуальные папки Mac OS X. Это папки, которые не нужно создавать. Для просмотра их содержимого их достаточно просто открывать. Чтобы начать пользоваться SpotlightFS, запустите приложение SpotlightFS.app, а затем в окне Finder выберите опции Go→Open Folder. Теперь попробуйте ввести следующий путь: /Volumes/SpotlightFS/SmarterFolder/apple. В
ы откроете виртуальную папку, в которой будут содержаться все файлы, возвращенные в ответ на запрос Spotlight по ключевому слову apple. Таким образом вы будете использовать интеллектуальные папки без необходимости создавать их заранее и сможете получать к ним доступ из множества различных приложений. Чтобы получить доступ к интеллектуальной папке из командной строки, дайте следующую команду:
1$ ls -lrt /Volumes/SpotlightFS/SmarterFolder/apple
В результате выполнения этой команды будет выведен список всех файлов, возвращенных по запросу Spotlight по ключевому слову apple. Если вы свободно обращаетесь с командной строкой, то SpotlightFS поможет вам в выполнении пакетных операций над множеством файлов.
Второй метод использования SpotlightFS заключается в фактическом создании каталога, вложенного в /Volumes/SpotlightFS. Этому вложенному каталогу следует присвоить имя искомой строки, например, Apple Hacks. После этого вложенный каталог, названный по имени искомой строки, будет вести себя точно так же, как интеллектуальные папки в Mac OS X, оставаясь при этом реальной папкой. Чтобы создать такой каталог из командной строки и начать им пользоваться, вы можете ввести следующие команды.
1234// Создание и использование интеллектуальной// папки SpotlightFS$ mkdir /Volumes/SpotlightFS/Apple Hacks/$ ls -lrt /Volumes/SpotlightFS/Apple Hacks/
FUSE предоставляет множество возможностей упрощения доступа к данным. В дополнение к этим возможностям, FUSE предоставляет возможности реализации доступа к файловым системам, которые исторически не поддерживаются под Mac OS X. Правда, если экспериментирование с виртуальными файловыми системами является относительно безопасным, о реализации NTFS с помощью FUSE этого сказать нельзя. Поэтому прежде чем вы установите и начнете использовать полнофункциональную файловую систему, например, ntfs-3g, настоятельно рекомендуется выполнить полное резервное копирование всех ваших данных и, разумеется, внимательно прочесть инструкции.
Источник