If the governing principle is to adhere to the default Linux & Debian paths (where reasonable), then the child scripts (hv_*.sh) should live there in Ubuntu. I.e. this is a packaging error that should be fixed in Ubuntu's debian/rules.d/3-binary-indep.mk.
The default install location (in torvalds/linux) for the 3 hv_*_daemon binaries is /usr/sbin, but the hv_*.sh scripts install into /usr/libexec/hyperkvpd. For Debian, the hv_*_daemon binaries are in their hyperv-daemons package and install in /usr/sbin, but it seems that they have a long standing bug (#919350) where they don't provide any of the /usr/libexec/hyperkvpd scripts.
I've done a little more digging. The use of /usr/libexec/ hypervkvpd for the child scripts comes from upstream.
https:/ /github. com/torvalds/ linux/blob/ master/ tools/hv/ Makefile /github. com/torvalds/ linux/blob/ master/ tools/hv/ hv_kvp_ daemon. c
https:/
If the governing principle is to adhere to the default Linux & Debian paths (where reasonable), then the child scripts (hv_*.sh) should live there in Ubuntu. I.e. this is a packaging error that should be fixed in Ubuntu's debian/ rules.d/ 3-binary- indep.mk.
The default install location (in torvalds/linux) for the 3 hv_*_daemon binaries is /usr/sbin, but the hv_*.sh scripts install into /usr/libexec/ hyperkvpd. For Debian, the hv_*_daemon binaries are in their hyperv-daemons package and install in /usr/sbin, but it seems that they have a long standing bug (#919350) where they don't provide any of the /usr/libexec/ hyperkvpd scripts.