Alle device nodes onder /dev zouden in het search path moeten zijn; ook device nodes die van te voren niet zijn te voorspellen. Dus niet hardcoded /dev/by-partlabel in je code, maar dynamisch alle device nodes afscannen zoals bij BSD gebeurt. BSD herkent ook prima een encrypted node met .eli suffix bijvoorbeeld. Hardcoded erin prutsen lijkt mij maar 'hackerig' en niet een elegante oplossing zoals onder BSD werkt.
Als je dingen wilt veranderen voor ZoL, lijkt mij dat de manier hoe BSD werkt met device nodes en device tasting wel een inspiratie kan zijn.
Als je met custom disk labels zou werken, zou het dus wel werken. Maar we werken nou eenmaal allemaal graag met partities.
Nou al zou de disk/partitie label niet gevonden worden, dan kan hij toch terugvallen op de device node? /dev/sda1 bijvoorbeeld? De eerste partitie op de eerste disk, dus. Dat moet toch *altijd* werken als er geen enkele disk ID of partitie ID of partitie label device node wordt gevonden?
Mijn voorkeur zou hebben:
1) eerst scannen naar partitie LABELs, omdat die door de gebruiker zijn gekozen wat beter is dan een door de machine gegenereerde ID.
2) dan de GPT ID zodat nog steeds naar een partitie wordt verwezen en niet expliciet naar een fysieke schijf
3) dan de Disk/Device ID, zodat je wel naar een fysieke schijf verwijst maar deze prima kan wisselen qua kabel omdat dit de ID niet doet veranderen
4) als laatste, fallback naar de ruwe device node, dus /dev/sda1 bijvoorbeeld.