Mount v macOS rozbije Finder

RDa

  • *****
  • 2 932
    • Zobrazit profil
    • E-mail
Mount v macOS rozbije Finder
« kdy: 02. 05. 2025, 10:29:02 »
Ahoj, řešíme jeden problém - při namountování virtuálního filesystému (přes FSKit) v terminálu je normálně dostupný obsah, ale ve Finderu je daný mountpoint neviditelný - prostě složka zmizne ze seznamu souborů. Objeví se ale znova po umountu.

Mountujeme to do obyčejné pod-složky v jiné složce, protože do /Volumes to zatím netuším jak dostat (to je read-only a mountpoint tam vytváří bůhví co).

Nějaký nápad proč se tak děje a kde hledat potíže či jak debuggovat co si myslí Finder?

(jiné aplikace při ručním nabrowsování do dané složky data vidí správně)

A pak - jaká magie řeší viditelnost mountů ve /Volumes ?


Re:Mount v macOS rozbije Finder
« Odpověď #1 kdy: 02. 05. 2025, 11:14:00 »
Ahoj.
To je fakt zvláštní, že se do toho přidaného mountpointu nedá ve Finderu vůbec dostat. To spíš vypadá jako nějaký problém s právy, resp. mapováním uid, i kdy i v tomhle případě by ten mountpoint sám o sobě měl zůstat viditelný.

Nicméně ad-hoc vytvořit složku v /Volumes by s root právy jít mělo. Stejně tak tam na test připojit filesystém.
Tohle taky nefunguje?
sudo mkdir /Volumes/mountpoint
sudo mount -F -t CustomFS <device> /Volumes/mountpoint

Jakmile je pak fs připojený pod /Volumes, tak by to měl zaregistrovat i Finder.
Ten normálně reaguje na eventy z disk arbitration frameworku..
https://developer.apple.com/library/archive/documentation/DriversKernelHardware/Conceptual/DiskArbitrationProgGuide/Introduction/Introduction.html

Jiná otázka pak je, i když tohle překonáš, jak to připojení udělat persistentní a připojovat po startu.

RDa

  • *****
  • 2 932
    • Zobrazit profil
    • E-mail
Re:Mount v macOS rozbije Finder
« Odpověď #2 kdy: 02. 05. 2025, 11:37:01 »
Ahoj.
To je fakt zvláštní, že se do toho přidaného mountpointu nedá ve Finderu vůbec dostat. To spíš vypadá jako nějaký problém s právy, resp. mapováním uid, i kdy i v tomhle případě by ten mountpoint sám o sobě měl zůstat viditelný.

Neni to problem s pravy, protoze uzivatel tam pres shell/terminal vleze a jine aplikace to samozrejme taky vidi.


Nicméně ad-hoc vytvořit složku v /Volumes by s root právy jít mělo. Stejně tak tam na test připojit filesystém.
Tohle taky nefunguje?
sudo mkdir /Volumes/mountpoint

to prave nejde ani s rootem, read-only filesystem

Re:Mount v macOS rozbije Finder
« Odpověď #3 kdy: 02. 05. 2025, 11:51:49 »
Ahoj.
To je fakt zvláštní, že se do toho přidaného mountpointu nedá ve Finderu vůbec dostat. To spíš vypadá jako nějaký problém s právy, resp. mapováním uid, i kdy i v tomhle případě by ten mountpoint sám o sobě měl zůstat viditelný.

Neni to problem s pravy, protoze uzivatel tam pres shell/terminal vleze a jine aplikace to samozrejme taky vidi.

Aha, jestli je to v terminálu pod stejným uživatelem a ne rootem, tak jasně, právy to nebude.


Citace
Nicméně ad-hoc vytvořit složku v /Volumes by s root právy jít mělo. Stejně tak tam na test připojit filesystém.
Tohle taky nefunguje?
sudo mkdir /Volumes/mountpoint

to prave nejde ani s rootem, read-only filesystem

To je nějaká specifická konfigurace u vás?
Právě jsem to zkoušel na dvou strojích s posledním macOS 15.4 (Intel i M2) a normálně mi to šlo. Jediná systémová změna, co tam je oproti výchozímu stavu, je povolení zavádění 3rd party Kextů (zvukovky, Blackmagic video I/O) - jednorázová operace v Recovery Mode, ale to by němělo mít vliv na to, jestli je /Volumes read-only.
Jediné, co vím, že nejde rovnou je vytváření adresářů (resp. mountpointů) přímo v rootu, protože je tam overlay (man synthetic.conf).

Re:Mount v macOS rozbije Finder
« Odpověď #4 kdy: 02. 05. 2025, 12:38:40 »
Jak vypadají mounty těch systémových složek..? U mě takhle:

$ mount | egrep 'on / |/System/Volumes/Data'
/dev/disk3s3s1 on / (apfs, sealed, local, read-only, journaled)
/dev/disk3s1 on /System/Volumes/Data (apfs, local, journaled, nobrowse, protect, root data)
map auto_home on /System/Volumes/Data/home (autofs, automounted, nobrowse)
map -fstab on /System/Volumes/Data/Network/Servers (autofs, automounted, nobrowse)

Tzn. je tam read-only, sealed root, tam fakt nejde zapisovat.
Ale pak je tam reálný oddíl v /System/Volumes/Data, kde jsou pak r/w složky, připojené přes ten overlay (synthetic).
Tzn. obsah /Volumes je vlastně v /System/Volumes/Data/Volumes

Taky by tam mohly být omylem nastavené nějaké neměnné flagy v právech na adresář. Má to vypadat takhle:
$ ls -ldO /Volumes
drwxr-xr-x  4 root  wheel  hidden 128 May  2 11:39 /Volumes/

Finálně, možná blbost, ale má aplikace Terminal nastavena oprávnění na celý filesystém (Full Disk Access), v nastavení  Privacy and Security?


Re:Mount v macOS rozbije Finder
« Odpověď #5 kdy: 02. 05. 2025, 13:06:31 »
Zkus ukončit úlohu "Finder" a spustit znova, tuhle věc má MASoX společnou s voknem.

Není potřeba ještě poslat nějakou "notifikaci", že byla připojena jednotka? Třeba to finderu (asi nejzabugovanější file manager )nedojde a myslí si, že je to normální složka
« Poslední změna: 02. 05. 2025, 13:09:28 od mikesznovu »

Re:Mount v macOS rozbije Finder
« Odpověď #6 kdy: 04. 05. 2025, 13:27:59 »
Teď jsem se na to chtěl ještě podívat a narazil na stejný hlášený problém u ukázkového projektu s FSKit filesystémem.
https://github.com/KhaosT/FSKitSample/issues/4
Bohužel to nemůžu teď jednoduše vyzkoušet, protože nemám placený developerský účet u Apple (tudíž s tím free entitlementem nemůžu podepsat zkompilovaný FSKit extension => musel bych vypnout SIP, čímž bych ovlivnil ostatní věci => opruz...)
Ale třeba to autor té ukázky nakonec nějak rozsekne.
Další věc je, že ty FSKit extensiony jsou pro třetí strany fakt relatvně nové (v betě 15 to bylo, na release 15 to zmizelo, teď je to asi měsíc zpátky v 15.4), vůbec bych se nedivil, kdyby tam byly ještě nějaké úvodní nedorazy. Minimálně lepší dokumentace, případně oficiální ukázka s nějakými komentáři by také vcelku bodla.

Každopádně, jak jsem psal, ručně vytvářet mountpointy pod /Volumes mi jde, fakt neuším, proč to u tebe protestovalo.

RDa

  • *****
  • 2 932
    • Zobrazit profil
    • E-mail
Re:Mount v macOS rozbije Finder
« Odpověď #7 kdy: 04. 05. 2025, 16:25:24 »
Jop, ten issue #4 vytvoril kolega. A pak jsem prisel na to, ze z finderu zmizne slozka, kdyz je do nej namountovany virtualni FS. Pritom ostatni FS (fat/exfat) co jsou FSkit based (overeno pres mount) normalne funguji a slozka nemizne, objevi se na ni normalne jina ikonka - ze se jedna o mountpoint.

Re:Mount v macOS rozbije Finder
« Odpověď #8 kdy: 04. 05. 2025, 20:28:43 »
Aha, tak to je přímo od vás.. :)

Těžko říct, co by to mohlo způsobovat, jestli nějaký chybějící atribut toho FSVolume.
Jediné, krom toho demo projektu, co jsem našel, je pak ten veřejný FSKit ovladač pro FAT.
https://github.com/apple-oss-distributions/msdosfs/tree/rel/msdosfs-720/msdos_appex

Tak snad se vám, resp. autorovi dema, to povede vyřešit. Přinejhorším, jestli to budete fakt potřebovat, tak zkusit s placeným účtem udělat support request (TSI), myslím že tam byl limit dva přímé requesty ohledně kódu na účet/období.