Como apontado, você pode querer usar o ddrescue.
No entanto, você pode simplesmente acrescentar a um arquivo gzip. Ou seja dd --count 8 | gzip > foo.gz seguido por dd - skip 8 | gzip > > foo.gz simplesmente funciona. O arquivo concatenado será simplesmente extraído para o arquivo de entrada.
Para o primeiro caso que você está descrevendo: geralmente o Linux se esforça para não atrapalhar os processos atuais mantendo um disco montado enquanto estiver em uso. No entanto, se forçar a desconexão do disco, a maneira correta é sinalizar um erro de E / S para o aplicativo. A maneira tradicional do Unix de associar um arquivo aberto com sua contraparte no disco não é pelo seu caminho, mas pelo seu número de inode. Nos usos subseqüentes, este inode pode ter sido reutilizado por um arquivo completamente diferente, ou o inode pode não ser um arquivo. A ideia de persistir arquivos abertos depois de um destacamento da unidade de backup é questionável: os arquivos podem ter sido alterados, portanto, o estado que persistiu pode ser sem sentido. Por outro lado, há um bom caso para 'falhar rapidamente' e fornecer o aviso de aplicação do disco com falha, portanto, pode ser necessário executar uma ação, que nesse caso equivale apenas a interromper o processo de compactação.
O segundo caso diz respeito a quando você para o gzip. O exemplo de trabalho acima permite que o gzip grave o máximo de dados no arquivo que desejar. Por outro lado, quando você suspende o processo ou o interrompe, o arquivo resultante nunca é um arquivo gzip válido. Isso se deve ao fato de que a última coisa que o gzip escreve no arquivo é a soma de verificação dos dados descomprimidos. Embora isso auxilie na detecção de erros em um arquivo, isso não ajuda a tornar o gzip interrompível.
TL; DR: Não, não é possível.
Veja: link