Note: This is an archived page. I am keeping it available because people still find it useful - but the contents of this page will likely become gradually out of date.
I never thought it'd happen to me... My computer was functioning just fine. I went into the BIOS to check something or another, and noticed the time was off a bit. So I changed the time, saved the settings, and viola! Suddenly there was "no operating system" on my disk. Somehow, some way, my partition table was gone.
Of course I hadn't backed anything up yet! I'd recently installed Red Hat Linux, and was dual-booting my system between RHL and Windows 98SE. I had seven partitions set up on my laptop, and my first thought was "AAAAAHH!! All my programs! All my data! They're toast!!" But once I calmed down and was able to think clearly, I began to think about how maybe, just MAYBE, I could recover from this.
It certainly wasn't easy, and I spent several hours finding the answers; but in the end I was able to recover my partition table. In the end no data or programs were lost at all. I'm writing this page to consolidate the information I found useful, in the hope that I can make this process a lot less painful for someone else. It might not work for you, but then again it just might save you a lot of grief!
Do not start reinstalling your operating system(s). Once you repartition your disk and begin re-installation, there's no turning back. First, try the steps I'll detail below. They're not guaranteed to work, but they did work for me. You've got very little to lose, and lots to gain! After all, your programs and data are already gone...
Everyone should have a copy of their partition table data ahead of time. This is easy in Linux. Just type "fdisk -l" and it'll spit out a list of your partitions. What you really need to know is the starting and ending cylinder numbers for each partition, along with the partition type/ID. The types are in hexadecimal - #83 is your basic Linux ext2 type, #0b is a Windows FAT32 partition, #82 is a Linux swap partition, and so on. The fdisk utility can generate a list of all the types, but you don't really need to know them all - only the ones you have on your disk. ;-)
Here's a copy of mine:
Disk /dev/hda: 255 heads, 63 sectors, 1467 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/hda1 * 26 254 1839411 b Win95 FAT32 /dev/hda2 1 22 176683+ 84 OS/2 hidden C: drive /dev/hda3 255 257 24097+ 83 Linux /dev/hda4 258 1467 9719325 f Win95 Ext'd (LBA) /dev/hda5 258 1026 6176961 83 Linux /dev/hda6 1027 1067 329301 82 Linux swap /dev/hda7 1068 1467 3212968+ b Win95 FAT32 Partition table entries are not in disk order
With this information, rebuilding your partition table is a piece of cake. All you need is fdisk, Partition Magic, or something similar.
Um... No. Note that the previous section referred to an intelligent person.
First things first. This whole process is based on the assumption that your problems don't stem from a damaged hard drive. If your disk is damaged this procedure is not likely to work. Also, you are the best judge of your own comfort level when it comes to computers. You don't need to be a Unix Guru, but I assume you have a basic understanding of using system commands and utilities (and can read man pages if you don't understand something).
If you're a Windows-only user, you might have an easier time of it. Just use your Windows boot disk, and have MBRwork handy. It works well, but only on Windows-type partitions. This was the first thing I tried. It correctly found my FAT32 partitions, but of course couldn't define the others in between.
For the rest of you: Take a deep breath and try to relax. I assume you're at a different, and functional, computer - follow this link to get a copy of GNU Parted. This program basically is a freeware work-alike to Partition Magic. They even have a bootable floppy disk image available! I didn't find out about Parted until after the fact, but now it's one tool I always keep handy. Note that the fdisk utility can be used instead of parted.
Of course, Parted isn't going to tell you where your partition boundaries used to be. For that you need the tool gpart. Gpart attempts to guess your partition boundaries and types by scanning your hard disk. It's not perfect - in its initial pass of my disk it got the correct types and settings, but its final report mysteriously left out a couple partitions and tried to tell me the extended partition started a partition earlier than was the case. So you really need to have some basic knowledge of your disk layout. It's also important to remember that partitions should always end on a cylinder boundary. When "creating" your new partitions, Parted will catch this if you make a mistake; but fdisk will not.
If you didn't grab the Parted boot floppy, you're going to need is a stand-alone system on a disk. I snagged a set of Slackware floppies from a co-worker, but most Linux distributions can also generate these. Note that your Linux rescue disks do not qualify - those generally boot and then mount the existing partition(s) on your hard drive.
The actual procedure is quite simple, but it's still nerve-wracking because of the importance of what you're doing. You boot using the floppy, then run gpart. Based on that information write down, on paper, the way your partition table should look. Finally run fdisk (or parted) to rebuild your partition table. I ended up using fdisk because I was more familiar with it. Either way, just set up the partitions one by one, using the info you gained from gpart (tempered by your previous knowledge of the disk's layout). Once you've got it all set up, just tell fdisk to write the new partition table. That's it!
If you're lucky, your system should now boot. Linux users may have to boot with their rescue disks and run LILO beforehand. I will tell you that, once I saw all my data and drives were back, I felt like I'd dodged a bullet!
You can actually try this procedure again if necessary; for example, if some of the information from gpart was ambiguous there might be a couple different possible disk layouts. But after two or three tries you're probably out of luck.
[Back to Trav's main page]
All contents © 2001 Travis Saling
Document last modified on 05/10/2001