I found this technique listed in many places which shows you how to use a common Linux tool "dd" to dump the raw partition of your iPhone.
I give credit to this site for showing me the correct way to dd from the iPhone, I never thought to try it in the other direction: http://log.ijulien.com/post/182804914/iphone-3gs-data-recovery
1.) Jailbreak your phone
2.) Install OpenSSH on your phone
*WARNING - make sure that you don't mix up the if= and of= commands, if you make that mistake your iphone will either be bricked and you will lose data for sure.
1.) From your computer (from the shell/terminal) run this command (*Note you must run it from your computer and not your iPhone, otherwise it won't work):
ssh root@youriphoneipaddress dd if=/dev/rdisk0s2s1 bs=1M | dd of=iphonebackup.img
This command is posted all over but doesn't work:
dd bs=4096 if=/dev/disk0s2s1 | ssh email@example.com ‘dd of=iphonebackup.img'
/bin/dd: opening `/dev/disk0s2s1’: Resource busy
2.) Recover with testdisk/photorec
Just point photorec to the image, and it will ask you a few questions and do the rest.
I was able to recover a lot of things but some .mov files don't play, I believe they may be alright but I need to find a way to fix the header (the header seems to be missing so they won't work).
iphone, gs, undelete, videos, datarecoveryi, technique, listed, linux, quot, dd, partition, http, ijulien, requirements, jailbreak, install, openssh, commands, bricked, shell, terminal, ssh, youriphoneipaddress, dev, rdisk, bs, iphonebackup, img, doesn, disk, user, lsquo, bin, rsquo, resource, testdisk, photorec, mov, header,