Eu tenho feito muita pesquisa sobre esse assunto nas últimas semanas - e acho que estou perto de completar minha recuperação, tanto quanto possível, pelo menos. Para encurtar a história, vou descrever o problema sem preencher todos os minúsculos detalhes técnicos.
Suponha que você tenha vários arrays RAID-5, cada um com 8 discos, e então os agrupe em um único volume lógico do LVM. Um dos discos, em seguida, morre em um dos arrays e durante a reconstrução, você encontra um erro de leitura irrecuperável em um segundo disco nesse array. E, claro, não há backups.
Eu já gravei os dados da unidade com o URE em uma nova unidade, apenas 5 K de dados estão danificados, todos agrupados em uma área muito pequena do disco. Eu também estou assumindo que uma vez que eu remontar aquele dispositivo MD usando a cópia ddrescue, multiplicarei o tamanho da minha perda de dados pelo número de unidades sem paridade em minha matriz (então 35K de perda de dados), como a paridade cálculos para as faixas usando esses blocos serão incorretos.
Li e entendi o procedimento no link para determinar quais arquivos seriam corrompidos por uma situação como essa, mas meu problema é descobrir exatamente quais blocos serão corrompidos após a reconstrução do md para usar como entrada para o debugfs. Descobrir todos os deslocamentos em que os metadados da loja md e lvm também não serão divertidos, mas acho que posso lidar com essa parte.
Posso simplesmente multiplicar todos os meus números de bad-block por 7 e depois presumir que os seguintes 6 blocos após cada um deles também serão ruins, e então seguir as instruções do LVM no guia linkado acima?
E, para deixar claro - não estou preocupado em reparar ou mapear novamente os blocos defeituosos, como descreve o guia, substituí o disco e deixarei que o md lide com esse tipo de coisa. Eu só quero saber quais arquivos do sistema de arquivos ext4 foram afetados.