Recently, one of my client's computer (Ubuntu 10.10) refused to boot. Instead of booting the operating system it fell down to grub rescue prompt. This indicated that grub could not find its configuration file and it meant the partition table was corrupted :(.
Fortunately, I finally succeeded repairing the system. What I learned from this experience is that ext file system is such a wonderful system which enabling partition recovery.
These are steps I took, unfortunately there were no screenshots (forgot to take):
Fortunately, I finally succeeded repairing the system. What I learned from this experience is that ext file system is such a wonderful system which enabling partition recovery.
These are steps I took, unfortunately there were no screenshots (forgot to take):
- Boot with Ubuntu live CD. The booting seemed took time forever because it tried to access the broken partition, but eventually the live session was up.
- Open terminal, became root and checked whether the partition was still there.
#fdisk -l
Fortunately, fdisk still list the hard disk partition. - Try to repair with e2fsck.
#e2fsck -C 0 -v /dev/sda1
-C 0: means the completion information will be written in file descriptor 0 which is our console.
-v: verbose
Unfortunately, this step failed. - After some googling research, I knew that ext file system save its meta data structure in what is called "Superblock" and fortunately ext file system have several Superblocks, so if one superblock is failed we can recover from the other superblock. Now, my problem was find a way to query the superblocks. A way to query the superblock is with dumpe2fs
# dumpe2fs /dev/sda1 | grep -i superblock
Unfortunately, this step also failed. dumpe2fs could not read partition /dev/sda1 - Next step, I tried testdisk. You can read how to use testdisk here: http://www.howtogeek.com/howto/15761/recover-data-like-a-forensics-expert-using-an-ubuntu-live-cd/. Unfortunately, when testdisk "Analyze" function also failed to recover the partition. Its automatic search algorithm report that what it found were ntfs partitions which obviously wrong :)
- I then explored testdisk Advanced menu (File system utils). I found there was a facility to locate the superblock backups. I run this menu and fortunately it found all the superblock backups. Testdisk wrote all the findings in testdisk.log file so we didn't have to take the note manually.
- Quit running e2fsck again but this time with -b (use alternative superblock) option.
#e2fsck -b nnn-C 0 -v -p -y /dev/sda1
replace nnn withone of the superblock backup found by testdisk in the above step. Look in testdisk.log
This time e2fsck succeeded repairing the partition. I rebooted the computer, took out the live cd and the computer came to life again.
Comments
Post a Comment