I thought I had posted this previously, but if your power button is hosed and you need to recover the iPhone, there is a very good utility called RecBoot. In my experience, it has only worked on Windows XP. The LibUSB program hosed my Win7 install, and I hadn't tried it on Linux yet. To run, download RecBoot and place the itunesmobiledevice.dll from here into the same folder as RecBoot. If the first run of RecBoot doesn't succeed, you may need libusb-win32-filter. THIS WILL REPLACE YOUR USB DRIVERS, BE VERY, VERY CAUTIOUS. I recommend making a restore point or backing up your OS before doing so. The LibUSB drivers killed all USB devices on my Win7 machine. RecBoot itself is a very simple program to run. Either you put the iPhone into recovery mode, or out of recovery mode. The hardest part is getting the files together in one location or getting LibUSB working. Once your phone is in recovery mode you can do a restore, or once it's out of recovery mode use the phone. Have fun!