Recuperar dados da partição formatada através do Android USB

0

Formatei um sdcard com o GParted por meio do compartilhamento USB de um telefone Android.

Nem o telefone nem o computador reconhecem as partições no sdcard. Quando eu compartilho o sdcard através de USB, o dispositivo aparece como / dev / sdb, mas o fdisk não o reconhece.

Mount diz:

#mount /dev/mmcblk0p1 -t auto /home/alex/tmp/mount1/
NTFS signature is missing.
Failed to mount '/dev/mmcblk0p1': Invalid argument
The device '/dev/mmcblk0p1' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?

Como faço para montar o que estiver no sdcard para recuperar meus dados? Quando eu formatei o sdcard foi apresentado como um dispositivo de bloco no momento da montagem, e eu podia ver claramente o FAT32 original, então eu assumiria um fs estrutura foi preservada dentro da partição / dev / mmcblk0p1.

Saída de arquivo e fdisk:

# file /dev/mmcblk0
/dev/mmcblk0: block special (179/0)

# file /dev/mmcblk0p1 
/dev/mmcblk0p1: block special (179/1)

# fdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 29.6 GiB, 31812747264 bytes, 62134272 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
Disklabel type: dos
Disk identifier: 0x00000000

Device         Boot Start      End  Sectors  Size Id Type
/dev/mmcblk0p1       8192 62134271 62126080 29.6G  c W95 FAT32 (LBA)


# fdisk -l /dev/mmcblk0p1 
Disk /dev/mmcblk0p1: 29.6 GiB, 31808552960 bytes, 62126080 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
Disklabel type: dos
Disk identifier: 0xc38c655c

Device           Boot    Start      End  Sectors  Size Id Type
/dev/mmcblk0p1p1          2048 51193855 51191808 24.4G  b W95 FAT32
/dev/mmcblk0p1p2      51193856 62126079 10932224  5.2G 83 Linux

/ dev / mmcblk0p1 parece conter ~ 24.5 GiB vfat e ~ 5 GiB ext4. Então eu acredito que a conclusão seria que o sdcard contém o que deve ser uma partição vfat de 30 GiB, mas é realmente outro bloco contendo duas partições. Isso é totalmente consistente com o que eu fiz, mas não sei como recuperar os dados.

    
por alecs1 12.06.2015 / 15:55

1 resposta

0

A saída do fdisk

Device           Boot    Start      End  Sectors  Size Id Type
/dev/mmcblk0p1p1          2048 51193855 51191808 24.4G  b W95 FAT32
/dev/mmcblk0p1p2      51193856 62126079 10932224  5.2G 83 Linux

confirma que o que supostamente é uma partição é, na verdade, um bloco contendo um disco formatado.

O mount aceita um offset como parâmetro, portanto, uma aproximação rápida para obter o tamanho de um setor é de 25 GiB dividido pelo número de setores: 24,4 ⋅ 1024 ⋅ 1024 ⋅ 1024 / (51193855-2048) ≈ 511,78698. Então a partição começa no byte 512 ⋅ 2048. Monte a partição com o offset correto, depois faça o backup de todos os dados e formate o sdcard corretamente com o gparted:

# mount -t auto -o offset=1048576,ro /dev/mmcblk0p1 /home/alex/tmp/mount1/
    
por 13.06.2015 / 05:57