Ho fatto molte ricerche su questo argomento nelle ultime settimane - e penso di essere vicino a completare il mio recupero, almeno per quanto possibile. Per farla breve, descriverò semplicemente il problema senza riempire ogni piccolo dettaglio tecnico.
Si supponga di disporre di più array RAID-5, ciascuno con 8 dischi, e di averli successivamente suddivisi in un unico volume logico LVM. Uno dei dischi muore quindi in uno degli array e durante la ricostruzione si verifica un errore di lettura irreversibile su un secondo disco in quell'array. E, naturalmente, non ci sono backup.
Ho già scaricato i dati dall'unità con l'URI su una nuova unità, solo 5 KB di dati sono danneggiati tutti raggruppati in un'area molto piccola del disco. Suppongo anche che una volta riassemblato quel dispositivo MD usando la copia di ddrescue, moltiplicherò la dimensione della mia perdita di dati per il numero di unità non di parità nel mio array (quindi 35 K di perdita di dati), come parità i calcoli per le strisce che usano quei blocchi non saranno corretti.
Ho letto e compreso la procedura su http://smartmontools.sourceforge.net/badblockhowto.html per determinare quali file sarebbero danneggiati da una situazione come questa, ma il mio problema è capire esattamente quali blocchi verranno danneggiati dopo il md rebuild da utilizzare come input per il debugfs. Capire tutti gli offset in cui i metadati del negozio md e lvm non saranno neanche divertenti, ma penso di poter gestire quella parte.
Posso semplicemente moltiplicare tutti i miei numeri di blocchi danneggiati per 7 e quindi supporre che anche i seguenti 6 blocchi dopo ognuno di questi saranno danneggiati e quindi seguire le istruzioni LVM nella guida collegata sopra?
E per essere chiari - non mi preoccupo di riparare o mappare nuovamente i blocchi danneggiati come descrive la guida, ho sostituito il disco e lascerò che md gestisca quel tipo di cose. Voglio solo sapere quali file sul filesystem ext4 sono stati interessati.