Eu escrevi uma imagem ISO no meu disco rígido usando sudo dd if=image.iso of=/dev/sda
. Eu quis dizer /dev/sdc
, e agora a execução sudo fdisk -l
retorna apenas uma partição em / dev / sda enquanto deveria haver 6. É possível recuperar meus dados?
Ainda não desliguei (reinicializei) meu computador.
hard-drive
data-recovery
dd
Vaca Baaing
fonte
fonte
dd
mostrou sua cara feia de 'Destruidor de dados' novamente :-( Ele substituiu o cabeçalho da unidade (correspondente ao tamanho do arquivo iso). Os dados que estavam lá foram perdidos. Você tem um backup recente recente do arquivos que você não pode dar ao luxo de perder? caso contrário, você deve se preparar para o trabalho duro para reparar os sistemas de tabela de partição e arquivo, melhor a cópia clonada usando Testdisk , e se isso falhar, mesmo o trabalho mais difícil de recuperar dados do arquivo a ser encontrado 'por trás' . a parte da unidade que é sobrescrito Você pode usar PhotoRec para o efeito Veja este link, cgsecurity.org.dd
mostrou sua cara feia de 'Destruidor de Dados' novamente" - Exceto que não tem nada a ver comdd
isso, tem a ver com acessar diretamente um dispositivo de disco como root. Qualquer outra ferramenta poderia ter tido o mesmo efeito.cat image.iso > /dev/sda
teria exatamente o mesmo efeito. Orpv ...
. Ou, até certo ponto, atévi /dev/sda
. De fato, isso me lembra a história em que Linus Torvalds tentou discar para uma rede usando o dispositivo de disco rígido em vez do modem, substituindo o início de sua unidade com o handshake de discagem . Nada a ver com issodd
..iso
arquivo? Você interrompeudd
ou foi executado até a conclusão?dd
assim (para esse fim), então eu acho que o aviso 'Data Destroyer' é relevante, embora o aviso completamente correto deva ser mais longo: "Não use uma linha de comando comosudo dd if=image.iso of=/dev/sdx
clonar em massa 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 clonará do arquivo iso para o dispositivo de destino correto, por exemplo, StartupDiskCreator, Disks, mkusb , Win32DiskImager. "Respostas:
Como o computador ainda está ligado, você tem boas chances de salvar coisas.
Primeiro,
sysfs
expõe o kernel na exibição de memória das tabelas de partição. No momento, seu kernel não releu a tabela do disco e se lembra do seu particionamento. Dentro/sys/block/sda/
, deve haver um diretório para cada partição. Cada um desses subdiretórios contém um arquivostart
e um arquivosize
, que representam o local e o tamanho da partição, em setores. Executefdisk
e recrie cada partição (em ordem!) Com as informações em seusysfs
diretório. Observe que você também precisará criar uma nova tabela de partição. Verifique se a sua nova tabela de partição é igual à anterior. Você pode verificar isso/sys/block/sda
. Se você virsda1
atésda7
enquanto você tem apenas 6 partições, provavelmente possui MBR; caso contrário, provavelmente é GPT. Você também precisa definir sinalizadores e tipos para essas partições. Veja/etc/fstab
e tente coletar informações sobre os tipos de partições que você possui, depois consulte a Wikipedia para convertê-las em códigos para o seu esquema de particionamento.Como você parece poder usar seu sistema de arquivos, é provável que você
dd
não tenha sobrescrito nada, pois 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 use a quantidade de dadosdd
copiados para obter uma estimativa de quanto você matou. Se você substituir apenas parte de um sistema de arquivos, um bomfsck
poderá consertá-lo um pouco (mas você perdeu uma boa parte dos dados).Muito provavelmente, você substituiu
/boot
. Você terá que reinstalar seu kernel (comaptitude
) e reinstalar o GRUB2 (comgrub-install
) (que destruiu o primeiro e o segundo estágio). O GRUB2 está configurado com arquivos/etc
, para que você não precise recriar nada manualmente.fonte
/sys/block/sda/*/{start,end}
e recrie suas partições com esta informação": você poderia expandir um pouco isso? Não é uma operação trivial e parece ser o principal ponto de sua excelente resposta.sudo parted
,unit s
,print all
,quit
.bashrc
e outros arquivos de ponto do diretório inicial e todos/etc
, além dos dados reais) para outro disco enquanto o computador em execução ainda estiver funcionando . O tar.gz é um bom formato para copiar diretórios inteiros (porque preserva permissões e outras coisas)./boot
assim é perfeitamente "seguro" (módulo literalmente tudo o mais sobre esta situação ) porque o kernel não é incerto sobre nada.Desculpe ler sobre a sua dura sorte
Eu acho que você não tem nenhum backup atual, e lamento ler sobre sua dura sorte usando
onde você usou a letra da unidade
x
=a
para substituir o início da unidade de disco rígido, onde armazenava muitos dados valiosos.Você não é a primeira pessoa e receio que não seja a última pessoa afetada por esse problema.
dd
é recomendado em muitos sites para ser usado assim. É um método poderoso, mas perigoso, porque faz o que você pede para fazer sem perguntas. Por esse motivo, é frequentemente apelidado de 'Destruidor de dados'.@marcelm comenta que esse apelido é injusto. Ele está certo que escrever diretamente em um arquivo de dispositivo como root está causando o risco . Portanto, esteja ciente de que você pode substituir facilmente uma unidade e destruir dados valiosos gravando no arquivo do dispositivo correspondente
/dev/sdx
. (Ferramentas mais seguras estão listadas no final desta resposta.)Recupere a tabela de partição, sistemas de arquivos e / ou conteúdo do arquivo
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 substituindo dados, que ainda são possíveis de recuperar.
Se seus dados são valiosos, você deve trabalhar em uma cópia clonada , não na unidade original (parcialmente substituída). Consulte este link, role para baixo até 'Reparo avançado de uma tabela de partição, sistema de arquivos e / ou recuperação de arquivos'
Repare a tabela de partição e o sistema de arquivos de um pendrive
Se você tivesse uma tabela de partição GUID, GPT, há uma cópia de segurança da tabela de partição no final da unidade
/dev/sda
, e você pode ser capaz de restaurar a tabela de partição principal a partir desta tabela backup usando a ferramentagdisk
. Veja o manualman gdisk
para detalhes.Você pode restaurar a tabela de partição e os sistemas de arquivos usando o Testdisk de
http://cgsecurity.org
Leia as instruções no site da 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ção e os sistemas de arquivos usando o gpart / gparted de acordo com o link fornecido pelo @CSM,
COMO: Restaurar partições perdidas em uma tabela de partição excluída ou corrompida
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 no cabeçalho, talvez de 1 a 1,5 GB, são substituídos e perdidos, mas os arquivos por trás dessa parte da unidade ainda estão lá. O PhotoRec de http://cgsecurity.org é 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 arquivos comuns são usados para identificação.
O link a seguir fornece detalhes sobre o PhotoRec,
https://www.cgsecurity.org/wiki/PhotoRec
Você deve salvar os arquivos em uma partição em uma unidade separada.
Não é possível recuperar a estrutura de diretórios e geralmente não é possível recuperar os nomes dos arquivos (e não as permissões e a propriedade), e há problemas quando os arquivos são fragmentados, mas muitos arquivos podem ser recuperados pelo PhotoRec (não apenas fotos, também muitos outros tipos de arquivos comuns). Mas, e esse é um grande, mas é muito trabalhoso percorrer a enorme quantidade de arquivos não classificados para identificar o que são realmente importantes, que você deve renomear para nomes de arquivos significativos.
Ferramentas mais seguras para criar drives de inicialização 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 clonará do arquivo iso para o dispositivo de destino correto, por exemplo
No Linux:
gnome-disks
,No Windows: Win32DiskImager .
Você também pode usar ferramentas de extração , que fornecem um ponto de verificação final, por exemplo
fonte
testdisk
. Também é um script de invólucro para impedir add
gravação no seu / sda / sdb / o que for uma boa ideia também.Por seu
dd
comando, você substituiu a tabela de partição de / dev / sda e todos os dados até o tamanho de image.iso.Portanto, 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.
fonte
Com exceção da restauração de um backup, não há como recuperar totalmente. O DD substituiu a tabela de partição e alguns dos dados do dispositivo.
fonte
Se a sua unidade estiver particionada em partições
/
e/home
partições separadas , e a/home
partição ocorreu após a/
partição, você poderá recuperar seus dados. O MBR que lista onde estão a maioria das partições foi substituído. No entanto, o gparted pode recuperar sua/home
partição.Este post nos fóruns do Ubuntu fornece algumas idéias sobre como fazê-lo; Descobri isso pesquisando "partição de recuperação gparted".
Depois de encontrar 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.
Depois de fazer isso, você terá que reinstalar o Linux, dizendo para manter a partição recuperada como
/home
.fonte
Testdisk para o resgate
Pessoalmente, posso atestar o Testdisk, que salvou meus dados depois de copiar e colar repetidamente as instruções
/dev/sdb
e alterá-las para o/dev/sdd
que era meu USB. Apenas uma vez eu esqueci de trocá-lo e fui/dev/sdb
para o lixo.Configure seu sistema para nunca gravar em
/dev/sda
Eu recomendo fortemente a criação de um script wrapper: Impeça que o `dd` destrua o SSD ou o HDD . Isso garante que
dd
nunca escreva para/dev/sda
ou possivelmente/dev/sdb
ou para qualquer outro dispositivo de armazenamento em massa.fonte