A unidade Ext3 não será montada após falha de energia; como recuperar arquivos?

5

Após uma falha de energia recente que fez com que minha caixa de Linux (Ubuntu 8.10) se desligasse duas vezes rapidamente de um estado de execução normal, eu tenho uma unidade que não será montada.

ATUALIZAÇÃO: A unidade às vezes é montada, mas aparece completamente vazia (nem mesmo Perdida + Encontrada) e mostra 14,9 GB grátis (é uma unidade de 500 GB) Quando tento fazer alguma coisa, isso me dá um erro de permissão e direcione as desmontagens. (ou, talvez, não foi realmente montado em primeiro lugar?)

Esta é a mensagem de erro quando tento montar:

~$ sudo mount -a
mount: wrong fs type, bad option, bad superblock on /dev/sdd1,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

Então, talvez especifique o tipo fs?

~$ sudo mount -t ext3 /dev/sdd1 /media/disk-7
mount: wrong fs type, bad option, bad superblock on /dev/sdd1,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

Não, mesmo. Então alguma coisa está bagunçada?

~$ sudo fsck /dev/sdd1
fsck 1.41.3 (12-Oct-2008)
e2fsck 1.41.3 (12-Oct-2008)
/dev/sdd1: recovering journal
fsck.ext3: No such file or directory while trying to re-open /dev/sdd1
Warning... fsck.ext3 for device /dev/sdd1 exited with signal 11.

Pesquisando o sinal 11 não foi encorajador, mas encontrei algumas outras maneiras de tentar consertar o disco:

~$ sudo e2fsck /dev/sdd1
e2fsck 1.41.3 (12-Oct-2008)
/dev/sdd1: recovering journal
e2fsck: No such file or directory while trying to open /dev/sdd1

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] 

Ainda esperando que esta falha tenha algo a ver com a falta de energia, eu assumo que o superblock é corrupto ou algo assim, e tente outro: (primeiro eu determino que o tamanho do meu bloco é 32k usando makefs -n)

~$ sudo e2fsck -b 32768 /dev/sdd1
e2fsck 1.41.3 (12-Oct-2008)
ext3 recovery flag is clear, but journal has data.
Recovery flag not set in backup superblock, so running journal anyway.
/dev/sdd1: recovering journal
e2fsck: Journal must be at least 1024 blocks while recovering 
ext3 journal of /dev/sdd1

Per Avery Payne abaixo eu tentei o seguinte:

sudo mount -t ext2 -o ro /dev/sdd1 /media/disk-7

Mas recebi esta mensagem de erro:

mount: wrong fs type, bad option, bad superblock on /dev/sdd1,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so
~$ dmesg | tail
[261157.639721] EXT2-fs: sdd1: couldn't mount because of unsupported optional features (4).

E é sobre onde estou preso. Eu tentei cada superbloco de backup listado e obter o mesmo resultado. Se ajudar alguma coisa, a etapa de "recuperação do diário" demora muito para que ela avance e me diga que não está funcionando.

Honestamente, eu não me importo muito em recuperar o estado da unidade minutos antes do acidente, apenas sobre a recuperação de mais de 400 GB de outros dados que estão nele. Se alguém souber de alguma coisa que eu possa tentar, ext3 utilitários ou técnicas de recuperação de dados, etc, eu agradeceria muito!

    
por privatehuff 30.08.2009 / 20:00

6 respostas

3

Os problemas que você está tendo soam muito mais extensos do que o esperado de uma simples perda de energia (mesmo durante uma atividade de gravação bastante pesada) em um dispositivo. Eu tenho que me perguntar se você está realmente tendo mais problemas no nível de interface / driver, ou uma tabela de partição corrompida ou algo desse tipo.

A partir dos sons das coisas, você pode ter exacerbado ainda mais o problema com toda a agitação que você fez ao tentar resolver o problema.

Não sei se podemos ajudar neste caso, mas não desistimos ainda.

Para o futuro, sugiro que você aprenda a seguinte técnica:

Quando você tiver problemas com uma unidade no Linux ou UNIX, normalmente você pode usar dd para fazer uma cópia de imagem de bit de todo o dispositivo para algum outro local. Encontre uma unidade que seja pelo menos tão grande quanto aquela em questão e tente um comando como: dd if=$PROBLEMATIC of=$TARGET bs=4M ... seja muito cuidadoso com as diretivas if (arquivo de entrada) e de (arquivo de saída). Deixe essa corrida. É uma boa idéia executar tail -f /var/log/messages & (ou possível variante, conforme apropriado para o seu /etc/syslog.conf) ... faça isso em segundo plano ou em outra janela. Existem versões aprimoradas de dd , que podem manipular novas tentativas e continuar com os blocos ruins de forma mais robusta ( sdd é um nome que vem à mente). Mas tente usar o comando stock GNU dd no começo.

Você pode fazer tal cópia de todo o dispositivo (/ dev / sdd, por exemplo) ou apenas a partição (/ dev / sdd1). Se você obtiver "erros de leitura ou erros semelhantes, sugere que o dispositivo possui erros físicos que impedem leituras anteriores a determinados cilindros ou, no caso de uma partição, que a tabela de partição está mutilada de alguma forma. Você pode fazer duas% diferentesdd images ... um de cada.

Aqui está o truque: faça todas as suas tentativas de fsck e mount e use suas várias outras ferramentas de recuperação, como o TCT (The Coroner's Toolkit) na imagem copiada!

Isso minimiza o tempo gasto na execução da unidade (que pode estar degradando no nível do hardware à medida que você a opera) e minimiza o impacto de tentativas de recuperação mal-sucedidas e possivelmente equivocadas. (Em algumas situações você faz uma imagem, depois outra baseada nisso e sempre opera na imagem terciária ... depende de quanto os dados valem).

Eu pessoalmente sugiro que você execute algo como hexdump ou strings para ler a imagem ... apenas deixe ela passar por um longo tempo e procure por texto simples que pareça ser um fragmento de seus dados . Eu usei grep para recuperar dados úteis (textuais) de sistemas de arquivos completamente desconfigurados. No caso eu não estou sugerindo isso como heroísmo de recuperação de dados ... mas como uma verificação de sanidade. Se você percorrer 10s de megabytes ou alguns gigabytes de dados e não vir nenhum texto reconhecível ... então você provavelmente tem um caso perdido ou fez algo muito errado (você estava realmente cuidado sobre aqueles se = e de = opções?).

Não sei se isso ajudará você com o esforço atual. Mas aprender esses truques agora e eles definitivamente vão fazer sua próxima incursão na recuperação de dados muito menos assustador. (Sim, pratique em um sistema saudável uma ou duas vezes - use um editor hexadecimal e tente adicionar sua própria corrupção criativa aqui e ali - à CÓPIA, é claro! Então tente consertá-lo).

Ah, e este é realmente um bom momento para revisar seus planos e procedimentos de backup e recuperação de dados (ou fornecer um aconselhamento melhor para seu cliente / colega / cliente / amigo / o que for).

    
por 01.09.2009 / 04:28
1

Eu não tenho muito a oferecer, exceto para esperar que você aprenda com meus erros. PARE! Faça uma duplicata do disco. dd pode ajudá-lo a fazer isso, e há uma abundância de aplicativos de imagem de unidade que lhe dará uma interface de usuário agradável. Eu cometi o erro de cavar em fsck, procurando superblocos de backup, etc, etc, sem primeiro duplicar o disco. Eu perdi absolutamente tudo. Parece que você já optou por ficar sem backups, mas não é tarde demais para prender uma cópia da unidade antes de destruí-la ainda mais com tentativas bem-intencionadas de restauração.

Eu deparei com este artigo sobre a recuperação em uma circunstância semelhante . Parece que você pode dizer ao mount para usar um superbloco diferente. Combinado com -t ext3, pode oferecer uma pequena esperança.

    
por 01.09.2009 / 04:14
1

Backtrack é uma distro linux que vem com uma série de ferramentas para coisas como esta. É também, no entanto, voltado diretamente para o alto escalão dos usuários avançados. O site deles pode ter alguns bons tutoriais para usar suas ferramentas, o que pode ser útil para você.

    
por 30.08.2009 / 20:50
0

Se você estiver usando o LVM2 em sua unidade, provavelmente precisará executá-lo antes de tentar consertar seu volume. Tente isso primeiro para ver se há volumes presentes.

sudo pvscan && sudo vgscan && sudo lvscan

Qualquer volume encontrado será o dispositivo para montar, em vez de uma referência direta como /dev/sdd1 .

Se você não estiver usando o LVM na unidade, poderá sempre tentar montar novamente a unidade como Ext * 2 * em vez de Ext * 3 *, pois ela é compatível com versões anteriores. Enquanto isso abre a janela para pequenos danos no sistema de arquivos (porque o diário não é reproduzido) ele permite que você acesse o restante dos dados, já que você já indicou que o bit "limpo" do sistema de arquivos já está definido. / strong> Quando você vai remontar o volume, você precisará especificar o tipo de sistema de arquivos diretamente, isto é:

sudo mount -t ext2 /dev/sdd1 /media/disk-7 && ls /media/disk-7

De lá, você pode recuperar seus dados. Se, depois de recuperar seus dados, você não conseguir recuperar o sistema de arquivos Ext3 existente para um estado bom conhecido, eu faria o backup de todo o conjunto de dados, reformataria o sistema de arquivos e restauraria. Claro, isso nem sempre é uma opção - mas pelo menos você recuperará seus dados.

Acompanhamento:

Um rápido Google revela um resultado que implica que você pode ter um problema de versão do kernel. Você estava atualizando seu kernel ou compilou uma imagem personalizada? Apenas curioso.

    
por 31.08.2009 / 09:25
0

Tem certeza de que / dev / sdd1 é realmente a unidade que você está procurando e não alguma outra unidade? A nomenclatura do dispositivo depende da ordem em que as unidades foram conectadas e podem ser diferentes, por exemplo, quando você conecta uma unidade USB mais tarde contra conectá-la na inicialização. Use /dev/disk/by-id/ para ter certeza de que você tocou no disco certo.

O próximo passo seria descobrir se todo o disco ou apenas a partição é torrada, para fazer esse lançamento:

cfdisk /dev/sdd

Ou outra ferramenta de partição de sua escolha para ver se as partições ainda estão no lugar certo e como você esperava que elas estivessem. Se a tabela de partições for torrada, você pode tentar gpart para recuperá-las ou recriá-las a partir do zero, se você se lembrar do layout delas.

dmesg está exibindo algo suspeito? Em discos rígidos de morrer você vai na maioria das vezes ter uma infinidade de mensagens de erro.

E, como outros já mencionaram, copie os dados antes de tentar modificar a tabela de partições ou outras coisas.

    
por 09.09.2009 / 17:52
0

Se você puder inicializar com o liveecd durante a inicialização, não use swap e, em seguida, monte esse /dev/sda e copie todos os dados de lá, se tiver um HDD USB ou através da rede. Então você pode reiniciar o sistema reformatar e despejar dados.

    
por 30.08.2009 / 20:56