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
Un commento
Pingback: Personal hosting su RaspberryPi con Owncloud