Newsgroup: it.comp.os.linux.iniziare
Titolo: udev e fstab

Ho un disco esterno che monto utilizzando delle regole udev.
Ora, volendo, posso aggiungere una linea in fstab in modo che venga
montato al boot.
Tuttavia, se il disco per qualche motivo non e' presente, il boot si
interrompe e mi viene segnalato l'errore. Faccio control-D e vado
avanti.
C'e' un modo per eseguire un controllo, al boot, in modo da montare un
particolare disco solo se questo e' collegato?

Controlla come sono inseriti i CDROM (in genere hanno l'automount) in 
fstab. Nello stesso modo puoi far montare il disco esterno quando viene 
attaccato. E' strano che si fermi il boot, dovrebbe darti l'errore ma poi 
proseguire tranquillamente, a meno che non sia il fs di root a venir meno.


Su una squeeze il boot si blocca e mi tocca dare un control-D per
farlo ripartire.
Scopro che con udev posso lanciare dei comandi con RUN+=
Magari posso eseguire il check direttamente da li' con uno script?  Ma
come controllo se un drive e' collegato?
Forse mi conviene seguire il tuo consiglio ed agire su fstab

 Forse mi conviene seguire il tuo consiglio ed agire su fstab
 
Dovresti sapere a priori quale device viene assegnato. Sei sei 
ASSOLUTAMENTE SICURO che il device prenderà sda puoi sempre fare uno 
script del tipo:
#!/bin/bash
 
if [ -e /dev/sda ]
then
   echo "TRUE"
else
   echo "FALSE"
fi
 
RUNME non ricordo cosa va a testare, non lo uso in server di produzione, 
dovrebbe testare il codice d'uscita quindi, ad 
echo "TRUE" 
sostituisci
exit 0
 
ed ad
echo "FALSE"
sostituisci
exit 1
 

 
Guarda qui: 
http://cur.lv/60fi
 
Nel link ho trovato la soluzione (un po' macchinosa a dire il vero) per 
gestire la cosa. Risale a Marzo 2010.


grazie per la dritta.
Ho provato fino ad ora ad applicare il metodo ma qualcosa non mi
funziona.
Boot ok, collego drive a caldo, il kernel lo vede, ma non lo monta.
Problema di UUID?
Boh


Tralasciavo il fatto UUID perché lo davo per scontato. Sicuramente gli devi 
dire allo zuccone di mountd, chi deve essere montato e dove quando 
disponibile.
Un problema simile mi si presentò su BSD usando ZFS su un raid USB (8 
dischi) ma... in questo zfs mi venne in aiuto montando tranquillamente ciò 
che rileva, al mountpoint che ritrova nei setting.
 
Dammi notizie perché annoto tutto.

 Dammi notizie perché annoto tutto.
 
Cioe' devo fare altro rispetto alle indistruzioni che mi hai linkato?
L'UUID del disco me lo sono trovato e l'ho dato in pasto alla regola
udev. Il mount point non se lo trova da solo in fstab (che ho
modificato)?
Poi c'e' solo da fare attenzione allo script e quello sembra ok, con
chmod 700.
Mi manco qualcosa?

 Mi manco qualcosa?
 
La regola l'hai messa, i permessi sono quelli che ti servono (700). Il 
mountpoint se lo DEVE trovare per forza in fstab dove dovresti aver 
indicato giustamente l'UUID. Sembra non manchi nulla.
Eventualmente dai un bel dmesg e postalo qui.

 Eventualmente dai un bel dmesg e postalo qui.
 
 
dmesg non restituisce niente di significativo.
La cosa che puo' dare un indizio e' che non arriva ad eseguire lo
script.
Questo infatti contiene dei check, con degli echo che dicono se sta
montando il drive oppure no.
Siccome non vedo output sul terminale, ne deduco che non arriva ad
eseguire lo script.
Ma ho controllato e mi sembra tutto ok (anche se evidentemente c'e' un
problema).

A questo punto è di rigore intestare lo script con:
#!/bin/bash -x
 
Lo mandiamo in debug e vediamo cosa diavolo fa e se viene eseguito almeno 
una volta.
Se inserisci il disco a caldo, funziona?


Se inserisco il disco a caldo non funziona.
Allora lancio a mano lo script (con il flag -x) e mi ritorna
++ basename /etc/scripts/disk_connected
che e' lo script dell'esempio.
Ho fatto altre prove modificando fstab mettendo al posto dell'UUID il
nome assegnato da udev, in cui ho modificato la regola inserendo un
NAME==, ma niente da fare.
Siccome il disagio che mi provoca il lanciare un control-D quando mi
dimentico di attaccare il disco esterno prima del boot e' minore del
disagio che mi provoca il debuggare questo procedimento, lascio
perdere!
grazie mille per la disponibilita'!
 
ho un problema analogo (udev) con un disco scsi esterno che non viene
riconosciuto. Questo disco rimane, a differenza dell'altro, sempre
attaccato, ed uso una regola identica ad una per un drive ide, che
funziona. Tuttavia credo che ci sia un problema di riconoscimento
dell'ID dello SCSI in quando SCSI.
Ma prob comincero' un post nuovo...


Guarda, non so cosa ho fatto... ma funziona.
Boot, non monta il drive. Lo accendo (e' gia' collegato col cavo usb
ma spento), e me lo monta.
Che soddisfazione!
 
ancora grazie!

 ma spento), e me lo monta.
 
Giocando un po', pero', scopro che se il drive e' collegato ed acceso
prima del boot, non viene montato...
Se eseguo lo script a mano dopo il boot, invece, lo monta.

L'unico controllo che mi viene in mente di fare... è controllare i 
permessi  di /etc/scripts/disk_connected ma se funziona a caldo, 
probabilmente il problema è da attribuirsi al fatto che questo benedetto 
script ( /etc/scripts/disk_connected) non è contenuto nel file immagine 
initrd-blablabla.img