19.5. Nomi consistenti per dispositivi di memoria di massa

contiene degli script che vi permettono di assegnare dei nomi consistenti per dispositivi di archiviazione come dischi rigidi e altri dispositivi simili. /sbin/udev.get_persistent_device_name.sh è uno script wrapper che invoca innazitutto /sbin/udev.get_unique_hardware_path.sh che rivela il percorso hardware di un dato dispositivo. Inoltre /sbin/udev.get_unique_drive_id.sh richiede il numero di serie. Entrambi gli output vengono passati a udev che genera dei link simbolici verso i nodi di dispositivo sotto /dev. Lo script wrapper può essere utilizzato in modo diretto nelle regole udev. Segue un esempio per dispositivi SCSI, applicabile anche a quelli USB o IDE (da inserire su di un solo rigo):

BUS="scsi", PROGRAM="/sbin/udev.get_persistent_device_name.sh",
NAME="%k" SYMLINK="%c{1+}"

Non appena viene caricato un driver per un dispositivo di memoria di massa, esso si presenta al kernel con tutti i dischi rigidi presenti, ognuno dei quali innescherà un evento hotplug block che invoca udev. udev in un primo tempo legge le regole per determinare se va generato un link simbolico o meno.

Se il driver viene caricato tramite il file initrd gli eventi hotplug andranno persi. Tutte le informazioni vengono comunque salvate in sysfs. Il programma di assistenza udevstart rileva tutti i file di dispositivo sotto /sys/block e /sys/class, e lancia udev.

In aggiunta vi è uno script di avvio boot.udev che genera ex novo tutti i nodi di dispositivo durante la fase di boot. Lo script di avvio va però attivato tramite l'editor dei runlevel di oppure tramite il comando insserv boot.udev.

[Tip]Tip

Vi è tutta una serie di strumenti e programmi che fanno affidamento sul fatto che nel caso di /dev/sda ci si trova di fronte ad un disco rigido SCSI e nel caso di /dev/hda ad un disco IDE. In caso contrario, i programmi non funzionano più. deve fare affidamento su questi strumenti e utilizza per tale ragione esclusivamente i nomi di dispositivo del kernel.