[ sakiland @ 03.01.2013. 16:20 ] @
Koristim Debian Squeeze i probao sam da odradim grow ext3 particije prema uputstvu http://www.htmlgraphic.com/how...without-data-loss-part-2-of-3/

Međutim, kada sam došao do dela za proveru fajlsistema
Code:

e2fsck -f /dev/sda1

javio se sledeći problem
Code:

[email protected]:/# e2fsck -f /dev/sdb1 
e2fsck 1.41.12 (17-May-2010)
e2fsck: Group descriptors look bad... trying backup blocks...
e2fsck: Bad magic number in super-block when using the backup blocks
e2fsck: going back to original superblock
Superblock has an invalid journal (inode 8).
Clear<y>? no

e2fsck: Illegal inode number while checking ext3 journal for /dev/sdb1


Pretpostavljam da je stvar zeznula komanda
Code:

tune2fs -O ^has_journal /dev/sda1

za kojom možda i nije bilo potrebe, pošto je uputstvo staro i verovatno je tada bilo problema da se odradi resize2fs za ext3 fajl sistem.

Dakle, moje je pitanje da li mogu nekako da popravim superblock?

Probao sam da sledećom komandom vratim opet ext3, ali ne ide
Code:

[email protected]:/# tune2fs -j /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
The filesystem already has a journal.


Takođe sam probao i sa komandom
Code:

[email protected]:/# mke2fs -n /dev/sdb1                                                                                             
mke2fs 1.41.12 (17-May-2010)                                                                                                     
/dev/sdb1 alignment is offset by 512 bytes.                                                                                      
This may result in very poor performance, (re)-partitioning suggested.                                                           
Filesystem label=                                                                                                                
OS type: Linux                                                                                                                   
Block size=4096 (log=2)                                                                                                          
Fragment size=4096 (log=2)                                                                                                       
Stride=1 blocks, Stripe width=0 blocks                                                                                           
61054976 inodes, 244190354 blocks                                                                                                
12209517 blocks (5.00%) reserved for the super user                                                                              
First data block=0                                                                                                               
Maximum filesystem blocks=4294967296                                                                                             
7453 block groups                                                                                                                
32768 blocks per group, 32768 fragments per group                                                                                
8192 inodes per group                                                                                                            
Superblock backups stored on blocks:                                                                                             
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,                                                  
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,                                                      
        102400000, 214990848                                                                                                     
                                                                                                                                 
[email protected]:/# e2fsck -f -b 32768 /dev/sdb1 
e2fsck 1.41.12 (17-May-2010)
e2fsck: Bad magic number in super-block while trying to open /dev/sdb1

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>

[email protected]:/# e2fsck -f -b 8193 /dev/sdb1 
e2fsck 1.41.12 (17-May-2010)
e2fsck: Bad magic number in super-block while trying to open /dev/sdb1

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>


Znam da problem nije lako rešiv, ali bilo koji komentar je dobro došao. U pitanju je particija na kojoj su filmovi, tako da nisu baš izuzetno bitni podaci, ali opet ne bih radio formatiranje :)
[ niceness @ 03.01.2013. 17:08 ] @
Nije bilo potrebno skidati journal zbog resize-a, ali opet ne bi trebao nastati problem zbog toga...

Probaj ponovo e2fsck, samo sa nekim drugim superblokom (98304, 163840 itd.)
Obrati paznju da je 8193 samo primer, tvoj prvi superblok je 32768 (na osnovu izlaza mke2fs - n; pogledaj i dumpe2fs).
[ sakiland @ 03.01.2013. 17:44 ] @
Hvala niceness na odgovoru.

dumpe2fs vraća sledeće
Code:

[email protected]:/# dumpe2fs /dev/sdb1 
dumpe2fs 1.41.12 (17-May-2010)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          11bc5508-cde8-45dd-982c-c22ae83a357f
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
Filesystem state:         clean with errors
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              30523392
Block count:              122069894
Reserved block count:     6103494
Free blocks:              94312579
Free inodes:              23969792
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      994
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
RAID stride:              1
Filesystem created:       Sun Aug 12 16:03:55 2012
Last mount time:          n/a
Last write time:          Wed Jan  2 19:13:18 2013
Mount count:              0
Maximum mount count:      27
Last checked:             Sun Aug 12 16:03:55 2012
Check interval:           15552000 (6 months)
Next check after:         Fri Feb  8 15:03:55 2013
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      497fd775-2f0a-4bbf-9035-441bda41e6f0
Journal backup:           inode blocks
dumpe2fs: A block group is missing an inode table while reading journal inode



Isprobao sam e2fsck za svaki superblock backup koji vraća komanda mke2fs -n, ali svaki vraća istu grešku
Citat:

Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848
[ niceness @ 03.01.2013. 18:34 ] @
Sta kaze kad ga pokusas mount-ovati(mount -t ext3 /dev/sdb1 /neki/dir), ispise li nesto u dmesg?

journal je nesto zeznut, a izgleda da je i dalje aktivan (Filesystem features: has_journal...).
Pokusaj ga ponovo iskljuciti sa tune2fs -f -O ^has_journal /dev/sdb1, pa onda mount-ovati kao ext2 (mount -t ext2 ...)

Ako nece tune2fs, probaj sa: debugfs -wR "feature -has_journal" /dev/sdb1
[ sakiland @ 03.01.2013. 19:24 ] @
Komanda tune2fs nije uspešno odradila posao
Code:

[email protected]:/# tune2fs -O ^has_journal /dev/sda1
tune2fs 1.41.12 (17-May-2010)
tune2fs: Attempt to read block from filesystem resulted in short read while trying to open /dev/sda1
Couldn't find valid filesystem superblock.


ali je debugfs -wR "feature -has_journal" /dev/sdb1 bila uspešna.

Posle toga dumpe2fs /dev/sdb1 vraća
Code:

Filesystem features:      ext_attr resize_inode dir_index filetype sparse_super large_file

ali kao da se odmah posle te komande startuje e2fsck, pošto mi se ispisuje gomila nekih brojeva.

Sve u svemu, posle ovoga neće da radi mountovanje sa ext2 (kao ni ext3)
Code:

[email protected]:/# mount -t ext2 /dev/sdb1 /media/Arhiva2
mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

[email protected]:/# dmesg | tail
[40315.995218] EXT2-fs error (device sdb1): ext2_check_descriptors: Block bitmap for group 1 not in group (block 0)!
[40315.995233] EXT2-fs: group descriptors corrupted!


Probao sam opet
Code:

[email protected]:/# e2fsck -f /dev/sdb1
e2fsck 1.41.12 (17-May-2010)
e2fsck: Group descriptors look bad... trying backup blocks...
e2fsck: Bad magic number in super-block when using the backup blocks
e2fsck: going back to original superblock
Superblock has an invalid journal (inode 8).
Clear<y>? no

e2fsck: Illegal inode number while checking ext3 journal for /dev/sdb1


Da li da pokušam sa e2fsck -f -y /dev/sdb1 ? To sam radio ranije, i mouguće da je to ponovo upisalo journal u superblock, ali nije nešto dobro odradilo.
[ niceness @ 03.01.2013. 19:51 ] @
Da, zaboravio sam napomenuti, pokreni e2fsck pa onda probaj mount.
[ sakiland @ 03.01.2013. 20:10 ] @
Kada pokrenem komandu e2fsck -f -y /dev/sdb1 na kraju dobijam
Code:

...
Inode 4546904 has an invalid extent node (blk 6848572, lblk 0)
Clear? yes

e2fsck: e2fsck_read_bitmaps: illegal bitmap block(s) for /dev/sdb1
Recreate journal? yes

Creating journal (32768 blocks): Error : A block group is missing an inode table 
        while trying to create journal
e2fsck: aborted


Mountovanje i dalje ne radi.
[ niceness @ 03.01.2013. 20:35 ] @
Izgleda da je fajlsistem gadno zaglibio. Nisam siguran sta dalje...
Jedno jos mozda probati mke2fs -S /dev/sdb1 (kreira samo nove superblokove), ali to je prilicno opasna operacija (pogledaj man mke2fs)
ili mozda kopati dublje sa debugfs, samo to je vec crna magija :D
[ sakiland @ 03.01.2013. 21:52 ] @
Ok, probaću sa mke2fs -S, samo ću prvo da napravim backup image. Za to će mi trebati novi HD, pošto je u pitanju 500GB

Javljam kad budem nešto rešio. Više me zanima kako se fajl sistem tako zeznuo i gde sam pogrešio.

Hvala na pomoći Niceness
[ sakiland @ 05.01.2013. 12:45 ] @
Nisam uspeo da rešim problem, ali mislim da znam šta bi mogao da bude uzrok.

Kreirao sam image od problematične particije
Code:

sudo ddrescue -r 3 /dev/sdb1 /media/Arhiva/image/image /media/Arhiva/image/logfile

Odradio sam
Code:

mke2fs -S -b 4096 /media/Arhiva/image/image

I posle toga
Code:

e2fsck -f -y /media/Arhiva/image/image

ali sam dobio grešku
Code:

Error storing directory block information (inode=4966343, block=0, num=91325053): Memory allocation failed
e2fsck: aborted


Onda mi je palo na pamet da na toj particiji imam nekoliko image fajlova koji imaju oko 50GB.
Ne mogu da se setim koji greška mi se prva javili kada sam radio resize te particije (nisam siguran više da li imam tu prvu grešku), ali je moguće da je isto bio problem sa memorijom.

Postavio sam u /etc/e2fsck.conf
Code:

[scratch_files]
directory = /var/cache/e2fsck

da gađa na particiju koja ima 30GB slobodno, ali izglada da ni to nije dovoljno. Možda ću probati sa nekom particijom gde ima više prostora, ali nisam siguran koliko će to duže trajati ako e2fsck koristi cache na hard disku, tako da ću još razmisliti o tome

Moje pitanje je, da li je za e2fsck neophodno onoliko memorije koliko iznosi najveći fajl?

I kako onda u tom slučaju odraditi resize particije? Da li parted negde u pozadini isto koristi e2fsck ili on ne bi imao problema sa velikim fajlovima?
[ niceness @ 05.01.2013. 15:34 ] @
Nisam ekspert za fajlsisteme, ali mislim da nije bitna velicna fajlova, vec koliko ima blok grupa, alociranih inode-ova(fajlova, direkorijuma) itd. u fajlsistemu. e2fsck izgleda alocira memoriju za sve te strukture podatka. Sto je veci fajlsistem treba vise memorije, samo tvoj fs je nesto manji od 500GB sto i nije bas puno...

Koliko imas memorije i da li je kernel 32-bit ili 64-bit? Ako je 32-bit, probaj neki 64-bit live cd (ako ti cpu podrzava, ili prebaci image na neki drugi racunar).
[ sakiland @ 06.01.2013. 12:50 ] @
Imam 7,6GB RAM-a i 64-bitni kernel. Postavio sam da scratch_files za e2fsck budu na particiji koja ima 500GB slobodno, ali ni to nije rešilo problem. Doduše, uspeo da je pregura kritične inode-ove gde je ranije pucao (oko 4000000), da se izvršava nekih 20 sati i stigne do inode=21897935 i tu onda pukne.
Code:

Illegal block #110105612 (2341659918) in inode 21897935.  CLEARED.
Error storing directory block information (inode=21897935, block=0, num=7957311): Memory allocation failed
e2fsck: aborted

Ono što me čudi je da scratch_files nisu prešli 300MB, tako da ne znam koja memorija je problem. Takođe, swap je bio do 3GB, a maksimum je 6GB Na sistemu su uglavnom bili veliki fajlovi tako da njihov broj nije prelazio 500, i možda upola manje direktorijuma.

Sve u svemu, odlučio sam da odustanem. Fajlovi nisu toliko bitni, a što se znatiželje tiče, stvarno nemam više ideju šta da probam.

Hvala na pomoći niceness.
[ niceness @ 06.01.2013. 14:18 ] @
To za memoriju je i meni bilo cudno. Ajde da je fajlsistem reda terabajta, onda mozda...
Kao sto sam ranije napisao, mozda jos probati sa debugfs iscitati fajlove... samo ne znam koliko bi to bilo uspesno.
Ja sam ga jednom korisito za vracanje slucajno izbrisanog fajla i to je super odradio, samo taj fajlsistem je bio ispravan.

Sa druge strane ako podaci nisu previse bitni mozda je stvarno najbolje odustati ;)