EDIT: I think the question is more confusing than helpful. I leave it up simply because something else has been closed as a duplicate to this. My problem was finally solved by flashing a completely fresh stock android.
With my Galaxy S i9000 (galaxysmtd), I can only access download and recovery mode after flashing some recovery kernel via odin. The latter was done to escape the boot loop that my installed cyanogenmod 9 was stuck in.
Installing the cyanogenmod cm-9.1.0-galaxysmtd.zip from the sdcard from within the recovery mode gives me an error 7. This is supposedly because the recovery kernel I flashed was unfit.
My idea now is to flash only the kernel of the cyanogenmod-9.1.0-galaxysmtd as an odin-pda file, boot into recovery again and to then install the full ROM that is still on my sdcard, which should be possible then.
Because I can't boot the phone normally, I don't know how to put anything on the sdcard manually and have to use odin.
I have been reading though a lot of threads now, but the nomenclature seems to be used in such an inconsistent way that googling the right thing is almost impossible. I hope I expressed myself in sufficient clarity.
recovery.log
file in within the recovery partition, it will clue you in on the exact reason!adb pull recovery.log
from that and that should give you the answer you're looking for. The OP in the question of that linky I enclosed was confused about his scenario... this will shed some light into understanding why the error 7 occurred.