ddrescue
Egy rokonom hibás SD-kártyájáról kellett adatot visszanyernem. A kártyát már nem mountolta fel a gép, első ötletem az volt, hogy dd-vel lementem róla az adatokat és majd elemzem, de a dd összesen 16KB-ot tudott kiolvasni, majd input/output errorral meghalt.
A dd-nek van egy pont ilyen esetekre készített változata, a GNU ddrescue:
ddrescue /dev/mmcblk0p1 ddrescue.img
A fenti parancs az SD kártya első partícióját ( a partíciós tábla még olvasható volt ) menti le a ddrescue.img fájlba. A teljesen olvashatlan részeket persze ez a parancs sem tudja lementeni, de szépen elmenti az olvasható részeket, az olvashatatlanokat pedig többször többféle módszerrel próbálja kiolvasni.
A mentés kegyetlenül lassú. Egy 4GB-os SD kártyát akartam elmenteni, és 2.5 nap után állítottam le a mentést, mert úgy éreztem ennél többet nem érnek az adatok.
Bár nem sikerült minden adatot kiolvasni az SD-kártyáról, az image fájlt már fel tudtam mountolni és a kártyán lévő fényképek nagy részét le tudtam menteni.
Nem modorosságból neveztem a parancsot a bejegyzésben GNU ddrescue-nak. A programnak több változata is van, erről itt lehet bővebben olvasni.