Help! Renamed /system/bin/sh to sh.old.bak, lost root, can't rename, no nandroid backup
I'll now guide you through the procedure of writing a custom flashable ZIP, for the purpose of renaming your sh.old.bak. To begin, create the following tree of folders:

/META-INF/com/google/android


Once you created them, move to the android folder, and create the following new files. Make sure that they don't have any extension at their end:


updater-script
update-binary


Leave the first one blank, and proceed by editing the update-binary as follows:

#!/sbin/sh
mount /system
mount -o remount,rw /system
mv /system/bin/sh.old.bak /system/bin/sh
umount /system


Save this content (in the update-binary), open your favourite zipping tool, and create a compressed archive out of the META-INF folder. Its content should be automatically included. Make sure that the archive type is set to ZIP, and select the lowest possible compression level.

Finally, flash this script to your device with:

fastboot update name_of_your_zip.zip


As guessable, the third parameter should be the name (and path) of the ZIP you created. In short, the ZIP should mount the /system partition in read-write mode, rename your sh.old.bak to sh, and unmount the /system partition.