Acho que ddrescue
nunca foi projetado para funcionar dessa maneira. Não há nenhum ponto em analisar o que você fez de errado, porque o caminho certo é de fato em esta resposta para a pergunta que você se refere para. Eu admito que seu uso neste contexto pode não ser óbvio, especialmente para uma pessoa que não está familiarizada com o conceito "tudo é um arquivo" no Unix.
A resposta descreve uma maneira de concatenar dois arquivos a
e b
em um dispositivo virtual (arquivo especial) /dev/mapper/merge
.
Crie dois arquivos a
e b
( veja como você pode fazer isso ) em seus dois sistemas de arquivos disponíveis, então a soma de seus tamanhos é igual ou superior ao tamanho de seu /dev/sdc
.
Aplique esse fragmento da resposta vinculada (usando seus caminhos adequados para a
e b
):
losetup /dev/loop1 a losetup /dev/loop2 b s() { blockdev --getsize "$1"; } dmsetup create merge << EOF 0 $(s /dev/loop1) linear /dev/loop1 0 $(s /dev/loop1) $(s /dev/loop2) linear /dev/loop2 0 EOF
Em seguida, use /dev/mapper/merge
em vez de recovery_part1.img
em ddrescue
invocação.
O conteúdo de /dev/mapper/merge
é basicamente o mesmo que o resultado de cat /your/path/to/a /your/different/path/to/b
, mas merge
é gravável e pesquisável.
Observação: /dev/mapper/merge
não sobreviverá a uma reinicialização, mas é claro que seus arquivos a
e b
serão. Você só precisa recriar /dev/mapper/merge
(usando o código acima) se quiser trabalhar com ele após a reinicialização.