Eu tenho um cartão micro SD que possui uma partição FAT32 e uma partição EXT4. A partição EXT4 não será mais montada. O dmesg mostra o seguinte erro:
EXT4-fs (sdb2): bad geometry: block count 2199023779840 exceeds size of device (524288 blocks)
Eu pesquisei no Google, mas ainda não entendo completamente onde está o problema (na tabela de partições? O sistema de arquivos?) Nem como corrigi-lo. Eu tentei várias soluções:
- Usando testdisk para gravar a tabela de partição
- Usando o fsck para restaurar o superbloco dos backups (eu tentei todos eles). por exemplo
fsck.ext4 -b 163840 -B 4096 /dev/sdb2
- Usando
fsck -cc
para verificar se há blocos defeituosos - Usando resize2fs para definir o tamanho da partição. Saída:
The combination of flex_bg and !resize_inode features is not supported by resize2fs.
Quando executo o fsck, ele apresenta vários erros (saída completa abaixo), que ele afirma corrigir. Se eu executá-lo novamente, no entanto, ele mostra os mesmos erros novamente, sempre.
Como posso corrigir o problema de má geometria e tornar meu sistema de arquivos montável novamente? Como isso aconteceu?
saída fsck:
e2fsck 1.42 (29-Nov-2011)
One or more block group descriptor checksums are invalid. Fix<y>? yes
Group descriptor 0 checksum is invalid. FIXED.
Group descriptor 1 checksum is invalid. FIXED.
Group descriptor 2 checksum is invalid. FIXED.
Group descriptor 3 checksum is invalid. FIXED.
Group descriptor 4 checksum is invalid. FIXED.
Group descriptor 5 checksum is invalid. FIXED.
Group descriptor 6 checksum is invalid. FIXED.
Group descriptor 7 checksum is invalid. FIXED.
Group descriptor 8 checksum is invalid. FIXED.
Group descriptor 9 checksum is invalid. FIXED.
Group descriptor 10 checksum is invalid. FIXED.
Group descriptor 11 checksum is invalid. FIXED.
Group descriptor 12 checksum is invalid. FIXED.
Group descriptor 13 checksum is invalid. FIXED.
Group descriptor 14 checksum is invalid. FIXED.
Group descriptor 15 checksum is invalid. FIXED.
/dev/sdb2 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong for group #0 (24465, counted=24466).
Fix<y>? yes
Free blocks count wrong for group #2 (4788, counted=5812).
Fix<y>? yes
Free blocks count wrong for group #3 (8710, counted=8881).
Fix<y>? yes
Free blocks count wrong for group #8 (5682, counted=22066).
Fix<y>? yes
Free blocks count wrong (299742, counted=317322).
Fix<y>? yes
Inode bitmap differences: -(8193--8194) -8197 -8208 -(8225--8226) -8229 -(8240--8241) -(8257--8258) -8261 -8272 -8274 -(8289--8290) -8293 -(8304--8306) -(8321--8322) -8325 -8336 -8339 -16387 -16389 -16400 -16419 -16421 -(16432--16433) -16451 -16453 -16464 -16466 -16483 -16485 -(16496--16498) -16515 -16517 -16528 -16531 -24577 -24579 -24581 -24592 -24609 -24611 -24613 -(24624--24625) -24641 -24643 -24645 -24656 -24658 -24673 -24675 -24677 -(24688--24690) -24705 -24707 -24709 -24720 -24723 -(32770--32771) -32773 -32784 -(32802--32803) -32805 -(32816--32817) -(32834--32835) -32837 -32848 -32850 -(32866--32867) -32869 -(32880--32882) -(32898--32899) -32901 -32912 -32915 -(40961--40963) -40965 -40976 -(40993--40995) -40997 -(41008--41009) -(41025--41027) -41029 -41040 -41042 -(41057--41059) -41061 -(41072--41074) -(41089--41091) -41093 -41104 -41107 -(49156--49157) -49168 -(49188--49189) -(49200--49201) -(49220--49221) -49232 -49234 -(49252--49253) -(49264--49266) -(49284--49285) -49296 -49299 -57345 -(57348--57349) -57360 -57377 -(57380--57381) -(57392--57393) -57409 -(57412--57413) -57424 -57426 -57441 -(57444--57445) -(57456--57458) -57473 -(57476--57477) -57488 -57491 -65538 -(65540--65541) -65552 -65570 -(65572--65573) -(65584--65585) -65602 -(65604--65605) -65616 -65618 -65634 -(65636--65637) -(65648--65650) -65666 -(65668--65669) -65680 -65683 -(73729--73730) -(73732--73733) -73744 -(73761--73762) -(73764--73765) -(73776--73777) -(73793--73794) -(73796--73797) -73808 -73810 -(73825--73826) -(73828--73829) -(73840--73842) -(73857--73858) -(73860--73861) -73872 -73875 -(81923--81925) -81936 -(81955--81957) -(81968--81969) -(81987--81989) -82000 -82002 -(82019--82021) -(82032--82034) -(82051--82053) -82064 -82067 -90113 -(90115--90117) -90128 -90145 -(90147--90149) -(90160--90161) -90177 -(90179--90181) -90192 -90194 -90209 -(90211--90213) -(90224--90226) -90241 -(90243--90245) -90256 -90259 -(98306--98309) -98320 -(98338--98341) -(98352--98353) -(98370--98373) -98384 -98386 -(98402--98405) -(98416--98418) -(98434--98437) -98448 -98451 -(106497--106501) -106512 -(106529--106533) -(106544--106545) -(106561--106565) -106576 -106578 -(106593--106597) -(106608--106610) -(106625--106629) -106640 -106643 -114694 -114704 -114726 -(114736--114737) -114758 -114768 -114770 -114790 -(114800--114802) -114822 -114832 -114835 -122881 -122886 -122896 -122913 -122918 -(122928--122929) -122945 -122950 -122960 -122962 -122977 -122982 -(122992--122994) -123009 -123014 -123024 -123027
Fix<y>? yes
Free inodes count wrong for group #0 (7803, counted=7804).
Fix<y>? yes
Free inodes count wrong (130683, counted=130684).
Fix<y>? yes
/dev/sdb2: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sdb2: 388/131072 files (22.7% non-contiguous), 206966/524288 blocks
fdisk -l
saída:
Disk /dev/sdb: 16.0 GB, 16012804096 bytes
64 heads, 32 sectors/track, 15271 cylinders, total 31275008 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005ce93
Device Boot Start End Blocks Id System
/dev/sdb1 * 2048 27080703 13539328 c W95 FAT32 (LBA)
/dev/sdb2 27080704 31275007 2097152 83 Linux
filesystems
ext4
fsck
Michael
fonte
fonte
fdisk -l
deste cartão?Respostas:
O mesmo problema após truncar uma imagem do cartão SD em que o SD tinha alguns blocos a menos que o original. Reparticionou a unidade com o fdisk (veja acima), mas a mensagem "Tamanho no superbloco é diferente do tamanho físico da partição" permaneceu. Encontre a solução aqui: http://www.linuxquestions.org/questions/linux-hardware-18/size-in-superblock-is-different-from-the-physical-size-of-the-partition-298175/
Então, na partição desmontada:
e2fsck -f /dev/XXX resize2fs /dev/XXX
fonte
O sistema de arquivos não se importa com a geometria do disco; este é um problema da tabela de partição.
Sugiro que você faça um despejo da tabela de partições, verifique o resultado e substitua a tabela de partições por esse despejo. Isso deve corrigir as entradas do CHS.
fonte
sfdisk -d
é a mesma antes e depois da gravação. Perdi alguma coisa? Algum outro pensamento?testdisk
é. A Internet me diz: "verifica e recupera partições perdidas". Se isso é apenas para partições perdidas, por que deveria reparar as partições existentes?Eu praticamente tive o mesmo problema, tentando montar deu:
Eu tentei a reescrita acima mencionada da tabela de peças, sem sucesso.
Por fim, consegui resolver o problema re-particionando minha unidade via fdisk. Eu apaguei minha 2ª partição e a recriei novamente.
fonte
Eu tive o mesmo problema com um arquivo de imagem, ou seja, sem nenhuma tabela de partição, então o problema está no próprio sistema de arquivos. Consegui corrigi-lo apenas fazendo um
resize2fs
no arquivo de imagem.fonte
Como não consegui encontrar outra solução, reformatei a partição EXT4. Isso eliminou o erro de geometria ruim. Gostaria de saber o porquê.
fonte