La Cave a Tonton - Lire de l'APFS (MacOS) sur un Linux Ubuntu (et autres...)

Lire de l'APFS (MacOS) sur un Linux Ubuntu (et autres...)

Par Tontonayo le archive


Au taff, j'avais  besoins de faire une récupération de données sur un disque dur d'iMac mais surprise (motherfucker..) il était en APFS, le nouveau système de fichier d'Apple depuis High Sierra (je crois). Problème, j'avais pas d'autre mac sous la main et les linux à ma disposition ne pouvait lire que le HFS(+). Bon, j'ai fait ma petite recherche sur le net et j'ai vu que le mec avait codé "le Saint Graal"! Un driver fuse pour l'APFS : https://github.com/sgan81/apfs-fuse . Par contre va falloir le compiler... Les manips on été faites sur le Xubuntu by Tonton donc faisable sur tout Ubuntu 18.04+ et dérivés.

1.Installation / Compilation

Déjà, on met a jour et on installe le nécessaire :

sudo apt update
sudo apt install fuse libfuse3-dev bzip2 libbz2-dev cmake gcc-c++ git libattr1-dev zlib1g-dev

On va ensuite "cloner" les sources Git en locale

git clone https://github.com/sgan81/apfs-fuse.git cd apfs-fuse
git submodule init
git submodule update

Et on va préparer la compilation et enlever une instruction pour le 32 bits sinon ça foire celle-ci

mkdir build
cd build
cmake ..
ccmake . # Seulement si vous voulez changer des option de compilation

On va arriver sur un écran comme ceci si vous passez par ccmake, sinon allez directement a la compilation via "make"  :

USE_FUSE3 doit être sur OFF, si il est sur ON changer la valeur et appuyer sur "G" pour enregistrer.

Une fois ceci fait, on compile via:

make

Voila, c'est compiler, vous pouvez utiliser ./apfs-fuse pour monter vos disques APFS. Vous pouvez copier vos exécutable dans /usr/local/bin pour avoir la commande directement dans le système.

2.Comment qu'on fait ??

Bon c'est compilé mais comment qu'on fait ?? Déjà il faut brancher le disque dur en question et le lister pour voir quelle adresse il a.

sudo fdisk -l

La partition est normalement reconnu en "unknown", normal il l'a connait pas. Mais on connais sont adresse ( "/dev/sdb1" par exemple). On va créer un repertoire qui va servir de point de montage

sudo mkdir -p /media/$USERNAME/macos

Remplacer $USERNAME par votre login système, et ensuite on va monter le disque a cette adresse

sudo ./apfs-fuse -o allow_other /dev/sdb1 /media/$USERNAME/macos

Remplacer /dev/sdb1 par l'adresse de votre partition APFS. Et pouf, vous pourrez accéder à votre disque APFS soit en console, soit avec un navigateur de fichier.

EDIT : Maj le 03/05/2020, fonctionne sur Ubuntu 20.04


Le pays d'où vous consultez le site n'est pas autorisé a poster des commentaires afin de lutter contre le spams, merci de votre compréhension