Well now I'm really stumped.
I'm trying to get my Pi 4 to boot from a (fairly small, 500Gb) hard disk. I've tried creating the image various ways (dd on Linux, rpi-imager, etc.) and nothing worked.
So I tried creating an image on a USB stick (an 8Gb Kingston one) and that works perfectly OK.
I've compared the contents of the USB stick and the USB drive and they look identical, they both mount without problems on the Pi when it's running from its SD card.
When I try and boot from the USB disk I get the error code for "Kernel image not found".
The only thing I can think may be happening is that the eeprom boot code isn't as 'clever' as the normal disk mounting code in the OS and, thus, for some reason can't mount and read from the USB disk but can mount and read the USB stick.
However I'm a bit stuck now, I don't really want to go and buy another USB disk and find that doesn't work either.