W ciągu ostatnich kilku tygodni prowadziłem wiele badań na ten temat - i myślę, że jestem bliski ukończenia odzyskiwania, przynajmniej w miarę możliwości. Krótko mówiąc, opiszę problem bez wypełniania każdego drobnego detalu technicznego.
Załóżmy, że masz wiele macierzy RAID-5, każda z 8 dyskami, a następnie połączyłeś je razem w jeden wolumin logiczny LVM. Jeden z dysków następnie umiera w jednej z tablic, a podczas przebudowy napotykasz nieodwracalny błąd odczytu na drugim dysku w tej tablicy. I oczywiście nie ma kopii zapasowych.
Już usunąłem dane z dysku z URE na nowy dysk, tylko 5 000 danych jest uszkodzonych zgrupowanych w bardzo małym obszarze dysku. Zakładam również, że po ponownym złożeniu tego urządzenia MD za pomocą kopii ddrescue'd pomnoży rozmiar mojej utraty danych przez liczbę dysków nieparzystych w mojej macierzy (czyli 35K utraty danych), jako parzystość obliczenia dla pasków przy użyciu tych bloków będą niepoprawne.
Przeczytałem i rozumiem procedurę pod adresem http://smartmontools.sourceforge.net/badblockhowto.html w celu ustalenia, które pliki zostaną uszkodzone w takiej sytuacji, ale mój problem polega na ustaleniu, które bloki zostaną uszkodzone po md przebuduj do użycia jako danych wejściowych do debugfs. Odkrywanie wszystkich przesunięć, w których metadane sklepu md i lvm też nie będą fajne, ale myślę, że poradzę sobie z tą częścią.
Czy mogę po prostu pomnożyć wszystkie moje liczby złych bloków przez 7, a następnie założyć, że kolejne 6 bloków po każdym z nich również będzie złe, a następnie postępować zgodnie z instrukcjami LVM w przewodniku powyżej?
I dla jasności - nie przejmuję się naprawą lub ponownym mapowaniem złych bloków, jak opisuje przewodnik, wymieniłem dysk i pozwolę md zająć się tego rodzaju sprawami. Chcę tylko wiedzieć, które pliki na systemie plików ext4 zostały naruszone.
źródło