Quando lavoriamo con Ubuntu su PC, i dischi e le chiavetta USB collegate al computer vengono "montati" e resi disponibili automaticamente nell'ambiente desktop. Se però stiamo usando Ubuntu Server (o, più in generale, in tutti i casi in cui l'interfaccia grafica non sia installata o avviata) è necessaria una configurazione esplicita. Vediamo allora come montare automaticamente i dischi USB e le chiavette con Ubuntu da linea di comando, indipendentemente dal fatto che impieghino il filesystem di Windows (NTFS o FAT), quello di Linux (ext4) oppure l'exFAT principalmente utilizzato dalle fotocamere digitali

Guida Ubuntu: come montare automaticamente disco USB, SSD esterno chiavetta NTFS, ext4, exFAT ogni avvio PC/server (linea comando, Ubuntu Server, mount boot)

Dopo aver svolto questa procedura, i dischi USB e le chiavette collegati al momento dell'accensione del PC saranno resi disponibili alle applicazioni e ai servizi senza dover fare altro. Se invece vogliamo utilizzare il disco o la chiavetta temporaneamente, solo fino al prossimo riavvio, dobbiamo svolgere una procedura differente:

» Leggi: Chiavetta USB con Ubuntu da linea di comando: come accedere, leggere e scrivere i file (guida rapida al mount)

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: Spegnere, collegare, accendere

Per iniziare la prima configurazione di auto-montaggio, procediamo così:

  1. spegnere il PC o il server Ubuntu
  2. collegare la chiavetta USB o il disco esterno che desideriamo utilizzare
  3. accendere il PC

Dischi e chiavette USB con Ubuntu, Passo 2: Diventare root

Le operazioni descritte di seguito richiedono i privilegi di amministratore. Per non impazzire, acquisiamoli immediatamente impartendo il comando sudo -s

Guida Ubuntu: come montare automaticamente disco USB, SSD esterno chiavetta NTFS, ext4, exFAT ogni avvio PC/server (linea comando, Ubuntu Server, mount boot)

In caso venisse richiesta la password, digitiamo quella dell'utente corrente.

Dischi e chiavette USB con Ubuntu, Passo 3: 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

Guida Ubuntu: come montare automaticamente disco USB, SSD esterno chiavetta NTFS, ext4, exFAT ogni avvio PC/server (linea comando, Ubuntu Server, mount boot)

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 4: 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:

fdisk -l

Dalla lista ottenuta, ispezioniamo i risultati. Nello specifico, vogliamo trovare la voce che riporta come 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

Guida Ubuntu: come montare automaticamente disco USB, SSD esterno chiavetta NTFS, ext4, exFAT ogni avvio PC/server (linea comando, Ubuntu Server, mount boot)

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

Guida Ubuntu: come montare automaticamente disco USB, SSD esterno chiavetta NTFS, ext4, exFAT ogni avvio PC/server (linea comando, Ubuntu Server, mount boot)

Dischi e chiavette USB con Ubuntu, Passo 5: Scoprire l'UUID

Dopo aver ottenuto il nome della partizione che desideriamo montare, possiamo usarlo per trovare l'identificativo univoco (UUID) che Linux le ha associato. Allo scopo, impartiamo un comando simile a questo:

blkid | grep /dev/sdb1

Sostituendo a /dev/sdb1 il nome della partizione che desideriamo montare (quello scoperto al Passo precedente).

Nell'immagine seguente, scopro la stringa UUID="bb25e737...c0d": appuntiamocela perché ci servirà fra poco

Guida Ubuntu: come montare automaticamente disco USB, SSD esterno chiavetta NTFS, ext4, exFAT ogni avvio PC/server (linea comando, Ubuntu Server, mount boot)

Alcuni aspetti a cui prestare attenzione:

  1. il comando precedente va impartito specificando il nome della partizione che vogliamo montare, NON il nome del disco
  2. fra le varie informazioni riportate, ci sono sia UUID che PARTUUID: a noi interessa solo il primo (UUID)

Il comando ci segnala anche quale filesystem sia in uso sul dispositivo (TYPE=). Nell'immagine precedente sto usando quello nativo di Ubuntu (ext4), mentre la chiavetta mostrata nello screenshot seguente era stata formattata su un PC Windows e legge dunque ntfs

Guida Ubuntu: come montare automaticamente disco USB, SSD esterno chiavetta NTFS, ext4, exFAT ogni avvio PC/server (linea comando, Ubuntu Server, mount boot)

Dischi e chiavette USB con Ubuntu, Passo 6: 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, dopo oltre ad aver creato il mountpoint /media/usbdisk, io ne avevo già creato un altro in precedenza chiamandolo chiavetta

Guida Ubuntu: come montare automaticamente disco USB, SSD esterno chiavetta NTFS, ext4, exFAT ogni avvio PC/server (linea comando, Ubuntu Server, mount boot)

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 7: Modificare /etc/fstab

Come ultimo passo della nostra configurazione dobbiamo aggiungere l'istruzione che effettivamente monta la partizione nel mountpoint. Allo scopo, apriamo il file di configurazione preposto:

nano /etc/fstab

Dobbiamo ora accodare un comando simile a questo:

Guida Ubuntu: come montare automaticamente disco USB, SSD esterno chiavetta NTFS, ext4, exFAT ogni avvio PC/server (linea comando, Ubuntu Server, mount boot)

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

  • UUID="bb..0d": è l'UUID della partizione che vogliamo montare, così come scoperto qualche Passo fa tramite il comando blkid
  • /media/usbdisk: è il percorso della cartella (mountpoint) nella quale montare la partizione
  • auto nodev 0 2: sono opzioni varie, il cui significato è spiegato nella documentazione

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

UUID="bb..0d" /media/usbdisk auto nodev,windows_names,uid=root,gid=root,dmask=000,fmask=011 0 2

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

UUID="bb..0d" /media/usbdisk auto nodev 0 2

Al termine, premere la combinazione da tastiera Ctrl+O seguita da Invio per salvare il file e poi Ctrl+X per uscire

» Leggi anche: Guida: modificare i file di configurazione di Linux Ubuntu/CentOS da terminale è facile con "nano" (alternativa a "vi")

Guida Ubuntu: come montare automaticamente disco USB, SSD esterno chiavetta NTFS, ext4, exFAT ogni avvio PC/server (linea comando, Ubuntu Server, mount boot) - vi nano terminale spotlight

Una nota sui permessi

Se il filesystem del disco esterno o chiavetta USB che abbiamo appena configurato è 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

Guida Ubuntu: come montare automaticamente disco USB, SSD esterno chiavetta NTFS, ext4, exFAT ogni avvio PC/server (linea comando, Ubuntu Server, mount boot)

Dischi e chiavette USB con Ubuntu, Passo 8: Montare senza riavviare

Nella situazione attuale, la nostra partizione verrà automaticamente montata ad ogni riavvio del PC. per verificare "al volo" che sia tutto in ordine, senza riavviare, impartiamo:

mount -a

Questo monterà tutti i nuovi mountpoint specificati (senza toccare quelli già montati).

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

df -h

Nella lista, dovremo ora trovare un nuovo mountpoint:

Guida Ubuntu: come montare automaticamente disco USB, SSD esterno chiavetta NTFS, ext4, exFAT ogni avvio PC/server (linea comando, Ubuntu Server, mount boot)

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

Possiamo ora accedere ai nostri file. Prima di farlo, terminiamo la sessione di root per ri-acquisire i privilegi del nostro utente standard con la combinazione da tastiera Ctrl+D, oppure impartendo esplicitamente il comando exit.

I file e le cartelle presenti sul disco esterno o sulla chiavetta USB sono 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

Guida Ubuntu: come montare automaticamente disco USB, SSD esterno chiavetta NTFS, ext4, exFAT ogni avvio PC/server (linea comando, Ubuntu Server, mount boot)

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

Guida Ubuntu: come montare automaticamente disco USB, SSD esterno chiavetta NTFS, ext4, exFAT ogni avvio PC/server (linea comando, Ubuntu Server, mount boot)

Perfetto!

Riavviamo ora il PC con reboot, poi ripetiamo i passaggi qui sopra per assicurarci che la partizione sia stata effettivamente auto-montata come ci aspettiamo.

Dischi e chiavette USB con Ubuntu, Passo 10: 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.

In caso volessimo riconnettere e rimontare la stessa unità, basterà ricollegarla fisicamente al PC e impartire soltanto:

sudo mount -a

Questo la renderà nuovamente accessibile.

Da notare però che, In questa situazione, il sistema operativo tenterà di montare automaticamente la partizione nel mountpoint ad ogni riavvio. Ma l'operazione fallirà, proprio perché l'unità non è più connessa. Io preferisco mantenere tutto in questo stato, proprio in modo da poter ricollegare la chiavetta velocissimamente con sudo mount -a in caso di bisogno.

Se però non useremo più una determinata memoria esterna, vorremo probabilmente disattivarne il montaggio automatico: allo scopo, basta modificare il file dedicato con il comando già usato in precedenza:

sudo nano /etc/fstab

Da qui, commentare (carattere #) oppure eliminare del tutto le righe che abbiamo manualmente aggiunto qualche minuto fa.