How To Recover

From WebOS Internals
Revision as of 10:51, 23 July 2011 by IDG (talk | contribs) (Changed the method to enter USB recovery mode to a more reliable version.)
Jump to navigation Jump to search

Pre not booting? webOS Doctor How-To



If you're running Windows, the java executable is probably not within the PATH environment variable. This means you need to first navigate to your java installation folder before running the webOS Doctor. On most systems it will be something like this:

  1. cd "c:\Program Files (x86)\Java\jre6\bin"
  2. java -jar <path to doctor-file>

Fortunately, Palm has created a tool called webOS Doctor intended for users to easily restore their devices in the event that they cannot boot for one reason or another.

Note: Before Trying the following steps below. Try removing the battery first and reinsert the battery and turn on the device this will determine whether or not you need to perform the following steps.

Note 2: As of WebOS 1.3.1 your USB data (Pictures, Videos, etc.) is no longer deleted during the process. Older versions of WebOS Doctor WILL DELETE ALL YOUR PERSONAL DATA ON THE DEVICE.

Palm webOS Doctor:

All Palm WebOS Doctor Versions:

After the download is complete, launch webOS Doctor:

  1. Select you language
  2. Accept the license agreement
  3. Connect your Pre to you PC via USB and select "Next" when it becomes available

After completion the device will reboot and present you with the activation set-up.

If your PC does not recognize your Pre and you cannot go past step 3 above, try the following steps:

  1. Disconnect the USB cable
  2. Completely power off the Pre (hold down the power button until the option to power off appears)
  3. Remove the battery
  4. Connect the USB cable and wait for the battery image to appear on the screen (or wait around 10-15 seconds)
  5. Hold down the Up button on the volume rocker
  6. While holding the Up button, insert the battery. The USB logo will appear on the screen
  7. "Next" should now be enabled - proceed with the recovery

The above steps will put the Pre into bootloader recovery mode and should allow the PC to recognize your device and proceed with the restore. In this mode the screen will display a giant USB logo instead of the usual Palm startup logo.

It may be necessary to manually start novacom in OSX 10.6. To do this search (Apple-space) for "novacomd" and run the "start-novacomd" executable. Your phone should now be detected and the "next" step will be available.

The process usually proceeds as follows:

(If you're on a Mac, you can follow the progress in /var/log/system.log, on a PC the log is in your personal temporary files area)

  1. WebOS Doctor begins
  2. At 3%, a ramdisk is transferred to the phone, and the phone is rebooted
  3. At 4%, the screen changes to the palm logo
  4. At 9%, the screen changes to a big arrow pointing down to an integrated circuit
  5. Novaterm access is available from 12% onwards
  6. The progress bar advances by 2% increments every 20 seconds or so
  7. If it gets stuck at 52% for more than 30 seconds, it's not going to progress further and you will need to try again.
  8. Around 54% the filesystems are being partitioned
  9. Around 64% the modem firmware is being reflashed
  10. Around 72% the carrier apps are being installed
  11. Around 82% the ROM is being verified

If the process fails at 84% or later, the flash and modem have actually been written, so if you reboot you will get what you were flashing.

Doctor disconnects at 8%

If the webOS Doctor continually disconnects at 8%, then you probably have a corrupted USB drive. This is how you can fix that (note that this will completely and utterly destroy all data on the USB drive).

If you are reading this following an interrupted webOS Doctor, you might want to try to extract the installer uImage from the version that was there before the interrupted procedure. For example if you were upgrading from webOS 2.0.0 to webOS 2.1.0, you might want to try the uImage from the 2.0.0 webOS Doctor jar.

First put the device into recovery mode, then memboot the device using the installer uImage (extracted from your webOS Doctor jar):

novacom boot mem:// < nova-installer-image-castle.uImage 

After it boots, run novaterm:


Once connected to the device, type:

lvm.static vgscan --ignorelockingfailure
lvm.static vgchange -ay --ignorelockingfailure

then type:

mkdosfs -f 1 -s 64 /dev/store/media

Once that completes, put the device back into recovery mode and run the webOS Doctor.

Modifications to the recovery process

Between about 18% and 54% complete, you can novaterm into the device while it is being flashed, and modify the filesystem that will be run after the phone reboots (e.g. to touch /var/luna/preferences/ran-first-use).

If you stay in a mounted directory, you can even cause the flashing to abort after the carrier apps are installed and just before the ROM is verified. This is another point where manual modifications can be made.

After you have made your modifications, unmount any filesystems you have mounted and "tellbootie reboot".

Can't boot into recovery mode?

In the very unlikely event that your Pre will not boot into recovery mode (indicating that your boot loader on the flash disk may be damaged or corrupted) you can try booting bootie into recovery mode over USB instead: Last_Resort_Emergency_BootLoader_Recovery Note that there has only been one incidence of this being required which ultimately was due to hardware failure, we do not recommend that you attempt this unless you have tried all the steps above exactly as described at least 10 times.

Short of hardware damage, it should not be possible to "brick" a Pre.

DANGER - The Veer definitely is brickable.


The Doctor's "Next" button is grayed out!

That is, when you're asked to plug in your device, you have plugged it in, and nothing happens. If you have a terminal window open, you may see a message similar to the following repeating indefinitely:

Jun 7, 2011 9:33:48 AM com.palm.nova.installer.recoverytool.runner.DeviceDiscoveryRunner$DeviceDiscoveryThread run
INFO: got controller
Jun 7, 2011 9:33:48 AM com.palm.nova.installer.recoverytool.runner.DeviceDiscoveryRunner$DeviceDiscoveryThread run
INFO: got devices 0
Jun 7, 2011 9:33:49 AM com.palm.nova.installer.recoverytool.runner.DeviceDiscoveryRunner$DeviceDiscoveryThread run
INFO: got controller
Jun 7, 2011 9:33:49 AM com.palm.nova.installer.recoverytool.runner.DeviceDiscoveryRunner$DeviceDiscoveryThread run
INFO: got devices 0

The first thing to try is simply unplugging the USB cable from your device, and then plugging it back in again. Often this will cause the device to be detected and all will be well. If that does not work, do the following:


  • Right-Click "My Computer", choose "Manage".
  • Click "Services", then on the right find "Novacom".
  • Stop the service, then start it
  • Try The Doctor again


  • Open a shell, type "ps -e | grep novacom"
  • If nothing comes back, then it's not running.
  • "/etc/init.d/novacomd start"


  • Open
  • "sudo /opt/nova/bin/stop-novacomd"
  • "sudo /opt/nova/bin/start-novacomd"
  • Leave running while flashing the device

Note, older version of the SDK put novacomd in a different location and you would use this command: "sudo /opt/palm/nova/novacomd"

Attempting to install Novacom fails!

OSX 10.6 and Higher

This is due to a recent change in the way that launchctl handles LaunchDaemons, something that Novacomd is part of

  • Exit out of the Novacom installer, but do not exit the webOS Doctor itself
  • Find /Library/LaunchDaemons/
  • Rename com.palm.novacomd to com.palm.novacomd.plist
  • Open
  • "launchctl unload -w /Library/LaunchDaemons/com.palm.novacomd" (This should return that it was unable to unload. That is to be expected!)
  • "sudo launchctl load -w /Library/LaunchDaemons/com.palm.novacomd.plist"
  • You should be able to continue with the doctoring and will no longer need to manually run Novacomd