macOS: abilitare NTFS in scrittura

macOS: abilitare NTFS in scrittura

di Aggiornato: 25 Gennaio 2020 15 commenti

NOTA:
Articolo aggiornato per MacOS Catalina

Specie chi come me arriva dal mondo Linux, questa cosa appare come una stramberia bella e buona. Per default il macOS è in grado di leggere il filesystem NTFS ma non di scriverci! In soldoni significa che se avete un hard disk esterno, o ne comprate uno nuovo, al 95% delle probabilità sarà formattato appunto in NTFS.

Il fatto che possa leggere, quindi anche copiare dai suddetti hdd, ma non scrivere, significa che la cosa è decisamente voluta. Esistono dei programmi a pagamento che ovviano la questione, ma grazie a Dio esiste l’Open Source.

La procedura che ho provato funziona al 100% ed è stata testata su macOS Sierra 10.12.6 e High Sierra 10.13.1 (aggiornato anche per macOS Mojave 10.14)

Per arrivare al risultato dobbiamo effettuare alcuni passaggi, il primo passo è quello di installare “Fuse for macOS” (ex MacFuse), si tratta di un programma Open Source che ci permetterà di accedere a file system di terze parti.

Scaricate il pacchetto .DMG che trovate nella homepage, avviate con un doppio click, verrà montato un disco virtuale e si aprirà una finestra. Premiamo con un doppio click sull’icona a scatola (vedi foto sotto) e quindi accederemo all’installer vero e proprio.

Personalmente non ho scelto di installare il compatibility Layer, ad ogni modo sarà comunque possibile farlo rilanciando il setup nuovamente. Una volta terminata l’installazione nelle “Preferenze di Sistema” avremo sul fondo una nuova icona chiamata “FUSE“. Questo è il primo passo, poichè “Fuse for macOS” non ha le librerie necessarie per effettuare il mount di NTFS.

Queste librerie rispondo al programma NTFS-3G e la via più facile e sicura è quella di utilizzare un altro programma che si chiama Homebrew.

Homebrew è di fatto l’equivalente dei repository APT in debian, o per chi viene da Windows è un cugino molto alla lontana dello store. In sostanza è una sorta di directory dove è possibile installare software e tenerlo aggiornato. Homebrew è molto utile poiché porta in dote comandi che non sono presenti in macOS, come ad esempio i comandi linux quali wget ed altri.

Per installare Homebrew rimando alla pagina ufficiale del progetto, oppure ancora meglio consultate il nostro tutorial su Brew.

Siamo pronti ad installare NTFS-3G:

brew install ntfs-3g

Ora abbiamo il comando di mount che é posizionato sotto “/usr/local/sbin/mount_ntfs“. Questo significa che se montate ora un disco esterno il sistema operativo utilizzerà ancora il suo comando originale. Per permettere l’automount dovremo sostituire il comando originale del macOS con questo. Ma il sistema di sicurezza SIP, (System Integrity Protection) equiparabile alla lontana di apparmor per chi viene da Linux o UAC per Windows, non lo permette. Quindi dobbiamo effettuare un passaggio di disattivazione e successiva riattivazione.

Per disattivare SIP dobbiamo riavviare il sistema in modalità macOS Recovery, ovvero al riavvio premiamo subito command ⌘ + R.

Attenzione, da High Sierra in poi, tenete premuta la sequenza di tasti dal riavvio sino a quando non vedremo il logo della Apple, altrimenti il comando non viene preso.

Dopo una analisi dei dischi, il cui tempo può variare, ci viene chiesto di confermare l’utente con cui intendiamo operare, e quindi verrà richiesta la password (attenzione che in questa fase il touch-id non è abilitato). Una volta ottenuto l’accesso, ignoriamo la maschera che abbiamo dinnanzi e dal menu in alto avviamo Utilità ⇒ Terminale dove andremo a dare il comando:

csrutil disable

Come da risultato a schermo, andremo ad effettuare un riavvio normale per accedere al sistema operativo. Una volta dentro riprendiamo il nostro terminale ( finder ⇒ vai ⇒ utility ⇒ terminale.app ) dove andremo a per prima cosa ad effettuare una copia di backup del comando di mount_ntfs originale:

sudo mv /Volumes/Macintosh\ HD/sbin/mount_ntfs /Volumes/Macintosh\ HD/sbin/mount_ntfs.ori

ATTENZIONE: E’ possibile che per i modelli privi di SSD “Macintosh HD” sia solo “Macintosh” quindi adeguate il comando di conseguenza.
A questo punto siamo pronti a linkare il comando di NTFS-3G con quello di sistema, tuttavia dalla versione di Catalina in poi il disco è montato in sola lettura, per cui dobbiamo montarlo anche in scrittura con il comando:

sudo mount -uw /

Ora possiamo finalmente linkare il nostro mount_ntfs con quello in funzione del nostro macOs:

sudo ln -s /usr/local/sbin/mount_ntfs /Volumes/Macintosh\ HD/sbin/mount_ntfs

Abbiamo quasi terminato, poiché non dobbiamo dimenticarci di riattivare SIP. Prima però attacchiamo un disco NTFS esterno per verificare il funzionamento, deve caricarsi in automatico e deve essere possibile leggere e scrivere al suo interno. Ad esempio creiamo una cartella e poi la cancelliamo.

Se ciò avviene, andiamo come in precedenza a riavviare il sistema in macOS Recovery fin ad avviare Utilità ⇒ Terminale dove andremo a dare il comando:

csrutil enable

Riavviamo e da qui in poi potremo caricare qualsiasi disco con filesystem NTFS. Sarebbe stato molto meglio se Apple avesse introdotto direttamente il supporto, ad ogni modo abbiamo potuto imparare come si accede alla console di ripristino e come installare da brew software per sviluppo.

NOTA:
Nel caso di aggiornamento del sistema operativo (ad esempio da High Sierra a Mojave) questa operazione sarà da ripetere dal punto descritto per l’abilitazione di CSRUTIL in poi.

Libri che ti consiglio sull'argomento

Alcuni titoli che ho trovato utili come manuale tecnico per questo articolo

Ci sono 15 commenti, di la tua!

sezione commenti aperta al pubblico
  1. salvatore pulpito
    #1 salvatore pulpito 23 Ottobre, 2019, 21:04

    sempre funzionato alla grande. ho voluto provare la versione 10.15 e non va. legge ma non scrive

    Rispondi a questo commento
  2. Gogo
    #2 Gogo 7 Ottobre, 2019, 14:20

    niente, non funziona. Da “sudo mv /Volumes/Macintosh\ HD/sbin/mount_ntfs /Volumes/Macintosh\ HD/sbin/mount_ntfs.ori” non riconosce il comando.

    Rispondi a questo commento
    • Walter Tosolini
      Walter Tosolini Autore 7 Ottobre, 2019, 19:33

      Non è possibile, mv è un comando Unix, quindi nativo di MacOS. Prova a postare qui il messaggio di errore esatto che ti ritorna.

      Rispondi a questo commento
    • Alessandro
      Alessandro 17 Novembre, 2019, 14:09

      Devi montare la root in scrittura, da Catalina viene montata di default in sola lettura, usa questo comando
      sudo mount -uw /

      Rispondi a questo commento
      • Mattia
        Mattia 25 Gennaio, 2020, 13:30

        Ciao a tutti. Ho un MB Pro 2013 con su Catalina 10.15.2.
        Scusa, ma mi sono perso un passaggio… quando (e dove) devo scrivere il tuo comando “sudo mount -uw /”?

        quando vado a scrivere gli ultimi 2 comandi della guida, mi dice:
        usage: mount [-dfruvw] [-o options] [-t external_type] special mount_point
        mount [-adfruvw] [-t external_type]
        mount [-dfruvw] special | mount_point

        Sto avendo problemi anche con il penultimo comando per la copia di backup, non ho capito dove devo indicare “Macintosh HD”, mi dice “ln: /Volumes/Macintosh HD/sbin/mount_ntfs: No such file or directory”

        Potrei avere una dritta su questi ultimi comandi?
        Grazie mille!

        Rispondi a questo commento
        • Walter Tosolini
          Walter Tosolini Autore 25 Gennaio, 2020, 17:09

          Ciao, ho aggiornato l’articolo per Catalina. Fai attenzione che il tuo disco se è ssd sarà macintosh hd, se è rotativo (vecchio sistema) sarà solo macintosh. Inoltre fai attenzione a come scrivi il comando, nel caso di Macintosh HD va scritto Macintosh\ HD con la \, altrimenti il comando non te lo prende.

          Rispondi a questo commento
          • Mattia
            Mattia 2 Febbraio, 2020, 13:45

            Ciao, ti link quello che mi dice il terminale:
            Last login: Sat Jan 25 13:29:16 on ttys000

            The default interactive shell is now zsh.
            To update your account to use zsh, please run chsh -s /bin/zsh.
            For more details, please visit https://support.apple.com/kb/HT208050.
            MBP-di-Vanessa:~ Mattia$ sudo mv /Volumes/Macintosh\ HD/sbin/mount_ntfs /Volumes/Macintosh\ HD/sbin/mount_ntfs.ori
            Password:
            mv: rename /Volumes/Macintosh HD/sbin/mount_ntfs to /Volumes/Macintosh HD/sbin/mount_ntfs.ori: No such file or directory
            MBP-di-Vanessa:~ Mattia$

            Mi manca un qualcosa, lo so…ma non ci arrivo!!! 🙁
            Anzi, io sono l’account secondario…questo dice qualcosa?

            Rispondi a questo commento
            • Walter Tosolini
              Walter Tosolini Autore 2 Febbraio, 2020, 14:04

              No, ti chiede la password di root e tu l’hai fornita. Qui ti dice che non trova il file o la cartella. Sei sicuro di avere la directory Macintosh HD e non avere solo la cartalla Macintosh? per scoprirlo da terminale dai il comando “ls /Volumes/” vedi cosa ti risponde, se non c’è HD rimodula il comando di conseguenza.

              Rispondi a questo commento
  3. xer0xx0xchris
    #3 xer0xx0xchris 26 Giugno, 2019, 14:05

    non funziona 10.14.5

    Rispondi a questo commento
    • Walter Tosolini
      Walter Tosolini Autore 27 Giugno, 2019, 14:20

      A me funziona, e non vorrei ricordare male, ma High Sierra a Mojave non ho dovuto rifare la procedura. Sei sicuro di aver fatto correttamente gli ultimi passaggi? in particolare il penultimo che descrivo.

      Rispondi a questo commento
  4. Giovanni
    #4 Giovanni 19 Maggio, 2019, 00:04

    Grazie mille!

    Rispondi a questo commento
  5. Albert
    #5 Albert 2 Ottobre, 2018, 13:21

    Funziona, grazie!

    Rispondi a questo commento

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.