Pagina 1 di 1
C'è un modo per far vedere una periferica sempre con lo stesso /dev/sdx?
Inviato: venerdì 10 settembre 2010, 11:21
da Syphon
Buongiorno a tutti,
solo un piccolo problema riguardante la mia distribuzione ubuntu server.
In pratica ho installato un hard disk esterno usb per backup e mi sono creato uno script bash che esegue il backup.
Visto che l'hard disk si autostoppa dopo 15 minuti di inattività per risparmare energia, ho deciso di montare e smontare l'hard disk ad ogni backup in modo da assicurarmi l'assenza di trasferimento dati.Quindi non l'ho inserito in fstab.
Il problema sta nel fatto che ogni tanto l'hard disk esterno viene visto come /dev/sdb e qualche volta come /dev/sdc.
Questo non fa funzionare il mio script che funziona solo con /dev/sdb.
C'è un modo per fare in modo che la mia periferica sia vista sempre come /dev/sdb?
N.B. L'hard disk è sempre sulla stessa porta usb.
Grazie mille per i vostri preziosi consigli.
Saluti
Syphon
Re: C'è un modo per far vedere una periferica sempre con lo stesso /dev/sdx?
Inviato: venerdì 10 settembre 2010, 13:20
da il_muflone
la domanda che ti andrebbe posta è: perché usi /dev/sdb che è un riferimento per sua natura variabile? usa un riferimento fisso come gli uuid o le etichette
Re: C'è un modo per far vedere una periferica sempre con lo stesso /dev/sdx?
Inviato: venerdì 10 settembre 2010, 13:26
da steff
Una regola udev in /etc/udev/rules.d
Prima devi avere i parametri:
Codice: Seleziona tutto
udevadm info -a -p $(udevadm info -q path -n /dev/sdb)
La regola dovrebbe essere del tipo:
Codice: Seleziona tutto
KERNEL=="sd?1",ENV{ID_MODEL}="TS256MJF2B/2L", SYMLINK+="penna"
ACTION=="add", KERNEL=="sd?1",ENV{ID_MODEL}="TS256MJF2B/2L", RUN+="/bin/mkdir /mnt/penna"
ACTION=="add", KERNEL=="sd?1", ATTRS{vendor}=="JetFlash", RUN+="/bin/mount -t vfat -o sync,flush,uid=1000,gid=100 /dev/penna /mnt/penna"
ACTION=="add", KERNEL=="sd?1", ATTRS{vendor}=="JetFlash", RUN+="/home/utente/bin/script.sh"
ACTION=="remove", KERNEL=="sd?1", ENV{ID_VENDOR}=="JetFlash", RUN+="/bin/umount /mnt/penna"
ACTION=="remove", KERNEL=="sd?1", ENV{ID_VENDOR}=="JetFlash", RUN+="/bin/rmdir /mnt/penna"
come ENV{ID_MODEL} e ATTRS{vendor} ecc metti il valori tuoi, o un altra proprietà, il symlink viene creato in /dev, in questo esempio /dev/penna
Questo esempio crea la cartella in /mnt, monta la penna e esegue anche uno script se infili la penna e la smonta se la sfili, prendilo come spunto.
Re: C'è un modo per far vedere una periferica sempre con lo stesso /dev/sdx?
Inviato: venerdì 10 settembre 2010, 14:07
da Syphon
innanzitutto vi ringrazio entrambi per le vostre risposte..
@MUFLONE..
Ma come faccio a montare le diverse partizioni (che al momento identifico con /dev/sdb1.. sdb3-4-5) attraverso l'uuid o l'etichetta?
@steff
non ho ben capito..
se recupero i dati attraverso il comando udevadm mi basterà impostare "SYMLINK+="sdb"" e ho finito?
A me non interessa l'automounting etc etc.. a quello ci pensa lo script.. ho capito bene?
Re: C'è un modo per far vedere una periferica sempre con lo stesso /dev/sdx?
Inviato: venerdì 10 settembre 2010, 14:59
da steff
Non farei sdb ma un altro nome, hai detto tu che non sempre viene visto come sdb.
Come detto da muflone: se a te interessa di averlo montato in /media/nome-che-vuoi-tu basta dare un etichetta. Se lo monti con uno script (perché?) la regola deve
identificare il device, per Attr vendor, o ID_MODEL quel che ti pare:
Codice: Seleziona tutto
KERNEL=="sd?1",ENV{ID_MODEL}="1234ABCXXXX", SYMLINK+="disco_usb"
da salvare come 15-usb-rules in /etc/udev/rules.d
Questo ti crea un /dev/disco_usb che puoi usare nel tuo script.
Esempio di parametri che puoi usare di una chiavetta mia, di solito ne basta uno:
Codice: Seleziona tutto
ATTRS{manufacturer}=="Sony"
ATTRS{product}=="Storage Media"
ATTRS{serial}=="2A0909290035694"
ATTRS{idVendor}=="1d6b"
ATTRS{idProduct}=="0002"
Re: C'è un modo per far vedere una periferica sempre con lo stesso /dev/sdx?
Inviato: venerdì 10 settembre 2010, 15:15
da il_muflone
innanzitutto trova l'uuid e l'etichetta con sudo blkid
se usi fstab inserirai:
UUID=numerelli /punto/mount filesystem opzioni 0 0
oppure
LABEL=etichetta /punto/mount filesystem opzioni 0 0