Are you certain that you entered "sudo /sbin/fdisk -l /dev/sdb". Your posted results look like you entered "sudo /sbin/fdisk -l /dev/sdb1" instead.
If "sudo /sbin/fdisk -l /dev/sdb" works, also look at "sudo /sbin/fdisk -lu /dev/sdb" as well. Guessing correctly where a partition starts, it is possible to use losetup to create a loop device, which is attached to /dev/sdb at the correct offset. Then if the filesystem is OK, you can still mount the first partition, even though the partition table is trashed.
You can almost bet the farm that the first partition starts on block 63. So, it the partition table is trashed but the first partition is OK, you can do this to mount it:
Code:
# Attach loop device to /dev/sdb. Will return which loop device was used. This example assumes /dev/loop0.
sudo /sbin/losetup -fs /dev/sdb -o $((63*512))
#create a directory for the mount point (or use an existing one)
sudo mkdir /mnt/rescu
# mount the filesystem on /dev/loop0
sudo mount -t ntfs-3g /dev/loop0 /mnt/rescu
You can also use this method to mount a partition found on an image file.
Once mounted, backup the files you want to save. After that, use fdisk to recreate the correct partition table. Use the "-u" option with fdisk so that you don't get rounding down errors. This can cause problems on the first partition or for partitions that aren't on cylinder boundaries.