[SLL] I can't find the start of my ext3 FS

Jay Scherrer jay at scherrer.com
Fri Nov 30 19:26:36 PST 2007


A rookie way,
Just re-install linux using custom partitioning and disk druid. But 
don't format the section to be saved.
Jay Scherrer

Darius Medhora wrote:
> Hi,
> I have a situation where my 50G partition just refuses to mount or fsck.
> I really don't want to loose the files on it so let me start by explaining
> what happened.
> I wiped out the first 512 bytes of the disk by mistake and therefore I 
> lost the partition table of my disk.
> I ran testdisk from knoppix to recreate the partitions however, testdisk
> could not recreate 1 of them. This is the partition thats giving me 
> problems. Can any one give me any solution to this please? Details of
> disk follow:-
>
> The partition I cannot mount or fsck is /dev/sda12
>
> bash-3.00# fdisk -ls /dev/sda
>
> Disk /dev/sda: 122.9 GB, 122942324736 bytes
> 16 heads, 63 sectors/track, 238216 cylinders
> Units = cylinders of 1008 * 512 = 516096 bytes
>
>    Device Boot      Start         End      Blocks   Id  System
> /dev/sda1   *           1       20318    10240240+  83  Linux
> /dev/sda2           20319       30477     5120136   83  Linux
> /dev/sda3           30478       40636     5120136   83  Linux
> /dev/sda4           40637      196784    78698592    f  W95 Ext'd (LBA)
> /dev/sda5           40637       44700     2048224+  83  Linux
> /dev/sda6           44701       54388     4882720+  83  Linux
> /dev/sda7           54389       56326      976720+  83  Linux
> /dev/sda8           56327       57295      488344+  83  Linux
> /dev/sda9           57296       61170     1952968+  82  Linux swap
> /dev/sda10          61171       80546     9765472+  83  Linux
> /dev/sda11          80547       99903     9755896+  83  Linux
> /dev/sda12          99904      196784    48827992+  83  Linux
>
> bash-3.00# fdisk -lu /dev/sda
>
> Disk /dev/sda: 122.9 GB, 122942324736 bytes
> 16 heads, 63 sectors/track, 238216 cylinders, total 240121728 sectors
> Units = sectors of 1 * 512 = 512 bytes
>
>    Device Boot      Start         End      Blocks   Id  System
> /dev/sda1   *          63    20480543    10240240+  83  Linux
> /dev/sda2        20480544    30720815     5120136   83  Linux
> /dev/sda3        30720816    40961087     5120136   83  Linux
> /dev/sda4        40961088   198358271    78698592    f  W95 Ext'd (LBA)
> /dev/sda5        40961151    45057599     2048224+  83  Linux
> /dev/sda6        45057663    54823103     4882720+  83  Linux
> /dev/sda7        54823167    56776607      976720+  83  Linux
> /dev/sda8        56776671    57753359      488344+  83  Linux
> /dev/sda9        57753423    61659359     1952968+  82  Linux swap
> /dev/sda10       61659423    81190367     9765472+  83  Linux
> /dev/sda11       81190431   100702223     9755896+  83  Linux
> /dev/sda12      100702287   198358271    48827992+  83  Linux
> bash-3.00# 
>
> bash-3.00# e2fsck /dev/sda12
> e2fsck 1.38 (30-Jun-2005)
> Couldn't find ext2 superblock, trying backup blocks...
> e2fsck: Bad magic number in super-block while trying to open /dev/sda12
>
> The superblock could not be read or does not describe a correct ext2
> filesystem.  If the device is valid and it really contains an ext2
> filesystem (and not swap or ufs or something else), then the superblock
> is corrupt, and you might try running e2fsck with an alternate superblock:
>     e2fsck -b 8193 <device>
>
> bash-3.00# 
> bash-3.00# mount /dev/sda12 /mnt
> mount: you must specify the filesystem type
> bash-3.00# 
>
> A program i got from this great mailing list which displays the
> blocks in the disk where superblocks may be found is as follows:
> #!/usr/bin/python
> '''
> find_superblock.py
>
> Finds possible superblocks in a drive, to aid with data recovery.
>
> Usage:  find_superblock.py  /dev/hda
>
> NOTE:  USE THIS AT YOUR OWN RISK!  NO WARRANTIES EXPRESSED OR IMPLIED.
> Yada yada.  IANAL.  find_superblock.py must be run as root.  It does not
> modify the contents of the drive in any way; but the information provided
> by this program is not tested and may be very unreliable.
> '''
> import os, sys, struct
>
> if len(sys.argv) != 2:
>     print __doc__
>     sys.exit()
> f = open(sys.argv[1],'rb')
> n = 1
> while True:
>     blk = f.read(512)
>     if len(blk) == 0: break
>     magic, volname = struct.unpack('56xH62x16s376x',blk)
>     if magic == 0xef53:
>         print '%d\t%s' % (n, volname)
>     n += 1
>
>
>
>
> However, I'm not sure if I should change the f.read to 4096 because
> the block size of the filesystem could be 4096. If so, how do i do
> that since I don't know python?
>
> But a run of the same script gives this output:
> bash-3.00# ./fsb.py /dev/sda12
> 19093
> 34549
> 34613
> 34725
> 40141
> 40245
> 40397
> 40629
> 40781
> 41037
> 41205
> 41429
> 42885
> 43021
> 43885
> 46901
> etc etc etc etc...
>
> BUT, if I try 19093
>
> bash-3.00# e2fsck -b 19093 /dev/sda12
> e2fsck 1.38 (30-Jun-2005)
> e2fsck: Bad magic number in super-block while trying to open /dev/sda12
>
> The superblock could not be read or does not describe a correct ext2
> filesystem.  If the device is valid and it really contains an ext2
> filesystem (and not swap or ufs or something else), then the superblock
> is corrupt, and you might try running e2fsck with an alternate superblock:
>     e2fsck -b 8193 <device>
>
> bash-3.00# 
>
> Can anyone please help me to fix this filesystem/partition?
> I can do without all the other partitions/filesystems.
>
> thanks!
> d
>
>
>       ____________________________________________________________________________________
> Be a better sports nut!  Let your teams follow you 
> with Yahoo Mobile. Try it now.  http://mobile.yahoo.com/sports;_ylt=At9_qDKvtAbMuh1G1SQtBI7ntAcJ
>
>   

-- 
Jay Scherrer
Scherrer Company
Real estate and Tax Strategies
http://jay.scherrer.com
206.701.7952
http://www.skype.com/go/joinskypeprime?call&skypename=gimpit



More information about the linux-list mailing list