Since your computer is still on, you have a good chance of saving things.
sysfs exposes the kernel's in memory view of partition tables. Right now, your kernel has not reread the disk's table and it remembers your partitioning. Inside
/sys/block/sda/, there should be one directory for each partition. Each such subdirectory contains a file
start and a file
size, which represent the partition's location and size, in sectors. Run
fdisk and then recreate each partition (in order!) with the information in its
sysfs directory. Note that you will have to create a new partition table, too. Make sure your new partition table is the same as the one before. You can check this in
/sys/block/sda. If you see
sda1 up to
sda7 while you only have 6 partitions, you likely had MBR, and otherwise it was probably GPT. You also need to set flags and types for these partitions. Look at
/etc/fstab and try to glean information about the types of partitions you have, then check Wikipedia to convert those to codes for your partitioning scheme.
Since you appear to be able to use your filesystem, it's likely that your
dd did not get to overwrite any of it, since most of the important bits of a filesystem are at the front. Check
/etc/fstab to see which partitions correspond to what part of your system, and then use the amount of data
dd copied to get an estimate of how much you nuked. If you overwrote only part of a filesystem a good
fsck might be able to fix it a bit (but you've lost a good chunk of data).
Most likely, you overwrote
/boot. You'll have to reinstall your kernel (with
aptitude) and reinstall GRUB2 (with
grub-install) (which got both its first and second stage destroyed). GRUB2 is configured with files in
/etc, so you won't have to manually recreate anything.