[HTC Desire S] amidabuddha:
E:Can't open /cache/recovery/log
E:Can't open /cache/recovery/log
E:Can't open /cache/recovery/last_log
E:Can't open /cache/recovery/last_log

When you see this message in your recovery do not panic.

Setup adb/fastboot on your computer (there is a simple guide in my signature). Then connect your device to the PC, enter recovery, open cmd (command prompt) on the PC and type:

adb shell
dmesg | grep mmc0

If the output contains the following strings:

mmc0: failed to get card ready
mmc0: reinit card
mmc0: Starting deferred resume
mmc0: Deferred resume failed

Than you internal memory (eMMC) is corrupted i.e. your chip is "fried". This is a hardware issue (reference here) and the chip has to be replaced. Sorry, no other solutions available.

If not - your chip is not fried!

This message results from a destroyed /cache partition - some relevant info here​

Some basic thing has to be done to solve this problem easily:

NEVER PULL THE BATTERY! Better have the patience to wait it to be completely drained

always keep a Backup of your current ROM and/or the Stock ROM, made from Recovery on your SDcard

enable USB Debugging in your Settings -> Applications -> Development and keep it that way

disable Fastboot in Settings -> Power to have total shutdown on power off

after unlocking (S-OFF) your device with Revolutionary flash an Engineering bootloader (e.g. 0.98.2000) to be able to overwrite it when needed

use 4EXT Recovery rather than ClockworkMod it has much better functionality

To restore one of the following has to be done:

restore the Nandroid backup if you have done it

or

restore the cache partition - wipe /cache from the Recovery (preferred - thanks forcefreak). If the size of the partition says <null> (when Printing partition info in 4EXT Recovery) connect your device to a PC, go into adb shell (look the link in my signature for adb setup) and type

mke2fs /dev/block/mmcblk0p27

do not pay attention to the busy partition message, then

reboot recovery

Note that this option will format your cache as ext2 or ext3 type. If you are using ext4 just use the 4EXT Recovery to reformat them as ext4

or

According to craigcharlie's post

selecting the Factory reset option in the HBOOT is also a way to boot to Recovery and then flash a custom ROM or restore a backup

or

if steps 1/ 2/ 3 are not working flash the relevant RUU (the same or higher version than your current and correct region/brand - you can find the available for Desire S here) when your phone is in FASTBOOT USB mode in bootloader (you may need to reinstall the HTC drivers) [credits go to dave303 and the guide in his blog.]

4.1 If you have a 6.98.1000 hboot

Change your hboot with this one

Download PG88IMG.zip, extract it and use Android Flasher to flash the extracted hboot.img

The hboot version now should be 0.98.2000

Search in this thread for the proper RUU and install it.

4.2 If you have a 6.98.1002 hboot

Change your hboot with this one

Download the hboot_0.98.0000.zip and extract it, boot your phone to Recovery, connect to PC, copy the hboot.img file to your SDcard, open command prompt and type:

adb devices [I](your device serial number should be displayed)[/I]
adb shell [I](there should be a command prompt with the # symbol in front if not type "su" without the quotes)[/I]
dd if=/sdcard/hboot.img of=/dev/block/mmcblk0p18[I][/I]

if not working try to unmount/mount the SDcard:

adb devices [I](your device serial number should be displayed)[/I]
adb shell [I](there should be a command prompt with the # symbol in front if not type "su" without the quotes)[/I]
umount /sdcard [I](not a typo the command is umount, not u[B]N[/B]mount)[/I]
mount /sdcard
dd if=/sdcard/hboot.img of=/dev/block/mmcblk0p18[I][/I]

Search in this thread for the proper RUU and install it.

NOTE: If you have a custom ROM and no info about your original software version the solution is as follows:

Connect the device, enter the bootloader and type the following command in the cmd:

fastboot getvar version-main

This is the number of your original software.

If this number is higher than the one of your RUU and you cannot flash it, change the number with the version of your RUU (be careful - use the correct RUU for your brand/region!) with misc_version that can be found here - post #1, link from step 1.

If you have problems with some of the above post in the Desire S General forum or in this thread to receive support. Some cases can be individual but there is always a chance to fix before going for a replacement