Question comment accéder à la ressource fork de hfs + fileystem sur linux


J'ai une image de système de fichiers HFS + récupérée à partir d'un disque dur Mac défaillant et je peux la monter en boucle sur ma machine Linux. Comment puis-je accéder aux sources de ressources pour les fichiers de ce système de fichiers à partir de la machine Linux?

(Je n'ai pas de Mac avec la capacité de stocker une image aussi grande.)


4
2017-12-01 19:06


origine


FYI, les systèmes Mac OS modernes stockent des ressources dans la fourchette de données pour les fichiers qui ne contiennent que des ressources, c’est-à-dire qu’ils n’ont pas besoin de stocker des données dans le fork de données. Les valises de polices en sont un exemple. - Neil Mayhew
Si l'image est trop grande pour tenir sur vos Mac, vous pouvez la partager sur le réseau à partir de Linux et la monter en boucle sur un Mac. Ou vous pourriez le mettre sur un disque externe quelconque. - Neil Mayhew


Réponses:


Ajouter /rsrc à la fin du nom de fichier pour accéder à la fourchette de ressources. Je ne sais pas où cela est documenté, où que ce soit.

Modifier: Juste pour clarifier, je faisais référence à l'utilisation de la ligne de commande; par exemple cp somefile/rsrc destfile copiera la fourchette de ressources d'un fichier dans un fichier appelé destfile. Toutes les fonctions de ligne de commande fonctionnent de cette façon. Je ne l'ai pas testé avec quelque chose de graphique.

Ce mécanisme existait dans les noyaux 2.xx mais a été supprimé ultérieurement. seec https://evilpiepirate.org/git/linux-bcache.git/plain/fs/hfsplus/inode.c

* hfsplus_file_lookup contenait les éléments suivants:

if (HFSPLUS_IS_RSRC(dir) || strcmp(dentry->d_name.name, "rsrc"))
        goto out;

Cela a été plus tard enlevé. Il n'a jamais été documenté et n'a peut-être pas fonctionné pour tous les systèmes. En tout cas, comme le note "Neil Mayhew", la source principale du noyau ne le fait plus. De plus, depuis que OS X Apple a cessé de créer de nouvelles fourchettes de ressources, seuls les anciens fichiers les auront.


1
2018-03-13 19:45



Ça a marché; Merci. Les fichiers sans fourchette de ressources sur le système de fichiers hfs + donneraient une erreur de "permission refusée" lorsque j'aurais essayé d'accéder à / rsrc, ce qui m'a permis de déterminer quels fichiers avaient des fourchettes de ressources et lesquels ne le faisaient pas. - retracile
Apparaît que cela ne fonctionne plus, du moins pas pour .textClipping des dossiers. - Jeff Burdges
Je vais le regarder, il n'y a jamais eu de documentation officielle que j'ai pu trouver. Apple s’éloigne des fourchettes de ressources depuis la sortie d’OS X. - wheredidthatnamecomefrom
Je n'ai pas pu faire fonctionner cela. - Neil Mayhew


Je ne pense pas que cela soit possible avec le pilote par défaut du noyau (fs/hfsplus dans les sources du noyau).

J'ai un volume HFS + monté sous Linux et des fichiers dotés d'une fourchette de ressources. J'ai essayé les deux syntaxes de noms de fichiers spéciales couramment utilisées FILENAME/rsrc et FILENAME/..namedfork/rsrc. Le premier fonctionnait sous Mac OS, et le second fonctionne maintenant sous Mac OS, mais aucun ne fonctionne sous Linux. Ils renvoient l'erreur ENOTDIR, "Pas un répertoire". J'ai essayé ceci avec des fichiers qui ont une fourchette de ressources et pas de fourchette de données, et des fichiers qui ont les deux.

J'ai parcouru les sources du pilote et je ne vois aucun signe d’accès explicite à une fourchette de ressources, que ce soit avec une syntaxe de nom de fichier spéciale ou avec une syntaxe spécifique. ioctl appel. Le pilote ne se préoccupe que des fourches de ressources, mais uniquement dans le but de les conserver avec le reste du fichier lorsqu'un fichier est déplacé, et de les supprimer lorsqu'un fichier est supprimé.

J'adorerais avoir tort sur ce point, mais je n'ai pu trouver aucune information contraire.


3
2018-01-30 16:47





Cela ne vous aidera pas maintenant, mais pour référence future, il existe un utilitaire dans les outils de développement Apple appelé SplitForks qui transforme un seul fichier avec une fourchette de ressources en deux fichiers. Le second fichier, caché, a ._ ajouté au nom de fichier d'origine. Il est au format AppleDouble et contient également des métadonnées du Finder telles que les codes de type et de créateur du fichier. C'est le même format que celui utilisé pour stocker les données spécifiques au Mac dans des formats d'archive tels que zip et tar, et pour le transfert en utilisant rsync.

SplitForks peut travailler de manière hiérarchique sur des arborescences complètes de répertoires, qui peuvent ensuite être transférées sur un système de fichiers non Mac sans perte de données. Il y a aussi un utilitaire compagnon appelé FixupResourceForks Cela permet de regrouper les fichiers fractionnés si l'arborescence est déplacée ultérieurement vers un autre Mac.


1
2018-01-30 17:04