SUSE LINUX incorpora varios scripts que le permiten asignar siempre los
mismos nombres de dispositivo a discos duros y otros dispositivos de
almacenamiento independientemente del orden en que se inicien. Por ejemplo, el
script de envoltorio (wrapper-script)
/sbin/udev.get_persistent_device_name.sh activa primero a
/sbin/udev.get_unique_hardware_path.sh, que se encarga de
averiguar la ruta a un dispositivo determinado.
/sbin/udev.get_unique_drive_id.sh consulta el número de
serie. udev recibe el resultado de ambos comandos y crea
enlaces simbólicos al nodo de dispositivo en /dev. Es
posible utilizar el wrapper-script directamente dentro de las reglas udev.
Abajo figura un ejemplo para SCSI que también puede utilizarse en USB e IDE
(todo debe introducirse en una sola línea):
BUS="scsi",
PROGRAM="/sbin/udev.get_persistent_device_name.sh",
NAME="%k" SYMLINK="%c{1+}"
Cuando se carga un controlador para un dispositivo de almacenamiento, registra todos los discos duros existentes con el kernel. Cada disco genera un evento de hotplug que activa udev. udev lee primero la reglas para averiguar si se debe crear un enlace simbólico.
Los eventos hotplug se pierden si el controlador se carga a través de
initrd. Sin embargo, toda la información relevante
queda guardada en sysfs. La herramienta
udevstart encuentra todos los archivos de dispositivo
en /sys/block y /sys/class antes
de iniciar udev.
Existe un script de inicio adicional llamado boot.udev.
Durante el arranque, este script se encarga de crear de nuevo todos los
nodos de dispositivo. Es preciso activar el script utilizando el editor de
niveles de ejecución de YaST o por medio del comando insserv
boot.udev.