Feeds:
Articoli
Commenti

Posts Tagged ‘gnu linux’

Ed eccoci qua, dopo ore ed ore ed ore, ne aggiungo un altro dai, ed ore di compilazione, di problemi, di soluzioni, abbiamo finalmente la nostra kde4.1.2 installata nel nostro sistema Gentoo. 🙂
Ci stò ancora lavorando e mancano alcuni dettagli come la tastiera che ha deciso di funzionare per 3/4 e l’1/4 non funzionante è quello che uso maggiormente ehehe.. Ma troveremo una soluzione anche a questo. Per adesso abbiamo fatto abbastanza.

Ed ora un 50% del Team Amperini utilizza KDE4.1.2 sul proprio sistema.

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 »