Originally Posted By: Archeon
I suppose one needs to do this from a Linux PC Mark? Or can this be done from Windows as well?


It is easiest when done from a Linux box, because Linux requires no special drivers to talk to a phone. Windows DOES often require special drivers for this to work. But lots of people manage it, so it can't be too bad of an ordeal. smile

Originally Posted By: Archeon
if I had the choice, I would like to install Cyanogenmod on it. I'm guessing I need to root the phone before I can do that?


No, installing a sudo (aka. "root") app is not needed to do that. But unlocking the bootloader is required if you want to install any system software (eg. Cyanogenmod) that isn't signed by Google as an update for the original system.

Android phones have two bootable partitions in flash: the primary "boot" partition is for the main operating system, and the "recovery" partition provides a stripped down mini-system for installing updates or wiping the phone back to factory status.

After unlocking the bootloader, install a TeamWin Recovery Partition image ("TWRP") to replace the limited functionality of the stock recovery image. TWRP can then be used to create an exact/complete "nandroid" backup of the phone. It can also be used to install other distributions (aka. "ROMs") in place of the original ROM.

Titanium Backup can do similar (but not quite the same) backups, but is more useful at the "app" level, where it can maintain multiple generations of app updates/data, and allow reverting back to older/newer copies at will.

Perhaps the very best thing to do with an unlocked bootloader, is to install MultiROM, which is basically a special second stage bootloader that prompts with a list of installed ROMs to boot from. I use this here to clone my primary system before installing newer updates. If the updates mess anything up, I can just reboot back in the original unmodified copy instead. Or switch back and forth at boot time between different ROMs (eg. stock versus Cyanogenmod versus better versions of cyanogenmod).

Cheers