Acidentalmente fez dd / dev / sda

33

Eu escrevi uma imagem ISO para o meu disco rígido usando sudo dd if=image.iso of=/dev/sda . Eu quis dizer /dev/sdc , e agora executando sudo fdisk -l retorna apenas uma partição em / dev / sda enquanto supostamente deveria ser 6. É possível recuperar meus dados?

Ainda não encerrei (reiniciei) o meu computador.

    
por Baaing Cow 02.12.2017 / 21:10

6 respostas

63

Como o seu computador ainda está ligado, você tem uma boa chance de salvar as coisas.

Primeiro, sysfs expõe o kernel na visualização de memória das tabelas de partição. Neste momento, o seu kernel não releu a tabela do disco e lembra-se do seu particionamento. Dentro de /sys/block/sda/ , deve haver um diretório para cada partição. Cada subdiretório contém um arquivo start e um arquivo size , que representam a localização e tamanho da partição, em setores. Execute fdisk e, em seguida, recrie cada partição (em ordem!) Com as informações em seu diretório sysfs . Note que você terá que criar uma nova tabela de partições também. Certifique-se de que sua nova tabela de partições seja a mesma que a anterior. Você pode verificar isso em /sys/block/sda . Se você vir sda1 até sda7 enquanto tiver apenas 6 partições, provavelmente terá MBR e, do contrário, provavelmente foi GPT. Você também precisa definir sinalizadores e tipos para essas partições. Olhe para /etc/fstab e tente obter informações sobre os tipos de partições que você tem, então marque a Wikipedia para convertê-las em códigos para o seu esquema de particionamento.

Já que você parece ser capaz de usar seu sistema de arquivos, é provável que seu dd não tenha sobrescrito nada, já que a maioria dos bits importantes de um sistema de arquivos está na frente. Verifique /etc/fstab para ver quais partições correspondem a qual parte do seu sistema e, em seguida, use a quantidade de dados dd copiada para obter uma estimativa de quanto você foi ativado. Se você sobrescreveu apenas parte de um sistema de arquivos, um bom fsck pode ser capaz de consertar um pouco (mas você perdeu um bom pedaço de dados).

Provavelmente, você substituiu /boot . Você terá que reinstalar seu kernel (com aptitude ) e reinstalar o GRUB2 (com grub-install ) (que destruiu seu primeiro e segundo estágio). O GRUB2 é configurado com arquivos em /etc , para que você não tenha que recriar nada manualmente.

    
por HTNW 03.12.2017 / 00:51
19

Por seu comando dd , você sobrescreveu a tabela de partições de / dev / sda e todos os dados até o tamanho de image.iso.

Assim, o melhor que você pode conseguir é restaurar sua tabela de partições (com tamanhos exatos) para recuperar pelo menos as partições no final de / dev / sda.

    
por muclux 02.12.2017 / 21:14
19

Desculpe ler sobre sua má sorte

Eu acho que você não tem backup atual, e lamento ler sobre a sua má sorte usando

sudo dd if=image.iso of=/dev/sdx

em que você usou a letra da unidade x = a para substituir o início da sua unidade de disco rígido onde armazenou muitos dados valiosos.

Você não é a primeira pessoa e não tenho medo da última pessoa afetada por esse problema. dd é recomendado em muitos sites da Web para serem usados assim. É um método poderoso, mas perigoso, porque faz o que você diz para fazer sem perguntas. Por esta razão, é frequentemente apelidado de 'Data Destroyer'.

@marcelm comenta que esse apelido é injusto. Ele está certo que escrevendo diretamente para um arquivo de dispositivo como root está causando o risco . Portanto, esteja ciente de que você pode facilmente substituir uma unidade e destruir dados valiosos gravando no arquivo de dispositivo correspondente /dev/sdx . (Ferramentas mais seguras são listadas no final desta resposta.)

Recupere a tabela de partições, sistemas de arquivos e / ou conteúdo de arquivos

  • Faça o mínimo possível com a unidade e, acima de tudo, não escreva nada, pois isso pode piorar a situação, sobrescrevendo dados que ainda podem ser recuperados.

  • Se os seus dados forem valiosos, você deve trabalhar em uma cópia clonada , não a unidade original (parcialmente substituída). Veja este link, desça até 'Reparo avançado de uma tabela de partição, sistema de arquivos e / ou recuperação de arquivos'

    Reparar a tabela de partições e o sistema de arquivos de um pendrive

  • Se você tinha uma tabela de partição GUID, GPT, há um backup da tabela de partições no final da unidade /dev/sda , e você poderá restaurar a tabela de partições principal dessa tabela de backup usando a ferramenta gdisk . Veja o manual man gdisk para detalhes.

  • Você pode restaurar a tabela de partições e os sistemas de arquivos usando Testdisk de

    link

    Leia as instruções no site do CGSecurity e também o link fornecido pelo @ElderGeek, As partições desapareceram após a perda de energia durante a instalação

  • Você também pode restaurar a tabela de partições e os sistemas de arquivos usando gpart / gparted de acordo com o link fornecido pelo @CSM,

    COMO: Restaurar partições perdidas em uma tabela de partições corrompida ou excluída

  • PhotoRec : Se você não conseguir recuperar a tabela de partição e os sistemas de arquivos, ainda poderá recuperar alguns dados do arquivo. Os arquivos na extremidade da cabeça, talvez de 1-1,5 GB, são sobrescritos e perdidos, mas os arquivos por trás dessa parte da unidade ainda estão lá. O PhotoRec do link é uma ferramenta que pode recuperar dados 'da superfície da unidade' sem um sistema de arquivos. Dados típicos no início de tipos de arquivo comuns são usados para identificação.

    O seguinte link fornece detalhes sobre o PhotoRec,

    link

    Você deve salvar os arquivos em uma partição em uma unidade separada.

    Não é possível recuperar a estrutura de diretório e geralmente não é possível recuperar os nomes dos arquivos (e não as permissões e propriedade), e há problemas quando os arquivos estão fragmentados, mas muitos arquivos podem ser recuperados pelo PhotoRec (não apenas fotos, também muitos outros tipos de arquivos comuns). Mas, e isso é um grande, mas, é muito trabalhoso percorrer a enorme quantidade de arquivos não classificados para identificar quais são arquivos realmente importantes, que você deve renomear para nomes de arquivos significativos.

Ferramentas mais seguras para criar unidades de boot USB com o Ubuntu

No futuro, use uma ferramenta que ajude a identificar e selecionar o dispositivo de destino correto e que tenha um ponto de verificação final, para que você possa verificar novamente se clará no arquivo iso para o dispositivo alvo correto, por exemplo

  • No Ubuntu: o Criador de discos de inicialização do Ubuntu (no Ubuntu 16.04 LTS e versões mais recentes),
  • No Linux:

    • Discos alias gnome-disks ,
    • mkusb ,
  • No Windows: Win32DiskImager .

Você também pode usar as ferramentas de extração , que fornecem um ponto de verificação final, por exemplo

por sudodus 03.12.2017 / 07:18
16

Além de restaurar a partir de um backup, não há como recuperar totalmente. DD substituiu a tabela de partições e alguns dos dados do dispositivo.

    
por stumblebee 02.12.2017 / 21:28
9

Se a unidade for particionada em partições / e /home separadas, e a partição /home estiver após a partição / , você poderá recuperar seus dados. O MBR que lista onde a maioria das partições são sobrescritas. No entanto, o gparted pode recuperar sua partição /home .

Esta postagem nos fóruns do Ubuntu dá algumas idéias sobre como fazê-lo; Descobri isso procurando por "partição de recuperação gparted".

Uma vez que você encontrou sua partição perdida (pode estar dentro de uma partição estendida), você deve adicioná-la como a única partição na tabela de partições.

Uma vez feito isso, você terá que reinstalar o Linux, dizendo para manter a partição recuperada como /home .

    
por CSM 02.12.2017 / 22:12
1

Testdisk para o resgate

Eu posso garantir pessoalmente Testdisk que salvou meus dados depois que eu estava repetidamente copiando e colando instruções para /dev/sdb e alterando para /dev/sdd que era meu USB. Apenas uma vez eu esqueci de mudar e lá fui meu /dev/sdb no lixo.

Configure seu sistema para nunca gravar em /dev/sda

Eu recomendo strongmente a criação de um script wrapper: Impedir que 'dd' destrua SSD ou HDD . Isso garante que dd nunca grave em /dev/sda ou possivelmente em /dev/sdb ou em qualquer outro dispositivo de armazenamento em massa.

    
por WinEunuuchs2Unix 17.01.2018 / 04:10