kernel-install: don't erase previous errors if a hook returns 77
The manpage says that exiting 77 is the same as exiting 0,
then skipping all other hooks, but the behaviour heretofor
was to exit 0, skip all, and behave as if all hooks exited 0
(cherry picked from commit 44230fa2)
(cherry picked from commit 954f6ae4)
(cherry picked from commit 68ccbef7)