Mac OS X e partizioni Linux ext2/ext3/ext4

fuse-ext2

Accedere alle partizioni Linux ext2/ext3/ext4 è una funzione sempre più richiesta anche da chi usa sistemi operativi diversi da quello del pinguino. Ad esempio, da chi ha Linux su un computer in dual boot con un altro sistema operativo (che sia Windows o Mac OS X). Oppure da chi ha uno o più Raspberry Pi, le cui schede SD sono solitamente in formato ext4.

Oltre alle implementazioni a pagamento, per Windows ci sono almeno un paio di esempi gratuiti di filesystem ext2 e superiori: Ext2Fsd e Ext2 Installable File System.

Per Macintosh l’unica implementazione opensource esistente è fuse-ext2. L’ultima versione, la 0.0.9, presenta alcuni inconvenienti che ne rendono scomodi l’installazione e l’uso:

  • innanzi tutto, non esiste ancora una versione binaria del pacchetto di installazione (il pacchetto binario più recente risale alla versione 0.0.7) e, quindi, per usarla occorre compilarla direttamente dai sorgenti;
  • secondo, fuse-ext2 cozza con la funzione System Integrity Protection (SIP) introdotta a partire da Mac OS X 10.11 El Capitan. SIP impedisce la modifica di alcune cartelle di sistema anche da parte dell’utente root, e fuse-ext2 va ad installarsi proprio in alcune di queste cartelle. La protezione SIP può essere disabilitata, ma solo attraverso una procedura un po’ laboriosa e che abbassa il livello di sicurezza del sistema operativo;
  • infine, il montaggio dei filesystem Linux può avvenire solamente in modalità manuale (impartendo uno specifico  comando dal terminale Bash di Mac OS X) e non automaticamente all’inserimento della periferica, come avviene con gli altri filesystem supportati da Mac OS X.

Qualche modifica

Proprio per superare questi limiti ho deciso di fare un fork su GitHub del progetto originale ed apportare qualche modifica (chi è interessato ai dettagli può dare un’occhiata ai miei commit). Il risultato di questo lavoro lo si può scaricare da qui: https://github.com/gpz500/fuse-ext2/releases. In modo da distinguerli dalla versione ufficiale, ho “battezzato” i miei pacchetti con le versioni 0.0.9-gpz500, 0.0.9-gpz501, etc.

Come installare sul proprio Mac

Prima di installare ed utilizzare con successo fuse-ext2 si devono installare alcune necessarie dipendenze. Nel complesso, le operazioni da fare sono:

  1. Installare FUSE for OS X
  2. Installare Homebrew
  3. Installare e2fsprogs con il comando da terminale
    $ brew install e2fsprogs
  4. Installare il pacchetto fuse-ext2.pkg dall’immagine disco fuse-ext2-0.0.9-gpz501.dmg prelevata da https://github.com/gpz500/fuse-ext2/releases (poiché il pacchetto non è firmato, si deve fare Control+click su fuse-ext2.pkg, fare click su Apri e poi fare ancora click su Apri)

A questo punto ci saranno due nuove icone in Preferenze di Sistema: quella di FUSE for OS X e quella, riconoscibilissima per via del pinguino ;-), di fuse-ext2. Connettendo un disco esterno o una scheda SD contenenti volumi formattati ext2, ext3 o ext4, questi verranno montati automaticamente e le rispettive icone compariranno sul desktop.

Leggere, ma anche scrivere

Di default i filesystem Linux vengono montati in modalità sola lettura, perché fuse-ext2 non è considerato ancora maturo al 100% per effettuare in modo affidabile operazioni di scrittura. Se comunque – a proprio rischio e pericolo – si vuole abilitare anche la scrittura, il volume va montato da terminale con i comandi seguenti:

$ diskutil list

, per ottenere la lista dei dischi e delle partizioni noti al sistema, e poi:

$ sudo mkdir /Volumes/<nome-a-piacere>
$ sudo fuse-ext2 -o rw+ /dev/diskxsy /Volumes/<nome-a-piacere>

, dove /dev/diskxsy è il file di periferica della partizione Linux che si intende montare, da determinare osservando l’output del comando ‘diskutil list‘. Infine, visto che per i volumi montati a mano non compare nessuna icona sul desktop:

$ open /Volumes/<nome-a-piacere>

, per aprire una finestra di Finder sul volume appena montato.

Una volta terminato il lavoro, prima di scollegare la periferica si deve smontare il volume con i comandi:

$ sudo umount /Volumes/<nome-a-piacere>
$ sudo rmdir /Volumes/<nome-a-piacere>

Un’ultima informazione: per abilitare l’insicura scrittura anche per i volumi montati automaticamente all’inserimento della periferica, si deve modificare il file /Library/Filesystems/fuse-ext2.fs/fuse-ext2.util con il comando:

$ sudo sed -e 's/OPTIONS="local"/OPTIONS="local,rw+"/g' -i .orig /Library/Filesystems/fuse-ext2.fs/fuse-ext2.util
Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...