Chiacchiere proprietarie…
Come spesso accade, nell’ecosistema di Casa Cupertino, Apple non ama condividere le cose. Anche quando ciò potrebbe avere un impatto negativo sulla loro attività. Prendi FaceTime, per esempio. Se avessero reso quella piattaforma agnostica, il che significa che le persone su piattaforme Windows, Android e forse anche Linux/Web avrebbero potuto usarla, allora è discutibile che FaceTime avrebbe preso gran parte della quota di mercato da artisti del calibro di Skype. APFS non è diverso. Apple non ha condiviso l'API, quindi si affida agli smanettoni, per fare una serie di congetture, ricerche dettagliate e un po' di reverse engineering. Tutto ciò non è mai una buona cosa quando lavori sui sistemi che si occupano dell'integrità dei tuoi file!
Come faccio ad accedere al mio disco Mac?
Per quelli di voi che usano Linux ed hanno ancora bisogno di accedere, occasionalmente, ai propri file su una partizione Mac, del proprio disco rigido, allora potrebbe essere una sfida. Se hai una versione di MacOS precedente alla 10.3 (High Sierra), allora il tuo Mac utilizzerà HFS+ come file system. Per i nuovi utenti, invece, il Mac userà APFS.
Fortunatamente, ora puoi utilizzare un driver chiamato apfs-fuse per accedere al disco APFS del tuo disco Mac. Nota che questo driver non fa parte della tua distribuzione Linux e dovrai compilarlo dal codice sorgente. In questa breve guida ti mostrerò come.
Sfortunatamente, o forse fortunatamente, verrò montato in sola lettura…
Sfortunatamente, almeno per ora, sei limitato all'accesso in sola lettura. Il risultato è che nessun dato può essere danneggiato da eventuali bug che possono esistere in questo software sperimentale. Anche lo strumento di montaggio associato al driver non eseguirà la decompressione LZFSE trasparente.
Prepariamoci…
In primo luogo, vorrei dire che questo è un tutorial interamente adatto ai principianti, tuttavia in questa occasione funziona tutto dal Terminale. Non preoccuparti troppo, se non sei abituato a lavorare alla riga di comando, puoi tranquillamente copiare e incollare le istruzioni che troverai strada facendo.
Innanzitutto, dobbiamo disporre degli strumenti appropriati per creare il driver APFS-Fuse. Apri il Terminale e inserisci questi comandi che serviranno ad installare gli strumenti necessari per la compilazione del pacchetto:
sudo apt update
sudo apt install libicu-dev bzip2 cmake libz-dev libbz2-dev fuse3 libfuse3-3 libfuse3-dev clang git libattr1-devNelle versioni precedenti di Ubuntu, potrebbe essere necessario utilizzare quanto segue:
sudo apt install fuse libfuse-dev libicu-dev bzip2 cmake libz-dev libbz2-dev clang git libattr1-devOra possiamo scaricare (clonare) il codice sorgente del driver con git:
git clone https://github.com/sgan81/apfs-fuse.git
cd apfs-fuse
git submodule init
git submodule updateFatto ciò, è il momento di compilare il codice sorgente scaricato:
mkdir build
cd build
cmake ..
makeDopo la compilazione, i binari si trovano nella directory con il nome build. Consiglio di copiare gli strumenti APFS* in una directory a cui è possibile accedere nel percorso, ad esempio /usr/locale/bin. Per copiarli, fai semplicemente questo:
sudo cp apfs-* /usr/local/binOra dobbiamo scoprire su quale partizione del disco si trova macOS. Usando il comando fdisk -l sarai in grado di vedere la struttura del disco.
$sudo fdisk -l
Disk /dev/sda: 465.9 GiB, 500277790720 bytes, 977105060 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 6153AD88-FE14-4E88-8D9A-60E8AA465516
Device Start End Sectors Size Type
/dev/sda1 40 409639 409600 200M EFI System
/dev/sda2 409640 764593231 764183592 364.4G unknown
/dev/sda3 764594176 781570047 16975872 8.1G Linux Swap
/dev/sda4 781832192 976842751 195010560 93G Linux dataPuoi vedere, nel mio esempio sopra, che c'è una partizione che nella colonna type riporta la dicitura unknown, ossia sconosciuta, da 364,4 GB. So che questa è la mia partizione macOS perché so che la dimensione della mia partizione MacOS è di 365 GB. Ciò significa che l'identificatore del dispositivo è /dev/sda2, quindi è quello che monteremo.
Diamo un'occhiata e vediamo se funziona:
Creiamo una cartella dove montare il nostro disco MacOS
Usiamo il programma appena compilato per montarlo
sudo mkdir -p /media/$USERNAME/macos
sudo ./apfs-fuse -o allow_other /dev/sda2 /media/$USERNAME/macosE questo è il risultato delle operazioni appena eseguite:
Si spera che tutto vada bene: a questo punto se non avrai ricevuto alcun messaggio di errore sei a posto. Altrimenti, forse il file README può fornire qualche chiarimento.
Rendiamo il mount permanente all’avvio…
Se vuoi che, la tua partizione MacOS, venga montata automaticamente, ogni volta che avvii il computer, dovrai modificare la tabella del filesystem (/etc/fstab). Per fare ciò, dovremo:
creare un collegamento simbolico allo strumento di montaggio per APFS
modificare la tavola di
mountche si trova in/etc/fstab(se non hai nano, usavio un qualsiasi editor che accetti di lavorare su file di testo puro):
sudo ln -s /usr/local/bin/apfs-fuse /usr/sbin/mount.apfs
sudo nano /etc/fstabAggiungi una riga in fondo al file (tutto su una riga!) che indichi quanto segue:
mount.apfs#/dev/sda2 /media/TuoNomeUtente/macos/ fuse user,allow_other 0 0Se vuoi vedere se funziona già ora, basta smontare il disco (vedi la sezione pulizia di seguito). Quindi digita sudo mount -a per montare il disco da fstab: se dopo questa operazione il disco MacOS compare nuovamente allora è tutto ok.
Contenuto della partizione del Mac formattata in APFS
Quando la partizione è montata, vedrai due directory:
private-dirroot.
La directory root è quella che desideri; dentro c'è il filesystem del tuo Mac. Troverai i tuoi contenuti nella cartella "Utenti/TuoUserName".
Pulizia (smontaggio)
Per smontare correttamente la directory MacOS, dovresti usare il comando fusermount al posto del classico mount:
fusermount -u /media/TuoUserName/macosSpero che questo post ti abbia aiutato ad accedere ai file del tuo Mac dalla tua distribuzione Linux preferita, o anche semplicemente da una qualsiasi distribuzione live di Linux.
J.C.




