Was the kernel able to correctly read the partition table at boot or after running blockdev --rereadpt? If fdisk and the kernel are both happy with it then it may just be a bug in parted.
Paul Ausbeck writes: > When I posted the original problem I was sort of hoping to get some recovery > advice. However, I've now recovered the partition table and I'm now posting > just to further document my experience. I'm now thinking that the bug I > encountered is likely in the fdisk program, but I still think that > parted/partprobe could be improved to better handle loops in the partition > table. > > To recover, I booted the system from a USB stick. At this point the disk > partition table was still hosed and there were 255 associated devices, sda1 - > sda255 in /dev. parted would still not print the hosed partition table, but > bailed out as described previously. However, fdisk would print the table, but > somehow saw only, I can't remember exactly, maybe 45 or 54 partitions. On a > lark, I used fdisk to delete the extra partitions and wrote the edited table. > Upon reboot, the disk was whole again with the correct/expected partition > table in disk order. Go figure. > > Cheers, Paul Ausbeck