I found an issue in alpine linux when testing zfs with incus on alpine. I would like to try and fix it, but I don’t know enough about zfs issues to really dig into it.
I’m hoping that maybe an expert like @stgraber or somebody could shed some light on what may be happening here and what I could try to look into. Whatever the issue is, it seems alpine-specific.
stgraber@dakara:~$ find /lib/udev/ | grep -i zv
/lib/udev/zvol_id
/lib/udev/rules.d/60-zvol.rules
stgraber@dakara:~$ cat /lib/udev/rules.d/60-zvol.rules
# Persistent links for zvol
#
# persistent disk links: /dev/zvol/dataset_name
#
# NOTE: We used to also create an additional tree of zvol symlinks located at
# /dev/dataset_name (i.e. without the 'zvol' path component) for
# compatibility reasons. These are no longer created anymore, and should
# not be relied upon.
#
KERNEL=="zd*", SUBSYSTEM=="block", ACTION=="add|change", PROGRAM=="/lib/udev/zvol_id $devnode", SYMLINK+="zvol/%c"
stgraber@dakara:~$
This effectively reacts to a new /dev/zd* device showing up, runs zvol_id on it and creates the expected /dev/zvol/XYZ symlink which Incus then uses.
If your system doesn’t use udevd, then you’d need whatever handles dynamic devices on your system to perform the equivalent action.