Tabela de partição corrompida (unidade flash USB)

9

É um pen drive Patriot de 8 GB, que eu usei extensivamente com muitos dados. Hoje, ele é detectado, mas todos os dados se foram: ( EDIT pelo menos alguns dados ainda estão lá, mas a tabela de partição desapareceu)

EDIT @Sathya (obrigado) aqui está a saída relevante de sudo fdisk -l :

Disk /dev/sdc: 8019 MB, 8019509248 bytes
247 heads, 62 sectors/track, 1022 cylinders
Units = cylinders of 15314 * 512 = 7840768 bytes

Disk /dev/sdc doesn't contain a valid partition table

Parece que é / dev / sdc, com 8 GB ... e sem tabela de partições.

Eu tentei montar / dev / sdc (e, em seguida, dmesg | tail ):

/media> sudo mount /dev/sdc mytmp
mount: wrong fs type, bad option, bad superblock on /dev/sdc,
       missing codepage or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

/media> dmesg | tail
[   24.300000]  sdc: unknown partition table
[   24.320000] sd 2:0:0:0: Attached scsi removable disk sdc
[   24.370000] usb-storage: device scan complete
[   26.870000] EXT2-fs error (device sdc): ext2_check_descriptors: Block bitmap for group 1 not in group (block 0)!
[   26.870000] EXT2-fs: group descriptors corrupted!
[   50.420000] unhashed dentry being revalidated: .DCOPserver_eeepc-brendanma__0
[   50.430000] unhashed dentry being revalidated: .DCOPserver_eeepc-brendanma__0
[   50.430000] unhashed dentry being revalidated: .DCOPserver_eeepc-brendanma__0
[ 5565.470000] EXT2-fs error (device sdc): ext2_check_descriptors: Block bitmap for group 1 not in group (block 0)!
[ 5565.470000] EXT2-fs: group descriptors corrupted!

EDIT @Col: resultados do testdisk

Disk /dev/sdc - 8013 MB / 7642 MiB - CHS 1022 247 62
Current partition structure:
     Partition                  Start        End    Size in sectors

Partition sector doesn't have the endmark 0xAA55

Depois de atingir [proceed] , diz:

Structure: Ok.


Keys A: add partition, L: load backup, Enter: to continue

A "Estrutura: Ok". parece reconfortante ... será que "A: add partition" tornará meus dados antigos acessíveis (se ainda existirem) ou criará uma nova partição nova?

Outra opção é " [ MBR Code ] Write TestDisk MBR code to first sector " - seria melhor fazer isso?

EDIT Descobri que pelo menos alguns dos meus dados ainda estão na unidade flash, usando o abaixo, e procurando por texto em Inglês em menos (como "o"):

cat /dev/sde | tr -cd '40-6' | less

(A unidade mudou de "/ dev / sdb" para "/ dev / sde" porque conectei algumas unidades extras hoje). Eu aprendi que "/ dev / sde1" seria a primeira partição; e "/ dev / sde" é o disco todo. Como o unix trata esses dispositivos como arquivos, você pode usar todos os comandos comuns do arquivo unix, como cat , e processá-los como qualquer outro fluxo de dados. O tr acima remove os caracteres não imprimíveis ("\ 40" é o espaço, que eu queria preservar). Em menos, você pode usar "/" para pesquisar, semelhante ao Vim.

Como posso recuperar meus dados (supondo que ainda esteja lá)? Se apenas a tabela de partição estiver corrompida, existe uma "ferramenta de recuperação de partição" padrão? Existe uma maneira de "reparticionar" sem excluir tudo?

    
por 13ren 08.06.2010 / 03:55

4 respostas

6

Pode valer a pena executar testdisk no dispositivo, parece que sua tabela de partições pode ter sido pop. O Testdisk deve ser capaz de recuperar seus dados.

    
por 31.08.2009 / 14:36
1

Não se preocupe, seus dados não desaparecerão - você está certo sobre o disco não estar montado, independentemente do que a interface gráfica diz.

Você pode montá-lo fazendo (como root) algo como:

mount /dev/sdb1 /media/Patriot\ Memory

Onde penso que sdb1 se refere ao seu stick USB - pode ser sdc1 ou sdd1

    
por 31.08.2009 / 10:06
1

Embora seja possível reconstruir a tabela de partições, a primeira coisa que você deve fazer é tirar uma foto do dispositivo. Você pode fazer isso com dd if=/dev/sdb of=~/memstick.img - alterando caminhos conforme necessário.

Depois de fazer isso, execute o PhotoRec , que poderá extrair todos os arquivos que estiverem lá . Se você tem tudo o que precisa, formate o pendrive e comece de novo, se não, você pode tentar mais recuperação de dados.

    
por 01.03.2010 / 21:00
1

ddrescue é a ferramenta de que você precisa. Eu não acho que você será capaz de salvar a tabela de partição e acessar os dados de outra maneira, com base na saída que você postou de testdisk etc.

link

ddrescue is a data recovery tool. It copies data from one file or block device (hard disc, cdrom, etc) to another, trying hard to rescue data in case of read errors.

The basic operation of ddrescue is fully automatic. That is, you don't have to wait for an error, stop the program, read the log, run it in reverse mode, etc.

If you use the logfile feature of ddrescue, the data is rescued very efficiently, (only the needed blocks are read). Also you can interrupt the rescue at any time and resume it later at the same point.

Ddrescue does not write zeros to the output when it finds bad sectors in the input, and does not truncate the output file if not asked to. So, every time you run it on the same output file, it tries to fill in the gaps without wiping out the data already rescued.

If you have two or more damaged copies of a file, cdrom, etc, and run ddrescue on all of them, one at a time, with the same output file, you will probably obtain a complete and error-free file. This is because the probability of having damaged areas at the same places on different input files is very low. Using the logfile, only the needed blocks are read from the second and successive copies.

    
por 02.10.2012 / 18:43