AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-1043035

Montecristo's questions

Martin Hope
Montecristo
Asked: 2019-05-30 14:20:52 +0800 CST

Recuperação máxima de dados de disquetes antigos com setores defeituosos acolchoados e várias passagens

  • 7

Eu tenho uma coleção de disquetes antigos de 3,5" dos quais estou procurando recuperar o máximo de dados possível.

O problema é devido à estrutura de alguns dos arquivos, preciso que o comprimento de todos os arquivos seja mantido, o que significa que todos os setores defeituosos devem ser preenchidos (o tl;dr motivo pelo qual alguns arquivos são arquivos Acorn ADFS onde os dados e o código são combinado. O código faz referência aos dados como um deslocamento do início do arquivo. A leitura do formato ADFS não é um problema no Linux, o preenchimento de setores defeituosos é).

Os discos não são lidos há 25 anos, então espero uma leitura imprevisível, setores defeituosos regulares e potencialmente tornando os discos ilegíveis - o que não me importa, desde que a recuperação de dados seja maximizada.

Para fazer isso, espero que sejam necessárias várias passagens para ler o máximo possível.

dd

Eu olhei para dd, com este comando promissor para uma primeira execução:

dd if=/dev/fd0 of=adfs.img conv=noerror,sync

Seguido por chamadas subseqüentes de

dd if=/dev/fd0 of=adfs.img conv=noerror,notrunc

Onde:

noerror significa que os erros são ignorados

sincronizar significa que os setores defeituosos são preenchidos com o caractere nulo

notrunc significa que o arquivo de saída (já existente) não é truncado quando dd é chamado.

No entanto, ao ler a página de manual e esta explicação de notrunc , apesar de notrunc estar definido, dd substitui a saída todas as vezes, resultando em uma saída que ainda representa apenas o que foi lido na última passagem. Quaisquer setores anteriormente lidos corretamente, mas agora danificados, por exemplo, devido à degradação do disquete antigo, serão substituídos por nulos.

Portanto, dd não parece adequado.

resgate

O ddrescue parece promissor, pois pode ser usado com várias passagens, desde que um arquivo de log seja usado para registrar o que foi gravado com sucesso e, em seguida, referido quando a próxima passagem for concluída.

A primeira passagem para ler apenas blocos sem erro

ddrescue -d -p --no-scrape /dev/fd0 output.img log/output.logfile

para a primeira passagem e passagens subseqüentes para preencher os erros

ddrescue -d -r3 /dev/fd0 output.img log/output.logfile

Onde

-d acesso direto ao disco. Ignorar cache do sistema

--no-scrape ou -n pular a fase de raspagem

-p preallocate pré-aloca espaço em disco antes da recuperação, ou seja, o arquivo de saída terá o mesmo tamanho do arquivo/dispositivo de entrada

-r3 repete setores defeituosos 3 vezes (usado na 2ª passagem em diante)

mas o problema é que o ddrescue parece não preencher os setores defeituosos quando eles ocorrem. Com -p definido, parece resultar em todo o preenchimento no final do arquivo, não mantendo os deslocamentos de dados desde o início do arquivo conforme necessário.

Este parece ser o caso, pois o ddrescue é escrito para tentar economizar espaço em disco para que os setores defeituosos sejam truncados e, em seguida, adicionados se os setores defeituosos forem lidos com êxito nas passagens subsequentes. Definir -p apenas cria um arquivo de saída do mesmo tamanho que o arquivo de entrada para economizar espaço, não para preencher os dados. O conteúdo da saída com -p definido ou não definido será, portanto, idêntico, ou seja, não preenchido até o final do arquivo.

Pergunta

Então, minha pergunta é uma parte de três

  1. está correto que o ddrescue NÃO preenche o arquivo recuperado, mesmo com -p definido?

  2. Existe alguma maneira de colocá-lo no bloco? Em minha pesquisa na Internet, li um comentário (irei encontrá-lo novamente e adicionar) que o arquivo de log criado por ddrescue poderia ser usado por um script para preencher os locais relevantes. Alguma ideia de como?

e

  1. você conhece algum comando / programa / script melhor para fazer o que estou tentando fazer - recuperação máxima de dados por meio de várias passagens de leitura de um disco corrompido com preenchimento de setores defeituosos?

Estou usando o Ubuntu 18.04, a versão dd é (coreutils) 8.28 e a versão GNU ddrescue é 1.22, ambas dos repositórios do Ubuntu.

Obrigado como sempre por qualquer ajuda

linux data-recovery
  • 1 respostas
  • 1048 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Vickel O Firefox não permite mais colar no WhatsApp web? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve