mercoledì 21 Aprile 2021
Home / Hardware / Collegare disco USB a Raspberry Pi

Collegare disco USB a Raspberry Pi

In questa guida tratteremo il collegamento di dispositivo di memorizzazione USB connesso fisicamente alla nostra piccola schedina preferita. Le condivisioni di rete, verranno invece trattate nella prossima puntata..
Prima di lanciarci a far riconoscere il nostro disco (o chiavetta) USB al Raspberry, non posso non fare una premessa sui File System: è necessario conoscere quello che utilizzeremo nel disco USB:

EXT (le varie versioni) è il filesystem nativo di linux, veloce e affidabile, è la scelta naturale per il Raspberry, però attenzione, per poter utilizzare il disco removibibile anche su macchine windows o Mac, occorre installare driver o software aggiuntivi su questi sistemi.
NTFS è il formato che utilizzano le versioni più moderne di Windows (da Vista in su, per capirci), supporta file più grandi di 4 Gb, Linux (e OsX) però, sono in grando di usarlo solo in lettura, per ovviare a questo si può usare il software ntfs-3g, le prestazioni, tuttavia, scendono per quel che riguarda la velocità. Supporta i permessi su Windows, ma non quelli Unix-like.
FAT, FAT32 è il filesystem delle versioni più vecchie di Windows, questo è un vantaggio, perché è correttamente riconosciuto da quasi tutti i sistemi operativi, ma ha dei limiti: non supporta i file più grandi di 4 Gb o i permessi dei file.
HFS è il filesystem del Mac, esiste in versione con e senza Journaling. Quando quest’ ultimo è presente, Linux è in grado di leggere i dischi in HFS ma non di scriverci. Windows non può leggere questo filesystem se non con software aggiuntivi.
Molti altri (OFS, FFS,..) ma direi che è così improbabile che li usiate, che ve li risparmio..

Detto questo, partiamo!:

(i comandi descritti di seguito vanno impartiti da terminale o connessione SSH/Mosh)

Colleghiamo il disco USB da montare, e vediamo come si chiama:
sudo fdisk -l
o con usb dovrebbe andare bene anche
ls /dev/sda*

troviamo quindi che si chiama, ad esempio, /dev/sda1
cerchiamo l’ UUID (Universally Unique IDentifier) di questo dispositivo con:
sudo blkid /dev/sda1

Ci verrà risposto qualcosa come questo:
/dev/sda1: LABEL=”miodisco” UUID=”1234-5678″ TYPE=”vfat”

Ricordiamoci quel numerino UUID (nell’ esempio, 1234-5678)

Occorre che creiamo ora una cartella dove montare il disco. In sostanza i contenuti del disco verranno visti dentro questa cartella di mount, che è come un collegamento virtuale al disco
sudo mkdir /mnt/usbhdd

(convenzionalmente sono sotto /mnt io qui lo ho chiamato usbhdd a titolo di esempio)
Poi andiamo a attribuire i permessi alla cartella appena creata:

sudo chmod 777 /mnt/usbhdd

questa stringa dà i permessi di lettura/scrittura/esecuzione a tutti, per permessi più limitati, editare di conseguenza.
Ad esempio, si può usare:

sudo chmod 760 /mnt/usbhdd

per dare tutti i permessi all’ utente, sola lettura al suo gruppo, e nulla a tutti gli altri
Approfondimenti sui permessi e sul loro utilizzo li trovate in quest’ altra, indispensabile, guida.

Ora editiamo il file /etc/fstab con i permessi di root (sudo), quindi:

sudo nano /etc/fstab

e aggiungiamo in fondo questa riga:

UUID=1234-5678 /mnt/usbhdd auto defaults,auto,umask=000,users,rw,uid=pi,gid=pi 0 0

Se avete problemi, invece del primo auto specificate il nome del filesystem che intendete utilizzare e con cui è formattato il disco. Ad esempio, per un disco NTFS, auto caricherà il filesystem NTFS e non ntfs-3g, anche se lo avete installato. Occorrerà quindi specificare ntfs-3g al poosto di auto.

naturalmente mettendo lo UUID che ci siamo appuntati prima.
poi salviamo con Ctrl-O e usciamo dall’ editor (nano) con CTRL-X

A questo punto, facciamo una verifica, se il disco si monta:

sudo mount /mnt/usbhdd

vediamo se riusciamo a vedere i file e le cartelle all’ interno:

ls /mnt/usbhdd

smontiamo il disco, e poi scolleghiamolo fisicamente dal Raspberry Pi:

sudo umount /mnt/usbhdd

Ora, una chicca: possiamo provare a fare in modo che il disco faccia l’automount, cioè si monti automaticamente ogni volta che lo colleghiamo, come avviene, normalmente, sui dispositivi windows.
Per farlo occorre creare una nuova regola udev

sudo sh -c 'echo "KERNEL==\"sda\", RUN+=\"/bin/mount /mnt/usbhdd\"" >> /etc/udev/rules.d/99-mount.rules'

(io non ho dischi USB, dovrebbe funzionare.. ricordatevi di mettere il vostro punto di mount invece di /mnt/usbhdd usato nell’ esempio)
Perchè la regola venga caricata, occorre riavviare.

suggerimenti:
per caricare etc/fstab, invece, non è indispensabile riavviare, ma si può usare:

mount -a

per verificare se si hanno i permessi di scrittura, potete creare un file, con il comando

touch nomefile

Oppure un piccolo file di testo con nano
che potrere leggere con il comando
cat nomefile

A proposito di Zzed

Zzed
Appassionato di informatica alternativa, ma perenne novellino di Linux..

Vedi Anche

MagPi104-doppiapagina

MagPi in Italiano! La Casa del Futuro

Traduzione in italiano della rivista ufficiale Raspberry Pi: The MagPi. numero 104 di aprile 2021

Powered by themekiller.com