While experimenting with how to fix this, I came across a suggestion to wipe the MBR, so I did.
dd if=/dev/zero of=/dev/sdb bsize=512 count=1
Whoops. No partition table.
Yes, I have backups, but I’d still like those partitions back. What should I do? There are a few proprietary products which claim to magically fix partitions and recover data, but I don't trust them. Can I restore the partitions with ordinary Linux/Windows commands?
EDIT: Given that the first partition is exactly 4MB (special boot partition) can I safely determine where the next partition starts, at least, and work from there?