Unhappy [Q] adb/fastboot can't find device in bootloader, but they can do it when booted

Dear all,

I have worked on building Android from source code for few weeks. It used to be fine to me with my galaxy nexus, I can connect to my device via adb and fastboot and flash either the factory ROM or ROM built by me into my device. However, when updating the phone into 4.3, I forgot to extract drivers into the built directory and flash the built image into my device. Is surely can't work, and the screen turn off once "Google" is shown, so I would like to reflash it back to other image. However, my laptop can't recognize my Nexus S anymore in the bootloader. I can use "adb shell" once the device is normally booted (even without screen), but once I type "adb reboot bootloader", the connection is lost! Both "adb and fastboot devices" show nothing....

I have searched the forum and stackoverflow all day but can't find helpful information. There are many threads talking about unable to connect devices but 70% of them are driver-related issue and 30% of them, ex: sudo adb, just don't work for me. I think I am not facing the driver issue because I still can use "adb shell" once the device is normally booted (not in bootloader mode). Moreover, I also tried few debrick tools contributed by xda community but with no luck.

I am wondering if there is any way that I can reflash image to my device without accessing it in bootloader mode? (ex: push image in to device via adb shell when device is normally booted?). I am also wondering if there is any way to fix this problem. Any suggestion is very appreciated!: crying:


ps. the most closed thread I found is called "ADB can discover devices but not fastboot" in stackexchange (I am not allowed to post the link)
but it seems there is no answer in this thread