[General Questions and Answers] h-kornfeld:
This is my first post to XDA forums. It's gotten to be rather long, so I won't be offended if you only read part of it. :D

I succesfully rooted my phone, but before that I was trying to back up my data before rooting, using twistedumbrella's

Easy pre-root backup with adb

at http://xdaforums.com/showthread.php?t=1193901. I used dd to copy the /data mount point:

adb shell dd if=/dev/block/mmcblk0p26 of=/sdcard/data.img
​

After rooting, I tried copying data.img back to /data, but got some errors:

dd if=data.img of=/dev/block/mmcblk0p26

/dev/block/mmcblk0p26: write error: No space left on device

5496833+0 records in

5496832+0 records out == what was transferred

2,814,377,984 bytes transferred in 1104.470 secs (2548170 bytes/sec)
​

Now, data.img has size 2,820,888,314 bytes (according to ls -l), so that explains why there was a write error. The question is, why did the /dev/block/mmcblk0p26 device change size after rooting?

To make things weirder, running df gives:

/data: 2734896K total, 149424K used, 2585472K available (block size 4096)

​

This corresponds to 2,800,533,504 bytes, which is different from what dd reported as being copied over. Arghh! Now I'm confused! :mad:

Does it have anything to do with the method I used to root? I used a combination of the instructions at http://www.androidpolice.com/2011/03/19/exclusive-how-to-root-the-htc-thunderbolt-and-unlock-its-bootloader/, and the

Windows One Click Root Method (3/26/11)

at http://xdaforums.com/showthread.php?t=1009969. By the way, both of those instructions have steps missing, and need to be merged.

Anyway, I recovered by re-flashing the PG05IMG_stock.zip ROM used by the root method, and reentering all my settings (quite a pain). After spending some time customizing the phone, I decided to try out one of the many custom ROMs. I started with Liquid GingerSense 1.5, and tried the same method of backing up my data as above, just to see if it would work.

dd if=/dev/block/mmcblk0p26 of=/sdcard/preliquid.img bs=512

5496832+0 records in

5496832+0 records out

2,814,377,984 bytes transferred in 633.282 secs (4444114 bytes/sec)
​

Great, the number of bytes match the number of bytes which were transferred in the last attempt, but df shows a totally different size for /data: :confused:

/data: 2705192K total, 353132K used, 2352060K available (block size 4096)
​

At this point, I decided not to bother with this method, and instead used a combination of Titanium Backup and My Backup Root. I would love for someone to explain why this method doesn't work. I tried looking up info on the layout of Android's file system, but nothing came up. I don't even know what exactly is in the /data partition.

The other topic of my post is how to reliably restore data and settings from an already rooted phone, after flashing a new ROM. Everybody says Titanium Backup is the most reliable, but I've had lots of problems with it. I'm not sure what exactly gets restored with the "restore all system data" batch job, but I would expect all my customizations, settings and home screen layout to be restored. I tried this when switching from Liquid GingerSense to SynergyROM, but no dice. There were other problems, most annoying of which was gapps constantly crashing.

I read that restoring system data across incompatible ROMs is dangerous, but Titanium Pro has the Migrate system data option. So I reverted to my backed up Liquid ROM and tried again. This didn't work that well either.

I also tried MyBackup Pro. It has the option to restore System Settings. I assumed this meant all the settings I cared about, but I was wrong. After reconfiguring all my apps and preferences, I decided to give up on flashing new ROMs.

If someone has a foolproof way to backup and restore apps (with their settings) and all system settings, I'd like to hear about it.

I realize this is a long post, but I felt I had to vent. My first Android experience has been very frustrating. I'm even thinking of switching back to the iphone 4s. (Imagining gasps from all the Android purists ;) )

hdog