ddrescue működése

Fórumok

[Félig megoldva] Röviden a kérdés: van nálam egy nagyon bad szektoros vinyó (kb 300 db) és az lenne a kérdés, hogy ennek kapcsán hogyan működik a ddrescue.Hosszabban: most itt nem annyira az opciók érdekelnek, mert az benne van a manuálban, hanem hogy hogy áll össze egy mentés fájl. Mi a szerepe a logfájlnak (az megvan, hogy ha megszakítom a folyamatot valami miatt, akkor a logfájl alapján ott folytatja ahol abbahagyta)
De olvastam valami olyasmit is, hogy az első menet image-át kibővíti a log alapján a második/harmadik menetnél. Vagy mi?
Meg ilyen kérdéseket nem értek. Szóval a mechanizmusa érdekelne. Ddrescue szakértőket/powerusereket kérdezném elsősorban.

Köszönöm. Szilas.

(U.I. most karácsony miatt nem nagyon leszek gépnél, de ettől függetlenül várom az építő hozzászólásokat)

frissítés: A (szinte) teljesen halott vinyóról 2k (4 szektor) kivételével mindent sikerült lementeni. A könyvtárstruktúra (ntfs) kicsit össze volt kuszálva, de a wines chkdisk megoldotta. Mondjuk a Dokuments and Settings látszólag eltűnt, de egy javító könyvtárban megvolt a tartalma. Átnevezve, majd a célgépbe visszatéve a cserevinyót bútol, és elvileg minden a helyén. Úgyhogy öröm és bódottá.
Persze ez egy erősen sűrített kivonata a folyamatnak. Ha van rá igény, leírom részletesen is.
Erre a bejegyzésre már nem kell válaszolni.

Kösz mindenkinek. Szilas.

Hozzászólások

Először is: a Te esetedben a GNU ddrescue-ról van szó, nem pedig a dd_rescue-ról.

A GNU ddrescue ha minden igaz, nagyobb blokkokban (talán clusterenként (fixme)) olvas első körben. Ha az aktuális blokk olvasása nem sikerül, megjelöli átnézendőként a logfájlban.Ekkor nagyobb méretűnek látszok a hibás terület.
A következő futtatásoknál megpróbálja a logfájlban átnézendőnek jelölt blokkokból a még olvasható szektorokat kinyerni. Ekkor tud redukálódni a program által kiírt hibás terület mérete. Érdemes a logfájlt használni!

Igen, természetesen a GNU ddrescue-ról van szó. És igen, azt is tudtam, hogy alapértelmezés szerinti (64 kb-os) méretekben olvas az -n opció megadásával. De pl. az -f funkciója sem világos. Hogy akkor most kiegészíti ugyan azt a kimenetet, vagy törli, és létrehozza újra? Meg van valami összefésülő funkció is. Szóval sok a kérdés.
De kösz az infót.

---------------------------------------------------------------
Ritkán szólok hozzá dolgokhoz. Így ne várj tőlem interakciót.

-f A ddrescue man oldala szerint: overwrite output device or partition

Vagyis ha nem fájlba küldenéd az inputot, hanem egy nyers eszközre (például sdb), vagy partícióra, akkor biztonsági okból meg kell adni a -f opciót. Általában ugyanis nem életszerű partíció, vagy nyers eszköz célként.

Ha kétszer ugyanazzal a paranccsorral indítod a ddrescue-t (amiben megadsz logfájlt is), akkor folytatja majd a folyamatot.
Én például valahogy így szoktam:
ddrescue /dev/sda /mnt/rescue_bela_120gb_2014dec.img /mnt/rescue_bela_120gb_2014dec.log

"De pl. az -f funkciója sem világos. Hogy akkor most kiegészíti ugyan azt a kimenetet, vagy törli, és létrehozza újra?"
info ddrescue:


4 Invoking Ddrescue
*******************

`-f'
`--force'
     Force overwrite of OUTFILE. Needed when OUTFILE is not a regular
     file, but a device or partition.

Az utolsó mondat az érdekes, ha az a kérdés, hogy mikor szükséges használni.
Fentebb Szenti is ugyanezt írta.

 
 

"Szóval a mechanizmusa érdekelne."
Az info ddrescue leírja pontokba szedve a 3 Algorithm részben.
info ddrescue:


3 Algorithm
***********

   The algorithm of ddrescue is as follows (the user may interrupt the
process at any point, but be aware that a bad drive can block ddrescue
for a long time until the kernel gives up):

   1) Optionally read a logfile describing the status of a multi-part or
previously interrupted rescue. If no logfile is specified or is empty or
does not exist, mark all the rescue domain as non-tried.

   2) Read the non-tried parts of the input file, marking the failed
blocks as non-trimmed and skipping beyond them, until all the rescue
domain is tried. Only non-tried areas are read in large blocks.
Trimming, splitting and retrying are done sector by sector. Each sector
is tried at most two times; the first in this step as part of a large
block read, the second in one of the steps below as a single sector
read.

   3) Read backwards one sector at a time the non-trimmed blocks, until
a bad sector is found. For each non-trimmed block, mark the bad sector
found as bad-sector and mark the rest of that block as non-split.

   4) Read forwards one sector at a time the non-split blocks, marking
the bad sectors found as bad-sector. After a number of consecutive bad
sectors is found in a block large enough, the block is split by half and
the reading continues on the second half. This recursively splits the
largest failed blocks without producing a logfile too large.

   5) Optionally try to read again the bad sectors until the specified
number of retries is reached.

   6) Optionally write a logfile for later use.


   Note that as ddrescue splits the failed blocks, making them smaller,
the total error size may diminish while the number of errors increases.

   The logfile is periodically saved to disc, as well as when ddrescue
finishes or is interrupted. So in case of a crash you can resume the
rescue with little recopying.

 
 

"Meg van valami összefésülő funkció is."
Szintén info ddrescue:


1 Introduction
**************

   Automatic merging of backups: If you have two or more damaged copies
of a file, cdrom, etc, and run ddrescue on all of them, one at a time,
with the same output file, you will probably obtain a complete and
error-free file. This is so because the probability of having damaged
areas at the same places on different input files is very low. Using
the logfile, only the needed blocks are read from the second and
successive copies.

 

"Szóval sok a kérdés"
Olvasd át az info ddrescue-t, ahogy látod, sok mindent meg lehet találni benne példákkal együtt. Ha utána is van még tisztázatlan kérdés, térjünk vissza rá.

Hali!
Visszatértem. :-)

Reagálva a fenti hozzászólásokra: először is köszönöm. Másodszor: az igazi kérdést mindenki elkerülte. Bár a konkrét parancssor megerősítette azt amit már nagyjából tudtam,
viszont: (na ezt hogy mondjam) azzal én is haladtam, hogy elolvastam a man (és egyéb) doksikat. Pont ezek olvasgatása vetett fel bennem kérdéseket.
Tehát átfogalmazom az alap kérdésemet: mérnöki/programozói szemmel mi történik a kimeneti fájlal a különböző kapcsolók beállítása után illetve hogyan építi fel/használja mankónak a logfájlt.
De ez most már elvi okfejtés marad itt a fórumban. Mert kitaláltam egy metódust, hogy hogy tudom kitapasztalni a működését a hibás vinyó lementése kapcsán.
Mindenesetre mindenkinek köszönöm. Majd kiegészítem ezt a bejegyzést az eredménnyel.
Tehát kösz mégegyszer, és *ünnepeket!

---------------------------------------------------------------
Ritkán szólok hozzá dolgokhoz. Így ne várj tőlem interakciót.