A causa dei vincoli imposti dall'uso di Linux di un dev_t di 16 bit con soli 8 bit allocati al numero secondario, i numeri minori dei disci, nastri, CD-ROM e disposisitivi SCSI generici sono assegnati dinamicamente seguendo la seguente procedura:
Per tutti gli adattatori host SCSI, da scsi0 a scsiN
Per tutti gli ID SCSI su questo bus, da 0 a 7, eccetto per questo
adattatore host ID.
Per tutte le unità logiche, da 0 tramite max_scsi_luns:
- Provare la combinazione bus, target, LUN inviando un comando
TEST UNIT READY. Se non c'è possibilità che altre unità siano
qui, non provare altri LUN per questa combinazione bus + SCSI ID
- Inviare un comando INQUIRY per determinare cosa è stato trovato
incluso il tipo di dispositivo, il produttore, il modello, la
revisione del firmware.
- Passare i risultati di ciò a una funzione speciale di ricognizione
per ciascun driver di alto livello presente (cioè dischi, nastri
ecc). Attaccare questo dispositivo alla prossima unità disponibile
per ciascun driver che sia disponibile per gestirlo. Il device
generico si attacca a ogni dispositivo.
- Se si trattava di un SCSI-I, o di un dispositivo appartenente ad
una lista di dispositivi noti per non gestire LUN multipli,
non provare alcun altro LUN su questo bus + SCSI ID.
- Se si tratta di un dispositivo noto per avere LUN multipli, allora
viene forzata una scansione di tutto lo spettro Lun, scavalcando
max_scsi_luns.
Ci sono spesso problemi con questo approccio a causa del fatto che se possedete un sistema dove alcuni dispositivi sono presenti saltuariamente, allora i numeri secondari per un dato dispositivo dipenderanno da quali dispositivi erano presenti al momento del boot. Questo può far insorgere dei problemi, perché gli script rc o il file /etc/fstab potrebbero contenere istruzioni per il montaggio di particolari partizioni che falliscono quando il disco appare con un numero secondario diverso.
Questo problema non è ancora stato del tutto risolto. C'è un programma che può essere trovato su tsx-11 che crea una gerarchia /dev/scsi basata sui numeri host, id e lun. Questo sistema non è perfetto, ma aiuta a risolvere alcuni problemi.
Una soluzione migliore verrà probabilmente fornita dalla pseudo directory /proc/scsi. Questo è attualmente un lavoro in corso, quindi al momento attuale non possiamo descrivere la forma della soluzione, ma al momento in cui scriviamo appare essere un'approccio promettente per la soluzione di alcune delle priorità.