Per leggere i file da una memoria esterna con Ubuntu da linea di comando è necessario "montare" la partizione tramite il comando dedicato, specificando esplicitamente se i file devono essere disponibili in "sola lettura" oppure se potremo anche modificarli e crearne di nuovi. Gli argomenti cambiano leggermente a seconda che il disco esterno o la chiavetta siano formattati con file system NTFS, exFAT oppure ext4, ma Ubuntu li supporta tutti senza problemi. Vediamo come fare

Chiavetta USB disco/SSD esterno Ubuntu linea comando: come accedere, leggere scrivere file (guida rapida mount NTFS, exFAT, ext4)

La procedura si applica principalmente ad Ubuntu Server o, più in generale, in tutti i casi in cui l'interfaccia grafica non sia installata o avviata. Con l'edizione dotata di interfaccia grafica (il "normale" Ubuntu Desktop, per capirci) le chiavette e i dischi USB collegati al PC divengono automaticamente disponibili, senza bisogno di fare altro.

Seguendo la procedura indicata in questo articolo, sarà possibile leggere e scrivere i file dalla chiavetta USB o memoria esterna da linea di comando. L'unità disco rimarrà disponibile fino al prossimo riavvio del PC: a quel punto, se desidereremo utilizzare di nuovo la memoria esterna, dovremo impartire nuovamente il comando. Per fare in modo che le unità USB vengano auto-montate ad ogni riavvio, seguire quest'altra procedura:

» Leggi: Guida Ubuntu: come montare automaticamente un disco USB, SSD esterno o chiavetta NTFS, ext4, exFAT ad ogni avvio (linea di comando, Ubuntu Server)

Daremo per scontato che la chiavetta USB o il disco esterno siano già stati formattati con filesystem NTFS o FAT (Windows), ext4 (Linux) oppure exFAT. Raccomando di testare preventivamente il dispositivo su un altro computer dotato di interfaccia grafica, scrivendo e leggendo qualche file, prima di proseguire.

Dischi e chiavette USB con Ubuntu, Passo 1: Controllare che il disco non sia già montato

Verifichiamo per prima cosa che il disco o la chiavetta USB alla quale vogliamo accedere non sia già montato impartendo:

df -h

Chiavetta USB disco/SSD esterno Ubuntu linea comando: come accedere, leggere scrivere file (guida rapida mount NTFS, exFAT, ext4)

Ispezioniamo, in particolare, la colonna Size: se vediamo una riga che corrisponde alla capienza del disco o chiavetta USB che vogliamo utilizzare, significa che il dispositivo è già disponibile nel percorso indicato dall'ultima colonna (Mounted on).

Dischi e chiavette USB con Ubuntu, Passo 2: Scoprire il nome del disco e della partizione

Dobbiamo ora scoprire il nome che il sistema operativo ha assegnato alla nostra chiavetta o disco esterno. Allo scopo, impartire:

sudo fdisk -l

Dalla lista ottenuta, ispezioniamo i risultati. Nello specifico, vogliamo trovare la voce che riporta una grandezza in gigabyte pari alla nostra unità. In questa immagine, ad esempio, io stavo cercando di montare un SSD esterno da 1 TB che, per il solito motivo, viene identificato come 931.53 GiB

» Leggi anche: [guida] Bit e byte, spiegazione facile: differenza fra megabit, megabyte, mebibyte, terabyte, tebibyte e altri multipli

Scopriamo così il nome dell'unità. Nel mio caso, è /dev/sdb

Chiavetta USB disco/SSD esterno Ubuntu linea comando: come accedere, leggere scrivere file (guida rapida mount NTFS, exFAT, ext4)

Ma /dev/sdb è il nome del disco. In realtà, a noi interessa il nome della partizione che vogliamo montare. Le singole partizioni sono riportate nella medesima lista, dopo ogni disco. Sono facilmente identificabili perché riportano l'intestazione Device, Start, End eccetera.

Linux assegna ad ogni partizione il nome del disco che la contiene, seguito da un numero: nel mio caso, il disco contiene una sola partizione che si chiama, appunto, /dev/sdb1.

Come ulteriore esempio: nello screenshot seguente ho collegato una chiavetta da 16 GB con due partizioni. La chiavetta è denominata /dev/sdc e le due partizioni, rispettivamente, /dev/sdc1 e /dev/sdc5

Chiavetta USB disco/SSD esterno Ubuntu linea comando: come accedere, leggere scrivere file (guida rapida mount NTFS, exFAT, ext4)

Dischi e chiavette USB con Ubuntu, Passo 3: Creare il mountpoint

A questo punto dobbiamo creare un mountpoint: un modo altisonante per dire che dobbiamo creare una cartella nella quale, al passo successivo, "agganceremo" (mount) il disco esterno o la chiavetta USB alla quale desideriamo accedere.

Possiamo scegliere una directory qualsiasi, anche preesistente! Ma, per convenzione, i mountpoint per le unità di memoria esterne si creano sotto /media. Procediamo dunque a creare il mountpoint:

mkdir /media/usbdisk

Possiamo scegliere un nome qualsiasi, ma io sono solito usare usbdisk per SSD e HDD esterni oppure chiavetta per, uh, la chiavetta USB.

Verifichiamo il risultato dell'operazione con

ls -la /media

Nello screenshot seguente si vede che, oltre ad aver creato il mountpoint /media/usbdisk, io ne avevo già creato un altro in precedenza chiamandolo chiavetta

Chiavetta USB disco/SSD esterno Ubuntu linea comando: come accedere, leggere scrivere file (guida rapida mount NTFS, exFAT, ext4)

Quando una partizione viene montata in un mountpoint, il contenuto della partizione sostituisce temporaneamente il contenuto della cartella. Ma, attenzione bene! Il vecchio contenuto NON viene cancellato: rimarrà semplicemente "invisibile" fino a quando non smonteremo la partizione.

Io sono solito sfruttare questo meccanismo scrivendo un file vuoto in ogni mountpoint che creo. Così facendo, sono sempre in grado di capire "a colpo d'occhio" se sto guardando la cartella "vuota" oppure se sto effettivamente guardando il filesystem dell'unità montata. Per farlo, impartire:

touch "/media/usbdisk/Se mi vedi, il disco non è montato"

Ovviamente, sostitute il percorso /media/usbdisk/ con la cartella che avete creato un attimo fa.

Dischi e chiavette USB con Ubuntu, Passo 4: Montare l'unità

A questo punto abbiamo tutti gli elementi che ci servono per montare la memoria esterna nel mountpoint e accedere così ai file.

Il comando esatto varia a seconda del filesystem presente sulla partizione che desideriamo montare, ma ha questa struttura di base:

  • -o rw,nodev,...: sono opzioni varie, il cui significato è spiegato nella documentazione
  • /dev/sdb1: è il nome della partizione che vogliamo montare, così come scoperto qualche Passo fa tramite il comando sudo fdisk -l
  • /media/usbdisk: è il percorso della cartella (mountpoint) nella quale montare la partizione

Per montare dischi e chiavette USB con filesystem NTFS (Windows), FAT oppure exFAT:

sudo mount -o rw,nodev,windows_names,uid=root,gid=root,dmask=000,fmask=011 /dev/sdb1 /media/usbdisk

Per montare dischi e chiavette USB con filesystem ext4 oppure qualsiasi altro filesystem proprio del mondo Linux:

sudo mount -o rw,nodev /dev/sdb1 /media/usbdisk

Una nota sui permessi

Se il filesystem del disco esterno o chiavetta USB che abbiamo appena montato è ext4 (oppure qualsiasi altro del mondo Linux), il sistema operativo rispetterà i permessi di lettura, scrittura ed esecuzione per proprietario, gruppo, altri su file e cartelle. Potremo quindi modificarli e gestirli come di consueto. Ad esempio: impartendo

chmod ugo=rwX /media/usbdisk/ -R

Permetteremo l'accesso completo in lettura e scrittura a tutti.

Se però il filesystem è NTFS, FAT oppure exFAT, i permessi non verranno onorati e, pur tentando di usare chmod, non otterremo alcun risultato. In tal caso, i permessi vengono definiti al momento del mount. Nell'istruzione fornita sopra, nello specifico, abbiamo indicato che:

  • l'utente proprietario deve essere: root
  • il gruppo proprietario deve essere: root
  • tutti posso leggere e scrivere le cartelle e i file
  • solo l'utente proprietario (root) può eseguire i file salvati sulla chiavetta

Chiavetta USB disco/SSD esterno Ubuntu linea comando: come accedere, leggere scrivere file (guida rapida mount NTFS, exFAT, ext4)

Dischi e chiavette USB con Ubuntu, Passo 5: Verificare il risultato del mount

Se non otteniamo errori in risposta al comando di mount, l'operazione è andata a buon fine. Impartiamo quindi di nuovo il comando:

df -h

Nella lista, dovremo ora trovare un nuovo mountpoint:

Chiavetta USB disco/SSD esterno Ubuntu linea comando: come accedere, leggere scrivere file (guida rapida mount NTFS, exFAT, ext4)

Dischi e chiavette USB con Ubuntu, Passo 6: Accedere ai file

I file e le cartelle presenti sul disco esterno o sulla chiavetta USB sono ora accessibili nel nostro mountpoint. Per verificarlo, impartiamo qualcosa di simile a questo per ottenere la lista dei documenti presenti sull'unità esterna:

ls -la /media/usbdisk

Chiavetta USB disco/SSD esterno Ubuntu linea comando: come accedere, leggere scrivere file (guida rapida mount NTFS, exFAT, ext4)

Per assicurarci che lettura e scrittura funzionino, creiamo una cartella, un file all'interno della stessa e leggiamolo:

cd /media/usbdisk/

mkdir cartella_test

echo "Funziona" > cartella_test/file_test.txt

cat cartella_test/file_test.txt

Chiavetta USB disco/SSD esterno Ubuntu linea comando: come accedere, leggere scrivere file (guida rapida mount NTFS, exFAT, ext4)

Perfetto!

Dischi e chiavette USB con Ubuntu, Passo 7: Espellere e scollegare l'unità

In caso desiderassimo scollegare l'unità, ricordiamo che dobbiamo prima smontarla! È un po' come usare Rimozione sicura hardware per espellere le chiavette in ambiente Windows, solo che qui è estremamente più importante per garantire l'integrità dei dati.

Allo scopo, impartire un comando simile a questo:

sudo umount /dev/sdb*

Sostituendo, naturalmente, il nome del disco che vogliamo smontare. L'asterisco in fondo va conservato: fa sì che vengano smontate tutte le partizioni del disco.