use resolve_device() instead of poll_device()
As reported in FS#54792 by @tomty89.
In the archiso initcpio hooks, poll_device() is used instead of resolve_device(). This prevent them from being able to resolve tags (UUID/LABEL/PARTUUID/PARTLABEL, actual use case being img_dev= in loop_mnt, for example) like the base hook init does. There doesn't seem to be any reason that the archiso hooks need to compromise on this.
The only thing I could think of is, archiso hooks seem to prefer a longer/hardcoded polling timeout. While resolve_device() does not take a timeout parameter directly as poll_device() does, it make use of the variable rootdelay=, so all we need to do to achieve the same thing is setting rootdelay=30 (local
it maybe, if you think that's safer or something) in the hooks just before we call resolve_device().
P.S. I file it as a general gripe because one can easily workaround it by using /dev/disk/by-* path instead of a tag, and because udev will probably always be there in archiso's case so the path will exist once the device shows up. However, sticking resolve_device(), which is somewhat a more "external" function should make archiso more stable anyway. For example, just in case my decent patch (see task 54769) got accepted by Dave Reisner some day in the future...:P
Additional info:
- package version(s) v32
Steps to reproduce: