Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 06/09/2011, à 13:47

martinclic

crash disque, récupération ext3 corrompu (ou ext4)

Bonjour,

le disque dur de mon portable m'a lâché (Ubuntu 10.04).
Il y a 4 partitions dessus:
    sda1: windows, sans importance
    sda2: / , ext3 ou ext4 (je me rappelle plus)
    sda3: /home , ext3 ou ext4
    sda4: swap

je souhaite tenter de récupérer ce que je peux de sda3 (~120 Go), si possible.

Grub ne boote plus.

Depuis un liveCD (ubuntu 10.04):
- Gparted voit les 4 partitions, mais les 2 partitions ext3/4 sont de format inconnus

- fdisk

ubuntu@ubuntu:~$ sudo sfdisk -luS

Disk /dev/sda: 24321 cylinders, 255 heads, 63 sectors/track
Units = sectors of 512 bytes, counting from 0

   Device Boot    Start       End   #sectors  Id  System
/dev/sda1   *        63  82043954   82043892   7  HPFS/NTFS
/dev/sda2      82043955 128343284   46299330  83  Linux
/dev/sda3     128343285 384419384  256076100  83  Linux
/dev/sda4     384419385 390716864    6297480  82  Linux swap / Solaris

- fsck /dev/sda

ubuntu@ubuntu:~$ sudo fsck /dev/sda2
fsck from util-linux-ng 2.17.2
e2fsck 1.41.11 (14-Mar-2010)
fsck.ext2: Superbloc invalide, tentons d'utiliser les blocs de sauvetage...
le superbloc a un journal invalide (i-noeud 8).
Effacer<o>? non

fsck.ext2: Illegal inode number lors de la vérification du journal ext3 pour /dev/sda2
ubuntu@ubuntu:~$ sudo fsck /dev/sda3
fsck from util-linux-ng 2.17.2
e2fsck 1.41.11 (14-Mar-2010)
fsck.ext2: Superbloc invalide, tentons d'utiliser les blocs de sauvetage...
le superbloc a un journal invalide (i-noeud 8).
Effacer<o>? non

fsck.ext2: Illegal inode number lors de la vérification du journal ext3 pour /dev/sda3

- Testdisk voit les partitions, sda2 et sda3 sont indiqués "Linux". Mais il patine sévèrement sur l'analyse de sda3 à partir de environ sa moitié, en signalant des erreurs. Donc je suppose que le disque est abimé physiquement sur cette partition. De plus il ne peut pas lister le contenu à la fin de l'analyse (touche P). Le fichier de log est à la suite du post.

Je viens de m'acheter un disque externe pour faire mes manip'. Je veux tenter de faire un image disque ou partition avec ddrescue, et essayer d'y réparer le système de fichier avec les adresses de superblock que me donne testdisk.

Je suis perdu sur les questions suivantes:
1- si je fais une image du disque entier, je ne suis pas sur de pouvoir agir uniquement sur une partition, pour tenter de réparer le système de fichier.
2- si je fais une image de la partition sda3, je ne suis pas sur de pouvoir utiliser les adresses de superblock indiquées par TestDisk (elles sont peut être relatives au disque entier ?)
3- ou alors je fais une copie disque à disque avec ddrescue. A ce moment là il me faut encore un disque externe de plus pour les manip' suivantes...

Merci d'avance pour tout conseil et aide wink .

PS: çà va ? Je semble pas trop paniqué ? Yyarrggglll...!

Dernière modification par martinclic (Le 06/09/2011, à 13:57)

Hors ligne

#2 Le 06/09/2011, à 13:49

martinclic

Re : crash disque, récupération ext3 corrompu (ou ext4)

log testdisk:

Thu Sep  1 11:53:39 2011
Command line: TestDisk

TestDisk 6.12, Data Recovery Utility, May 2011
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org
OS: Linux, kernel 2.6.32-24-generic (#39-Ubuntu SMP Wed Jul 28 06:07:29 UTC 2010) i686
Compiler: GCC 4.4
Compilation date: 2011-05-11T22:21:36
ext2fs lib: 1.41.9, ntfs lib: libntfs-3g, reiserfs lib: 0.3.1-rc8, ewf lib: 20100226
/dev/sda: LBA, HPA, LBA48, DCO support
/dev/sda: size       390721968 sectors
/dev/sda: user_max   390721968 sectors
/dev/sda: native_max 4846000 sectors
/dev/sda: dco        390721968 sectors
Warning: can't get size for Disk /dev/mapper/control - 0 B - CHS 1 1 1, sector size=512
/dev/sr0 is not an ATA disk
Hard disk list
Disk /dev/sda - 200 GB / 186 GiB - CHS 24321 255 63, sector size=512 - ATA ST9200420ASG
Disk /dev/sdb - 500 GB / 465 GiB - CHS 60801 255 63, sector size=512 - SAMSUNG HM500LI
Disk /dev/sr0 - 718 MB / 685 MiB - CHS 351023 1 1 (RO), sector size=2048 - MATSHITA DVD+-RW UJ-857G

Partition table type (auto): Intel
Disk /dev/sda - 200 GB / 186 GiB - ATA ST9200420ASG
Partition table type: Intel

Analyse Disk /dev/sda - 200 GB / 186 GiB - CHS 24321 255 63
Geometry from i386 MBR: head=255 sector=63
NTFS at 0/1/1
check_part_i386 failed for partition type 83
check_part_i386 failed for partition type 83
get_geometry_from_list_part_aux head=255 nbr=8
get_geometry_from_list_part_aux head=8 nbr=1
get_geometry_from_list_part_aux head=16 nbr=1
get_geometry_from_list_part_aux head=32 nbr=1
get_geometry_from_list_part_aux head=64 nbr=1
get_geometry_from_list_part_aux head=128 nbr=1
get_geometry_from_list_part_aux head=240 nbr=1
get_geometry_from_list_part_aux head=255 nbr=8
Current partition structure:
 1 * HPFS - NTFS              0   1  1  5106 254 63   82043892
No ext2, JFS, Reiser, cramfs or XFS marker
 2 P Linux                 5107   0  1  7988 254 63   46299330
 2 P Linux                 5107   0  1  7988 254 63   46299330
No ext2, JFS, Reiser, cramfs or XFS marker
 3 P Linux                 7989   0  1 23928 254 63  256076100
 3 P Linux                 7989   0  1 23928 254 63  256076100
 4 P Linux Swap           23929   0  1 24320 254 63    6297480
Ask the user for vista mode
Allow partial last cylinder : No
search_vista_part: 0

search_part()
Disk /dev/sda - 200 GB / 186 GiB - CHS 24321 255 63
NTFS at 0/1/1
filesystem size           82043892
sectors_per_cluster       8
mft_lcn                   786432
mftmirr_lcn               5127743
clusters_per_mft_record   -10
clusters_per_index_record 1
     HPFS - NTFS              0   1  1  5106 254 63   82043892
     NTFS, 42 GB / 39 GiB

recover_EXT2: s_block_group_nr=0/176, s_mnt_count=3/32, s_blocks_per_group=32768, s_inodes_per_group=8176
recover_EXT2: s_blocksize=4096
recover_EXT2: s_blocks_count 5787416
recover_EXT2: part_size 46299328
     Linux                 6443   0  1  9324 254 61   46299328
     EXT4 Large file Sparse superblock Recover, 23 GB / 22 GiB

recover_EXT2: s_block_group_nr=0/116, s_mnt_count=2/33, s_blocks_per_group=32768, s_inodes_per_group=8160
recover_EXT2: s_blocksize=4096
recover_EXT2: s_blocks_count 3815429
recover_EXT2: part_size 30523432
     Linux                13975   0  1 15874 253 58   30523432
     EXT3 Large file Sparse superblock Recover, 15 GB / 14 GiB
file_pread(4,16,buffer,255032064(15875/3/1)) read err: Input/output error
file_pread(4,1,buffer,255032064(15875/3/1)) read err: Input/output error
file_pread(4,16,buffer,255035223(15875/53/10)) read err: Partial read
file_pread(4,16,buffer,255039319(15875/118/11)) read err: Partial read
file_pread(4,1,buffer,255039320(15875/118/12)) read err: Input/output error
file_pread(4,16,buffer,255112216(15880/0/17)) read err: Input/output error
file_pread(4,1,buffer,255112216(15880/0/17)) read err: Input/output error
file_pread(4,16,buffer,255385305(15897/0/1)) read err: Input/output error
file_pread(4,1,buffer,255385305(15897/0/1)) read err: Input/output error
file_pread(4,16,buffer,255497886(15904/2/1)) read err: Input/output error
file_pread(4,1,buffer,255497886(15904/2/1)) read err: Input/output error
file_pread(4,2,buffer,255497887(15904/2/2)) read err: Input/output error
file_pread(4,16,buffer,255513888(15905/1/1)) read err: Input/output error
file_pread(4,1,buffer,255513888(15905/1/1)) read err: Input/output error
file_pread(4,16,buffer,255513889(15905/1/2)) read err: Input/output error
file_pread(4,1,buffer,255513889(15905/1/2)) read err: Input/output error
file_pread(4,16,buffer,255787119(15922/3/1)) read err: Partial read
file_pread(4,1,buffer,255787128(15922/3/10)) read err: Input/output error
file_pread(4,16,buffer,255883399(15928/1/17)) read err: Partial read
file_pread(4,1,buffer,255883400(15928/1/18)) read err: Input/output error
file_pread(4,16,buffer,255883401(15928/1/19)) read err: Input/output error
file_pread(4,16,buffer,255915450(15930/0/1)) read err: Partial read
file_pread(4,1,buffer,255915456(15930/0/7)) read err: Input/output error
file_pread(4,8,buffer,255915458(15930/0/9)) read err: Input/output error
file_pread(4,16,buffer,256156504(15945/1/17)) read err: Input/output error
file_pread(4,1,buffer,256156504(15945/1/17)) read err: Input/output error
file_pread(4,16,buffer,256156505(15945/1/18)) read err: Input/output error
file_pread(4,1,buffer,256156505(15945/1/18)) read err: Input/output error
file_pread(4,16,buffer,256284961(15953/0/17)) read err: Partial read
file_pread(4,16,buffer,256525983(15968/1/1)) read err: Partial read
file_pread(4,1,buffer,256525984(15968/1/2)) read err: Input/output error
file_pread(4,16,buffer,256525985(15968/1/3)) read err: Input/output error
file_pread(4,1,buffer,256525985(15968/1/3)) read err: Input/output error
file_pread(4,8,buffer,256525991(15968/1/9)) read err: Input/output error
file_pread(4,16,buffer,256702635(15979/0/1)) read err: Partial read
file_pread(4,16,buffer,256702651(15979/0/17)) read err: Input/output error
file_pread(4,1,buffer,256702651(15979/0/17)) read err: Input/output error
file_pread(4,16,buffer,256911559(15992/1/17)) read err: Partial read
file_pread(4,16,buffer,257088195(16003/0/1)) read err: Partial read
file_pread(4,1,buffer,257088200(16003/0/6)) read err: Input/output error
file_pread(4,8,buffer,257088203(16003/0/9)) read err: Input/output error
file_pread(4,16,buffer,257473834(16027/1/17)) read err: Partial read
file_pread(4,1,buffer,257473840(16027/1/23)) read err: Input/output error
file_pread(4,16,buffer,257827201(16049/0/17)) read err: Partial read
file_pread(4,16,buffer,258148564(16069/1/17)) read err: Partial read
file_pread(4,16,buffer,258212871(16073/2/1)) read err: Partial read
file_pread(4,1,buffer,258212872(16073/2/2)) read err: Input/output error
file_pread(4,1,buffer,258212873(16073/2/3)) read err: Input/output error
file_pread(4,16,buffer,258228873(16074/1/1)) read err: Partial read
file_pread(4,16,buffer,258518043(16092/1/1)) read err: Partial read
file_pread(4,16,buffer,258518059(16092/1/17)) read err: Input/output error
file_pread(4,1,buffer,258518059(16092/1/17)) read err: Input/output error
file_pread(4,16,buffer,258518060(16092/1/18)) read err: Input/output error
file_pread(4,1,buffer,258518060(16092/1/18)) read err: Input/output error
file_pread(4,16,buffer,258598384(16097/1/17)) read err: Partial read
file_pread(4,16,buffer,259000056(16122/2/1)) read err: Partial read
file_pread(4,1,buffer,259000064(16122/2/9)) read err: Input/output error
file_pread(4,16,buffer,259016058(16123/1/1)) read err: Partial read
file_pread(4,16,buffer,259016074(16123/1/17)) read err: Input/output error
file_pread(4,1,buffer,259016074(16123/1/17)) read err: Input/output error
file_pread(4,16,buffer,259016075(16123/1/18)) read err: Input/output error
file_pread(4,1,buffer,259016075(16123/1/18)) read err: Input/output error
file_pread(4,16,buffer,259273114(16139/1/17)) read err: Partial read
file_pread(4,1,buffer,259273120(16139/1/23)) read err: Input/output error
file_pread(4,16,buffer,259289226(16140/2/1)) read err: Input/output error
file_pread(4,1,buffer,259289226(16140/2/1)) read err: Input/output error
file_pread(4,2,buffer,259289227(16140/2/2)) read err: Input/output error
file_pread(4,16,buffer,259369567(16145/2/17)) read err: Partial read
file_pread(4,16,buffer,259385569(16146/1/17)) read err: Partial read
file_pread(4,16,buffer,259642593(16162/1/1)) read err: Partial read
file_pread(4,16,buffer,259755111(16169/2/1)) read err: Input/output error
file_pread(4,1,buffer,259755111(16169/2/1)) read err: Input/output error
file_pread(4,16,buffer,259771239(16170/3/1)) read err: Partial read
file_pread(4,1,buffer,259771248(16170/3/10)) read err: Input/output error
file_pread(4,16,buffer,259787241(16171/2/1)) read err: Partial read
file_pread(4,16,buffer,259787257(16171/2/17)) read err: Input/output error
file_pread(4,1,buffer,259787257(16171/2/17)) read err: Input/output error
file_pread(4,16,buffer,260028169(16186/1/17)) read err: Partial read
file_pread(4,16,buffer,260397664(16209/1/17)) read err: Input/output error
file_pread(4,1,buffer,260397664(16209/1/17)) read err: Input/output error
file_pread(4,16,buffer,260397665(16209/1/18)) read err: Input/output error
file_pread(4,1,buffer,260397665(16209/1/18)) read err: Input/output error
file_pread(4,16,buffer,260526294(16217/3/1)) read err: Input/output error
file_pread(4,1,buffer,260526294(16217/3/1)) read err: Input/output error
file_pread(4,16,buffer,260542296(16218/2/1)) read err: Input/output error
file_pread(4,1,buffer,260542296(16218/2/1)) read err: Input/output error
file_pread(4,2,buffer,260542297(16218/2/2)) read err: Input/output error
file_pread(4,16,buffer,260767143(16232/1/1)) read err: Partial read
file_pread(4,1,buffer,260767144(16232/1/2)) read err: Input/output error
file_pread(4,16,buffer,260767145(16232/1/3)) read err: Input/output error
file_pread(4,1,buffer,260767145(16232/1/3)) read err: Input/output error
file_pread(4,8,buffer,260767151(16232/1/9)) read err: Input/output error
file_pread(4,16,buffer,260911807(16241/2/17)) read err: Partial read
file_pread(4,16,buffer,261313479(16266/3/1)) read err: Partial read
file_pread(4,1,buffer,261313480(16266/3/2)) read err: Input/output error
file_pread(4,16,buffer,262277190(16326/0/1)) read err: Partial read
file_pread(4,16,buffer,262277206(16326/0/17)) read err: Input/output error
file_pread(4,1,buffer,262277206(16326/0/17)) read err: Input/output error
file_pread(4,16,buffer,262293444(16327/3/1)) read err: Input/output error
file_pread(4,1,buffer,262293444(16327/3/1)) read err: Input/output error
file_pread(4,16,buffer,262437966(16336/2/1)) read err: Partial read
file_pread(4,1,buffer,262437976(16336/2/11)) read err: Input/output error
file_pread(4,8,buffer,262437982(16336/2/17)) read err: Input/output error
file_pread(4,16,buffer,262550311(16343/0/17)) read err: Partial read
file_pread(4,1,buffer,262550312(16343/0/18)) read err: Input/output error
file_pread(4,16,buffer,262967985(16369/0/1)) read err: Partial read
file_pread(4,1,buffer,262967992(16369/0/8)) read err: Input/output error
file_pread(4,8,buffer,262967993(16369/0/9)) read err: Input/output error

recover_EXT2: s_block_group_nr=0/106, s_mnt_count=9/24, s_blocks_per_group=32768, s_inodes_per_group=8192
recover_EXT2: s_blocksize=4096
recover_EXT2: s_blocks_count 3503616
recover_EXT2: part_size 28028928
     Linux                20567   1  1 22311 184 39   28028928
     EXT4 Large file Sparse superblock Recover, 14 GB / 13 GiB
     Linux Swap           23929   0  1 24320 254 47    6297464
     SWAP2 version 1, 3224 MB / 3074 MiB
get_geometry_from_list_part_aux head=255 nbr=8
get_geometry_from_list_part_aux head=8 nbr=2
get_geometry_from_list_part_aux head=16 nbr=1
get_geometry_from_list_part_aux head=32 nbr=1
get_geometry_from_list_part_aux head=64 nbr=1
get_geometry_from_list_part_aux head=128 nbr=1
get_geometry_from_list_part_aux head=240 nbr=1
get_geometry_from_list_part_aux head=255 nbr=8

Results
     HPFS - NTFS              0   1  1  5106 254 63   82043892
     NTFS, 42 GB / 39 GiB
     Linux                 6443   0  1  9324 254 63   46299330
     EXT4 Large file Sparse superblock Recover, 23 GB / 22 GiB
     Linux                13975   0  1 15874 254 63   30523500
     EXT3 Large file Sparse superblock Recover, 15 GB / 14 GiB
     Linux                20567   1  1 22311 254 63   28033362
     EXT4 Large file Sparse superblock Recover, 14 GB / 13 GiB
     Linux Swap           23929   0  1 24320 254 63    6297480
     SWAP2 version 1, 3224 MB / 3074 MiB

interface_write()
 
No partition found or selected for recovery

search_part()
Disk /dev/sda - 200 GB / 186 GiB - CHS 24321 255 63
NTFS at 0/1/1
filesystem size           82043892
sectors_per_cluster       8
mft_lcn                   786432
mftmirr_lcn               5127743
clusters_per_mft_record   -10
clusters_per_index_record 1
     HPFS - NTFS              0   1  1  5106 254 63   82043892
     NTFS, 42 GB / 39 GiB
file_pread(4,16,buffer,17273766(1075/61/49)) read err: Partial read
file_pread(4,16,buffer,17301315(1076/244/4)) read err: Partial read
file_pread(4,16,buffer,17787909(1107/62/49)) read err: Input/output error
file_pread(4,1,buffer,17787909(1107/62/49)) read err: Input/output error
file_pread(4,16,buffer,17801042(1108/16/15)) read err: Partial read
NTFS at 5106/254/63
filesystem size           82043892
sectors_per_cluster       8
mft_lcn                   786432
mftmirr_lcn               5127743
clusters_per_mft_record   -10
clusters_per_index_record 1
     HPFS - NTFS              0   1  1  5106 254 63   82043892
     NTFS found using backup sector!, 42 GB / 39 GiB

block_group_nr 3

recover_EXT2: "e2fsck -b 98304 -B 4096 device" may be needed
recover_EXT2: s_block_group_nr=3/176, s_mnt_count=0/32, s_blocks_per_group=32768, s_inodes_per_group=8176
recover_EXT2: s_blocksize=4096
recover_EXT2: s_blocks_count 5787416
recover_EXT2: part_size 46299328
     Linux                 5107   0  1  7988 254 61   46299328
     EXT4 Large file Sparse superblock Backup superblock, 23 GB / 22 GiB

recover_EXT2: s_block_group_nr=0/176, s_mnt_count=3/32, s_blocks_per_group=32768, s_inodes_per_group=8176
recover_EXT2: s_blocksize=4096
recover_EXT2: s_blocks_count 5787416
recover_EXT2: part_size 46299328
     Linux                 6443   0  1  9324 254 61   46299328
     EXT4 Large file Sparse superblock Recover, 23 GB / 22 GiB

block_group_nr 3

recover_EXT2: "e2fsck -b 98304 -B 4096 device" may be needed
recover_EXT2: s_block_group_nr=3/976, s_mnt_count=0/30, s_blocks_per_group=32768, s_inodes_per_group=8192
recover_EXT2: s_blocksize=4096
recover_EXT2: s_blocks_count 32009512
recover_EXT2: part_size 256076096
     Linux                 7989   0  1 23928 254 59  256076096
     EXT4 Large file Sparse superblock Backup superblock, 131 GB / 122 GiB

recover_EXT2: s_block_group_nr=0/116, s_mnt_count=2/33, s_blocks_per_group=32768, s_inodes_per_group=8160
recover_EXT2: s_blocksize=4096
recover_EXT2: s_blocks_count 3815429
recover_EXT2: part_size 30523432
     Linux                13975   0  1 15874 253 58   30523432
     EXT3 Large file Sparse superblock Recover, 15 GB / 14 GiB
file_pread(4,16,buffer,246293600(15331/17/15)) read err: Partial read
file_pread(4,16,buffer,246307953(15331/245/4)) read err: Partial read
file_pread(4,16,buffer,246308769(15332/3/1)) read err: Partial read
file_pread(4,16,buffer,246309602(15332/16/15)) read err: Partial read
file_pread(4,16,buffer,246324787(15333/2/17)) read err: Partial read
file_pread(4,1,buffer,246324792(15333/2/22)) read err: Input/output error
file_pread(4,16,buffer,246389927(15337/16/15)) read err: Partial read
file_pread(4,1,buffer,246389928(15337/16/16)) read err: Input/output error
file_pread(4,16,buffer,246485294(15342/254/63)) read err: Input/output error
file_pread(4,16,buffer,247032590(15377/17/15)) read err: Input/output error
file_pread(4,1,buffer,247032590(15377/17/15)) read err: Input/output error
file_pread(4,16,buffer,247095780(15381/0/16)) read err: Partial read
file_pread(4,16,buffer,247176105(15386/0/16)) read err: Partial read
file_pread(4,16,buffer,247674294(15417/3/1)) read err: Input/output error
file_pread(4,1,buffer,247674294(15417/3/1)) read err: Input/output error
file_pread(4,16,buffer,247691255(15418/17/15)) read err: Partial read
file_pread(4,16,buffer,247803584(15425/15/15)) read err: Partial read
file_pread(4,16,buffer,247817937(15425/243/4)) read err: Partial read
file_pread(4,16,buffer,247818769(15426/1/17)) read err: Partial read
file_pread(4,1,buffer,247818776(15426/1/24)) read err: Input/output error
file_pread(4,16,buffer,247834770(15427/0/16)) read err: Partial read
file_pread(4,16,buffer,248208078(15450/60/49)) read err: Input/output error
file_pread(4,1,buffer,248208078(15450/60/49)) read err: Input/output error
file_pread(4,16,buffer,248317790(15457/17/15)) read err: Input/output error
file_pread(4,1,buffer,248317790(15457/17/15)) read err: Input/output error
file_pread(4,16,buffer,248332143(15457/245/4)) read err: Input/output error
file_pread(4,1,buffer,248332143(15457/245/4)) read err: Input/output error
file_pread(4,16,buffer,248364273(15459/245/4)) read err: Partial read
file_pread(4,16,buffer,248444472(15464/243/4)) read err: Input/output error
file_pread(4,1,buffer,248444472(15464/243/4)) read err: Input/output error
file_pread(4,16,buffer,248445288(15465/1/1)) read err: Partial read
file_pread(4,16,buffer,248461432(15466/2/17)) read err: Partial read
file_pread(4,16,buffer,248477434(15467/1/17)) read err: Partial read
file_pread(4,16,buffer,248754414(15484/62/49)) read err: Partial read
file_pread(4,16,buffer,249103137(15505/243/4)) read err: Partial read
file_pread(4,16,buffer,249103953(15506/1/1)) read err: Partial read
file_pread(4,16,buffer,249103969(15506/1/17)) read err: Input/output error
file_pread(4,1,buffer,249103969(15506/1/17)) read err: Input/output error
file_pread(4,16,buffer,249103970(15506/1/18)) read err: Input/output error
file_pread(4,1,buffer,249103970(15506/1/18)) read err: Input/output error
file_pread(4,16,buffer,249168276(15510/2/1)) read err: Partial read
file_pread(4,1,buffer,249168280(15510/2/5)) read err: Input/output error
file_pread(4,16,buffer,249168282(15510/2/7)) read err: Input/output error
file_pread(4,2,buffer,249169109(15510/15/15)) read err: Input/output error
file_pread(4,16,buffer,249183462(15510/243/4)) read err: Input/output error
file_pread(4,1,buffer,249183462(15510/243/4)) read err: Input/output error
file_pread(4,16,buffer,249184278(15511/1/1)) read err: Partial read
file_pread(4,16,buffer,249184294(15511/1/17)) read err: Input/output error
file_pread(4,1,buffer,249184294(15511/1/17)) read err: Input/output error
file_pread(4,16,buffer,249184295(15511/1/18)) read err: Input/output error
file_pread(4,1,buffer,249184295(15511/1/18)) read err: Input/output error
file_pread(4,16,buffer,249509406(15531/61/49)) read err: Partial read
file_pread(4,16,buffer,249525408(15532/60/49)) read err: Partial read
file_pread(4,16,buffer,249794811(15549/2/1)) read err: Input/output error
file_pread(4,1,buffer,249794811(15549/2/1)) read err: Input/output error
file_pread(4,2,buffer,249794812(15549/2/2)) read err: Input/output error
file_pread(4,16,buffer,252670509(15728/3/1)) read err: Partial read
file_pread(4,1,buffer,252670512(15728/3/4)) read err: Input/output error
file_pread(4,16,buffer,253107966(15755/61/49)) read err: Partial read
file_pread(4,16,buffer,253200464(15760/254/63)) read err: Input/output error
file_pread(4,16,buffer,253349004(15770/62/49)) read err: Input/output error
file_pread(4,1,buffer,253349004(15770/62/49)) read err: Input/output error
file_pread(4,16,buffer,253365006(15771/61/49)) read err: Partial read
file_pread(4,16,buffer,253505699(15779/254/63)) read err: Input/output error
file_pread(4,16,buffer,253569975(15784/0/16)) read err: Partial read
file_pread(4,16,buffer,253863021(15802/61/49)) read err: Partial read
file_pread(4,16,buffer,253891275(15804/0/16)) read err: Partial read
file_pread(4,16,buffer,253971648(15809/1/1)) read err: Partial read
file_pread(4,16,buffer,253987649(15809/254/63)) read err: Partial read
file_pread(4,16,buffer,253987665(15810/0/16)) read err: Input/output error
file_pread(4,16,buffer,254136189(15819/62/49)) read err: Partial read
file_pread(4,16,buffer,254277779(15828/15/15)) read err: Partial read
file_pread(4,16,buffer,254341159(15832/1/17)) read err: Partial read
file_pread(4,16,buffer,254726703(15856/1/1)) read err: Input/output error
file_pread(4,1,buffer,254726703(15856/1/1)) read err: Input/output error
file_pread(4,16,buffer,254742704(15856/254/63)) read err: Input/output error
file_pread(4,16,buffer,254758017(15857/243/4)) read err: Input/output error
file_pread(4,1,buffer,254758017(15857/243/4)) read err: Input/output error
file_pread(4,16,buffer,254758833(15858/1/1)) read err: Partial read
file_pread(4,16,buffer,254758849(15858/1/17)) read err: Input/output error
file_pread(4,1,buffer,254758849(15858/1/17)) read err: Input/output error
file_pread(4,16,buffer,254758850(15858/1/18)) read err: Input/output error
file_pread(4,1,buffer,254758850(15858/1/18)) read err: Input/output error
file_pread(4,16,buffer,254891244(15866/62/49)) read err: Input/output error
file_pread(4,1,buffer,254891244(15866/62/49)) read err: Input/output error
file_pread(4,16,buffer,254987571(15872/61/49)) read err: Partial read
file_pread(4,16,buffer,255015809(15873/254/63)) read err: Partial read
file_pread(4,16,buffer,255015825(15874/0/16)) read err: Input/output error
file_pread(4,16,buffer,255032064(15875/3/1)) read err: Input/output error
file_pread(4,1,buffer,255032064(15875/3/1)) read err: Input/output error
file_pread(4,16,buffer,255035223(15875/53/10)) read err: Partial read
file_pread(4,16,buffer,255039319(15875/118/11)) read err: Partial read
file_pread(4,1,buffer,255039320(15875/118/12)) read err: Input/output error
file_pread(4,16,buffer,255112215(15880/0/16)) read err: Partial read
file_pread(4,16,buffer,255260739(15889/62/49)) read err: Partial read
file_pread(4,16,buffer,255385304(15896/254/63)) read err: Input/output error
file_pread(4,16,buffer,255497886(15904/2/1)) read err: Input/output error
file_pread(4,1,buffer,255497886(15904/2/1)) read err: Input/output error
file_pread(4,2,buffer,255497887(15904/2/2)) read err: Input/output error
file_pread(4,16,buffer,255513888(15905/1/1)) read err: Input/output error
file_pread(4,1,buffer,255513888(15905/1/1)) read err: Input/output error
file_pread(4,16,buffer,255513889(15905/1/2)) read err: Input/output error
file_pread(4,1,buffer,255513889(15905/1/2)) read err: Input/output error
file_pread(4,16,buffer,255513894(15905/1/7)) read err: Input/output error
Search for partition aborted
get_geometry_from_list_part_aux head=255 nbr=9
get_geometry_from_list_part_aux head=8 nbr=2
get_geometry_from_list_part_aux head=16 nbr=1
get_geometry_from_list_part_aux head=32 nbr=1
get_geometry_from_list_part_aux head=64 nbr=1
get_geometry_from_list_part_aux head=128 nbr=1
get_geometry_from_list_part_aux head=240 nbr=1
get_geometry_from_list_part_aux head=255 nbr=9

Results
   * HPFS - NTFS              0   1  1  5106 254 63   82043892
     NTFS, 42 GB / 39 GiB
     Linux                 5107   0  1  7988 254 63   46299330
     EXT4 Large file Sparse superblock Backup superblock, 23 GB / 22 GiB
     Linux                 6443   0  1  9324 254 63   46299330
     EXT4 Large file Sparse superblock Recover, 23 GB / 22 GiB
     Linux                 7989   0  1 23928 254 63  256076100
     EXT4 Large file Sparse superblock Backup superblock, 131 GB / 122 GiB
     Linux                13975   0  1 15874 254 63   30523500
     EXT3 Large file Sparse superblock Recover, 15 GB / 14 GiB

interface_write()
 1 * HPFS - NTFS              0   1  1  5106 254 63   82043892
simulate write!

write_mbr_i386: starting...
write_all_log_i386: starting...
No extended partition

TestDisk exited normally.

Hors ligne

#3 Le 07/09/2011, à 03:30

rmy

Re : crash disque, récupération ext3 corrompu (ou ext4)

N'insiste pas trop avec testdisk. Ton disque est malade, l'urgence pour moi est de faire une copie complète du disque avec ddrescue, option -n obligatoire.
Au pire si tu n'arrive pas à réparer sur l'image, il sera toujours temps d'investir dans un autre disque…

Hors ligne

#4 Le 07/09/2011, à 11:28

martinclic

Re : crash disque, récupération ext3 corrompu (ou ext4)

Merci de ta réponse et de ton conseil.
Je vais donc faire une copie disque à disque.

Il me faut donc un 3e disque pour celà, il est commandé et je devrai le recevoir demain.
je reviens vous voir quand cette partie sera faite.

Hors ligne

#5 Le 07/09/2011, à 13:44

rmy

Re : crash disque, récupération ext3 corrompu (ou ext4)

Prends bien le temps de vérifier la source et la destination avec

sudo sfdisk -luS

Je te conseille de faire une image disque complète vers un fichier avec une commande de la forme :

sudo ddrescue /dev/sdX /media/sauvegarde/image.dd /media/image/sauvegarde.log -n

dans un premier temps, puis de remplacer sur une seconde passe le "-n" par "-r1 -c16".

Si le disque déconnecte en cours de route et ne termine pas correctement la duplication, reviens vers moi je te dirais quoi faire en fonction des symptômes.

Hors ligne

#6 Le 08/09/2011, à 10:46

martinclic

Re : crash disque, récupération ext3 corrompu (ou ext4)

Merci rmy

je viens de recevoir mon nouveau disque, mais j'hésite encore sur l'option que je vais prendre :

1- faire une image du disque entier vers un fichier (comme tu me le conseille)
    - est ce que je vais pouvoir intervenir sur une partition corrompue à l'intérieur de cette image pour tenter d'y corriger le systeme de fichier (ext3/4) ? Autrement dit, je n'ai pas l'impression que je pourrai utilisé e2fsck sur une partition à l'intérieur de cette image.

2- Faire une image uniquement de la partition sda3 qui m'intéresse vers un fichier
    - est-ce que je vais pouvoir tenter d'y corriger le systeme de fichier ext3/4 à l'aide des superblock indiqués par testdisk ? (les adresses données ne correspondent elles pas au disque entier ?)
    - l'avantage serait de se focaliser directement sur la moitié du disque qui m'intéresse avant qu'il ne lâche définitivement

3- Faire une copie directement disque à disque
    - mes questionnements au dessus ne s'applique plus, je pensais donc faire celà. Mais ta proposition me met le doute...

J'attend ta réponse avant de me lancer (fébrile...)

Hors ligne

#7 Le 08/09/2011, à 20:46

martinclic

Re : crash disque, récupération ext3 corrompu (ou ext4)

J'avoue que je stresse un peu, et qu'une réponse à ma question précédente m'aiderai.

Sinon,ben demain je choisirai une option et j'me lance...

Dernière modification par martinclic (Le 08/09/2011, à 20:46)

Hors ligne

#8 Le 08/09/2011, à 22:46

rmy

Re : crash disque, récupération ext3 corrompu (ou ext4)

l'option 1 et 3 sont valables. Ici, il ne s'agit pas d'un raid, donc pas besoin d'une taille LBA identique. Il faut bien sûr que le disque destination soit egal ou plus grand que le disque source.

Je persiste à conseiller l'option 1. Qui te permet au pire ensuite l'option 3 en écrivant l'image sur un autre disque…

Hors ligne

#9 Le 09/09/2011, à 17:46

martinclic

Re : crash disque, récupération ext3 corrompu (ou ext4)

Un petit mot pour vous remercier de vos réponses wink .

J'ai lancé depuis ce matin la copie du disque entier vers un fichier.
Effectivement, c'est long.

Je reviens vous voir quand cette partie sera finie.

Hors ligne

#10 Le 10/09/2011, à 03:42

rmy

Re : crash disque, récupération ext3 corrompu (ou ext4)

Vu les symptômes il es tfort possible qu'il y ait des erreurs ou que le disque décroche. Donne nous le retour d'infos quand ce sera fini.

Hors ligne

#11 Le 19/09/2011, à 13:35

martinclic

Re : crash disque, récupération ext3 corrompu (ou ext4)

de retour, la copie a été trés longue.
Et pour l'instant je n'ai pas réussi à récupérer grand chose...
Donc toute suggestion est bienvenue sad

En détail :

préalablement, j'ai vérifié si le swap du disque endommagé était utilisé

ubuntu@ubuntu:/media/seag$ swapon -s

et je l'ai désactivé:

ubuntu@ubuntu:/media/seag$ sudo swapoff /dev/sda4

ensuite, la copie avec ddrescue :

ubuntu@ubuntu:~$ sudo ddrescue -n /dev/sda /media/storeva/imgbrut.dd /media/seag/imgbrut.log


Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued:         0 B,  errsize:       0 B,  errors:       0
Current status
rescued:   200022 MB,  errsize:  27010 kB,  current rate:     7712 B/s
   ipos:     4305 MB,   errors:    6318,    average rate:     647 kB/s
   opos:     4305 MB,     time from last successful read:       0 s
Finished                  
ubuntu@ubuntu:~$ sudo ddrescue -r1 -c16 -d /dev/sda /media/storeva/imgbrut.dd /media/seag/imgbrut.log 


Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued:   200022 MB,  errsize:  27006 kB,  errors:    6321
Current status
rescued:   200046 MB,  errsize:   3332 kB,  current rate:       64 B/s
   ipos:   189652 MB,   errors:    6375,    average rate:      146 B/s
   opos:   189652 MB,     time from last successful read:       0 s
Finished                       
ubuntu@ubuntu:~$ sudo ddrescue -r1 -c16 -d /dev/sda /media/storeva/imgbrut.dd /media/seag/imgbrut.log 


Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued:   200046 MB,  errsize:   3332 kB,  errors:    6375
Current status
rescued:   200046 MB,  errsize:   3322 kB,  current rate:        0 B/s
   ipos:   130499 MB,   errors:    6357,    average rate:        0 B/s
   opos:   130499 MB,     time from last successful read:    44.8 m
Retrying bad sectors... Retry 1
Interrupted by user

Donc j'ai tenté de passer ddrescue avec -r1 -c16 une 2e fois, je l'ai arrêté au tiers du passage, il n'avait récupéré que 18 erreurs supplémentaires.

Au final j'ai donc une image avec ~3Mo de corrompus (sur 200Go), et intuitivement au plus 6357 fichiers corrompus, çà devrait être pas mal (mais la suite n'est pas encourageante).
Et pour être plus précis, il y a une zone de ~10Go en plein milieu de la partie qui m'intéresse qui concentre l'essentiel des erreurs.

vérification des partitions dans l'image:

ubuntu@ubuntu:/media/storeva$ sudo sfdisk -luS imgbrut.dd
Disk imgbrut.dd: cannot get geometry

Disk imgbrut.dd: 24321 cylinders, 255 heads, 63 sectors/track
Units = sectors of 512 bytes, counting from 0

   Device Boot    Start       End   #sectors  Id  System
imgbrut.dd1   *        63  82043954   82043892   7  HPFS/NTFS
imgbrut.dd2      82043955 128343284   46299330  83  Linux
imgbrut.dd3     128343285 384419384  256076100  83  Linux
imgbrut.dd4     384419385 390716864    6297480  82  Linux swap / Solaris

tentative de monter la partition 3, avec l'offset 65711761920(=128343285 * 512) :

ubuntu@ubuntu:/media/storeva$ sudo mount -o loop,ro,offset=65711761920 imgbrut.dd /sauve
mount: you must specify the filesystem type
ubuntu@ubuntu:/media/storeva$ sudo mount -t ext4 -o loop,ro,offset=65711761920 imgbrut.dd /sauve
mount: wrong fs type, bad option, bad superblock on /dev/loop1,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

ubuntu@ubuntu:/media/storeva$ sudo mount -t ext3 -o loop,ro,offset=65711761920 imgbrut.dd /sauve
mount: wrong fs type, bad option, bad superblock on /dev/loop1,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

marche pas, le systeme de fichier à l'air corrompu. Je décide de découper cette partition pour pouvoir agir dessus et tenter de réparer le système de fichier:

ubuntu@ubuntu:/media/storeva$ sudo dd if=/media/storeva/imgbrut.dd of=/media/storeva/imgsda3.dd bs=512 skip=128343285 count=256076100

(Les valeurs utilisées sont celles données par sfdisk -luS)
C'est trés lent, donc à la fin je fais donc une copie de ce fichier, pour travailler dessus.

ubuntu@ubuntu:/media/storeva$ sudo cp -pv imgsda3.dd sda3_2.dd

je tente de réparer le système de fichier:

ubuntu@ubuntu:/media/storeva$ sudo fsck.ext4 -n sda3_2.dd 
e2fsck 1.41.11 (14-Mar-2010)
fsck.ext4: Superbloc invalide, tentons d'utiliser les blocs de sauvetage...
le superbloc a un journal invalide (i-noeud 8).
Effacer ? non

fsck.ext4: Illegal inode number lors de la vérification du journal ext3 pour sda3_2.dd

post fractionné, sinon il passe pas, la suite arrive...

Hors ligne

#12 Le 19/09/2011, à 13:36

martinclic

Re : crash disque, récupération ext3 corrompu (ou ext4)

la suite

testdisk me donne des superblock alternatifs:

TestDisk 6.12, Data Recovery Utility, May 2011
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

Disk /media/storeva/sda3_2.dd - 131 GB / 122 GiB - CHS 15940 255 63

     Partition                  Start        End    Size in sectors

>  ext4                     0   0  1 15939 254 59  256076096                    
 superblock 32768, blocksize=4096 []
 superblock 98304, blocksize=4096 []
 superblock 163840, blocksize=4096 []
 superblock 229376, blocksize=4096 []
 superblock 294912, blocksize=4096 []
 superblock 819200, blocksize=4096 []
 superblock 884736, blocksize=4096 []
 superblock 1605632, blocksize=4096 []
 superblock 2654208, blocksize=4096 []
 superblock 4096000, blocksize=4096 []

Et, au passage, il arrive à lire les dossiers de plus haut niveau de cette partition:

TestDisk 6.12, Data Recovery Utility, May 2011
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org
   P ext4                     0   0  1 15939 254 63  256076100
Directory /

>drwxr-xr-x     0     0      4096  7-Sep-2010 14:05 .
 drwxr-xr-x     0     0      4096  7-Sep-2010 14:05 ..
 drwx------     0     0     16384  1-Sep-2010 16:32 lost+found
 ?---------     0     0         0                   moi
 ?---------     0     0         0                   fab
 ?---------     0     0         0                   titi
 ?---------     0     0         0                   .directory

Mais impossible de lui faire montrer le contenu de ces dossiers.

Je tente de réparer en utilisant des superblock alternatifs, mais même résultats:

ubuntu@ubuntu:/media/storeva$ sudo fsck.ext4 -n -b 32768 -B 4096 sda3_2.dd 
e2fsck 1.41.11 (14-Mar-2010)
le superbloc a un journal invalide (i-noeud 8).
Effacer ? non

fsck.ext4: Illegal inode number lors de la vérification du journal ext3 pour sda3_2.dd

J'ai bien essayé de réparer quand même (fsck.ext4 option -p puis option -y)
Très long, et au final il ne reste qu'un seul dossier de plus haut niveau (il en manque 2), plus une palanquée dans lost+found. Bon j'ai quand même récupérer quelques trucs dans ce foutoir.

Donc pour l'instant je suis bloqué. Un spécialiste ext3/ext4 me serait d'une grande aide.

Je ne sais pas si j'ai découpé correctement la partition, un hexdump sda3_2.dd | less me montre que les 4096 premiers octets de l'image contiennent 00.

Bizarremment:

ubuntu@ubuntu:/media/storeva$ sudo dumpe2fs imgsda3.dd 
dumpe2fs 1.41.11 (14-Mar-2010)
dumpe2fs: Bad magic number in super-block lors de la tentative d'ouverture de imgsda3.dd
Impossible de trouver un superbloc de système de fichiers valide.

mais en utilisant un superblock alternatif:

ubuntu@ubuntu:/media/storeva$ sudo dumpe2fs -o superblock=32768  -o blocksize=4096 imgsda3.dd 
dumpe2fs 1.41.11 (14-Mar-2010)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          bf3d7563-6786-4d4b-9054-2529a0a58397
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
Filesystem state:         not clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              8003584
Block count:              32009512
Reserved block count:     1600475
Free blocks:              31459185
Free inodes:              8003573
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1016
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Wed Sep  1 16:32:06 2010
Last mount time:          n/a
Last write time:          Wed Sep  1 16:32:52 2010
Mount count:              0
Maximum mount count:      30
Last checked:             Wed Sep  1 16:32:06 2010
Check interval:           15552000 (6 months)
Next check after:         Mon Feb 28 16:32:06 2011
Lifetime writes:          2087 MB
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:      ec54575e-50ff-407a-ad33-c071677ed221
Journal backup:           inode blocks
Journal superblock magic number invalid!

Voilà, un peu désemparé, si quelqu'un peut m'aider, me faire avancer, merci d'avance.

Hors ligne

#13 Le 20/09/2011, à 00:25

rmy

Re : crash disque, récupération ext3 corrompu (ou ext4)

Très bon boulot jusque là.
Je ne rentre pas dans le détail, mais :
- L'image aurait peut-être pu être améliorée (un poil) avec l'option -R
- Plutôt que de découper ton image (ce qui nécessite encore de la place) tu aurais pu utiliser losetup pour créer un loopdevice avec un ofset.
- attention l'usage des superblocs n'est pas le même pour dumpe2fs, mount, fsck…

mount a écrit :

sb=n
    Instead of block 1, use block n as superblock. This could be useful when the filesystem has been damaged. (Earlier, copies of the superblock would be made every 8192 blocks: in block 1, 8193, 16385, ... (and one got thousands of copies on a big filesystem). Since version 1.08, mke2fs has a -s (sparse superblock) option to reduce the number of backup superblocks, and since version 1.15 this is the default. Note that this may mean that ext2 filesystems created by a recent mke2fs cannot be mounted r/w under Linux 2.0.*.) The block number here uses 1k units. Thus, if you want to use logical block 32768 on a filesystem with 4k blocks, use "sb=131072".

e2fsck a écrit :

-b superblock
    Instead of using the normal superblock, use an alternative superblock specified by superblock. This option is normally used when the primary superblock has been corrupted. The location of the backup superblock is dependent on the filesystem’s blocksize. For filesystems with 1k blocksizes, a backup superblock can be found at block 8193; for filesystems with 2k blocksizes, at block 16384; and for 4k blocksizes, at block 32768.
    Additional backup superblocks can be determined by using the mke2fs program using the -n option to print out where the superblocks were created. The -b option to mke2fs, which specifies blocksize of the filesystem must be specified in order for the superblock locations that are printed out to be accurate.
    If an alternative superblock is specified and the filesystem is not opened read-only, e2fsck will make sure that the primary superblock is updated appropriately upon completion of the filesystem check.

dumpe2fs a écrit :

-ob superblock
    use the block superblock when examining the filesystem. This option is not usually needed except by a filesystem wizard who is examining the remains of a very badly corrupted filesystem.

par exemple pour le bloc "superblock 98304, blocksize=4096 []" cité dans testdisk :
mount -sb=393216
e2fsck -b 98304

Si c'est bien comme ça que tu les as utilisés, regarde dans le log de testdisk si il y a des infos pertinentes sur le super qu'il utilise pour lister tes répertoires.

Si ça ne donne rien, jette un œil à extundelete ou a ext3grep. En proprio/payant il y a aussi ufsexplorer et Rstudio qui devraient te sortir d'affaire ici. Si tu ne veux pas les acheter, contacte moi en MP.

Hors ligne