Feeds:
Articoli
Commenti

Posts Tagged ‘guida’

gioco governo immagazzinare ‘zzi tuoiandare fuga illusione codice fare Berlusconi visitare idea percorso quaderno soldi libertà politica cv eternità paura incidente errore organizzazione ipocrita D&Gricchezza articolo pulsante sbarreschiavitù mafia penna scorretto guida tassa espressione segreto giudizio specchio catene vaffanculo musica Rai calcolatrice cd fortuna fans interessi bestiame frainteso seguito scopo recinto fessi sfogo blog correre tv peccato crepa informazione museo intrattenimento internet incapacità lobotomizzati banche lavoro l’uomo neropensare ladro evitare sincerità pubblicità indotto cellulare irresponsabile vestiti cibo click gancio monte osservare medietà circolarecapitale superficiale

Così tante cose insieme non avrei potuto scriverle in maniera diversa. Vedetelo come una specie di gioco, una giungla nella quale ci sono diversi sentieri, ognuno dei quali porta qualcosa in se.

Read Full Post »

Oggi siamo qui riuniti per raccontare la mia avventura con l’UUID dei dispositivi per il montaggio di periferiche USB con l’ausilio di qualche regola creata ad hoc per udev e ottenere come risultato finale il mount automatico del dispositivo in un node da noi definito.
Tutto è iniziato qualche tempo fa, quando ogni volta che scollegavo e ricollegavo l’harddisk usb questo veniva riconosciuto con un /dev/sd* diverso e dovevo ogni volta cambiare nel fstab le regole per il mount. Questo problema è stato risolto abbastanza facilmente adottando all’interno del fstab l’Universally Unique Identifier (UUID), ciò m’ha consentito di non dover più metter mano ad ogni mount al fstab per modificare la lettera della periferica. Per fare questo vi basta digitare:

# vol_id -u /dev/sd*?

dove * corrisponde alla lettera del vostro dispositivo e ? al numero della partizione che si vuole montare, esempio /dev/sdb1.

Da questo comando avrete come output un codice esadecimale che è appunto l’UUID del vostro dispositivo, o meglio di quella partizione del vostro dispositivo.
A questo punto andiamo ad inserirlo all’interno di fstab (/etc/fstab) in modo molto semplice, invece di usare la classica sintassi:

/dev/sda1 /mnt/mount tipoPartizione Opzioni

utilizziamo la sintassi:

/dev/disk/by-uuid/UUID /mnt/mount tipoPartizione Opzioni

Ora noi possiamo da terminale digitare:

# mount /mnt/mount

e il nostro dispositivo verrà automaticamente montato nella cartella stabilita. Ma se noi usiamo hald come montaggio, cioè quando inseriamo l’harddisk facciamo il montaggio automatico esso verrà si riconosciuto ma non montato nella cartella da noi specificata /mnt/mount, ma in una cartella /media/sd* che cambierà ogni volta in base alla lettera del nostro dispostivo. E quindi viene vanificato l’uso dell’UUID visto che per entrare nell’harddisk devo cambiare ogni volta il path.
Per ovviare a questo inconveniente creiamo delle regole per udev che vadano ad intercettare il nostro dispositivo durante il montaggio e creino la cartella di mount che desideriamo.
Diamo il seguente comando:

$ udevinfo -a -n /dev/sd*?

dove * è la lettera del dispositivo e ? il numero di partizione esempio /dev/sdb1

Questo comando ci stamperà a video una serie di informazioni che noi possiamo usare per identificare il nostro dispositivo, suddivise in blocchi, ogni blocco è diviso da una riga vuota. Per utilizzare queste regole bisogna creare un file di regole per udev e inserirlo nella cartella

/etc/udev/rules.d/

All’interno della cartella rules.d troviamo altre regole di udev tutte numerate, esse vengono eseguite in ordine alfabetico quindi per essere sicuri che la nostra regola venga eseguita gli anteponiamo 01, esempio 01-mieregole.rules
Dopo aver creato questo file lo apriamo con il nostro editor di testi preferito, vim nel mio caso, e inseriamo alcune informazioni che identifichino il nostro dispositivo, prese dall’output del comando dato in precedenza. Ad esempio possiamo usare questi attributi:

SUBSYSTEMS==”…”, ATTRS{product}==”…”, ATTRS{serial}==”…”

ovviamente al posto dei puntini ci vanno i valori dati sempre dall’output del comando precedente, attenzione: questi attributi non possiamo pescarli a caso dall’output ma vanno presi con un certo criterio, devono appartenere tutti allo stesso blocco. Vi consiglio di fare delle prove scollegando e ricollegando il dispositivo, controllando che gli attributi scelti restino invariati. Impostando questa regola diciamo ad udev che quando si collega un dispositivo con quell SUBSYSTEMS AND ATTRS{product} AND ATTRS{serial} deve fare determinate azioni.
Ora dobbiamo dire ad udev che una volta identificato il dispositivo con quegli attributi crei il dispositivo a blocchi con il nome da noi voluto, per far questo dobbiamo usare la variabile NAME:

SUBSYSTEMS==”…”, ATTRS{product}==”…”, ATTRS{serial}==”…”, NAME=”USB_key”

Ora cosa succede? niente di più bello e spettacolare che possa accadere e cioè:

  1. inseriamo il nostro dispositivo USB nel pc;
  2. ci compare la finestrella che ci chiede cosa fare;
  3. gli diciamo apri e lui monta in automatico l’harddisk nella cartella /media/USB_key.

Ciò cosa comporta?

  • Non devo dare il mount da shell per montare il mio dispositivo nella cartella specificata nel fstab;
  • Ad ogni mount automatico la cartella /media/sd* non viene creata ma ci sarà solo /media/USB_key;
  • Possiamo usare questo path per i programmi che devono dialogare con l’harddisk, mentre prima se la cartella /media/sd* continuava a cambiare ad ogni mount, dovevamo continuare a cambiare il path nei programmi che usavano l’harddisk;
  • Posso comunque montare il dispositivo manualmente, basta annullare la finestra di hald all’inserimento del dispositivo, aprire una shell e digitare mount /mnt/mount, ovviamente in questo caso non verrà più montato nella cartella /media/USB_key ma in /mnt/mount, a meno che noi in fstab non mettiamo /media/USB_key come punto di mount e poi per montare digitiamo mount /media/USB_key.

Udev è un dispositivo molto potente, per maggiori trattazioni guardatevi il man 7 udev, ad udev potete pure dire di lanciare applicazioni, creare link simbolici al dispositivo (da usare al posto dell’UUID e montare con /dev/USB_key creato da noi, variabile SYMLINK+=”USB_key”) e quant’altro. Veramente versatile e potente da usare.

Questa guida è stata testata su slackware 12.1 con kde 3.5.9, non ho ne voglia ne tempo per testarla su altre distribuzioni, ogni danno che potrebbe creare ai vostri pc è voluto non era previsto.. 🙂

Io ho dovuto fare tutto ciò per avere un mount stabile, automatico, e dove volevo io. Spero vivamente che a voi vada meglio e semplicemtene inserendo una periferica USB vi venga montata sempre nello stesso posto oppure che voi vi accontentiate di fstab e un mount /mnt/cartella da shell, che poi male non è! 😀

HowTo rilasciato sotto Creative Commons..

Read Full Post »