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-dev
Nelle 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-dev
Ora 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 update
Fatto ciò, è il momento di compilare il codice sorgente scaricato:
mkdir build
cd build
cmake ..
make
Dopo 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/bin
Ora 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 data
Puoi 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/macos
E 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
mount
che si trova in/etc/fstab
(se non hai nano, usavi
o 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/fstab
Aggiungi 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 0
Se 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-dir
root
.
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/macos
Spero 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.