Failu atjaunošanas process
Ja esat iepazinošies ar rakstu “Kā darbojas backup process“, iespējams, esat domājuši, kā darbojas failu atjaunošana. Šis raksts izskaidro šo procesu, izmantojot failu Duplicati.CommandLine.RecoveryTool.exe
kā sākuma punktu, lai varētu izlaist lokālās datubāzes sarežģījumus. Ja vien nevēlaties uzzināt, kā darbojas programmas procesi, jums nav nepieciešams iepazīties ar šo rakstu. Jūs varat izmantot grafisko lietotāja saskarni, lai atjaunotu failus no rezerves kopijām.
Piemēra fails
Raksta turpinājumā piedāvajam piemēru un iztirzājumu, kā darbojas atjaunošanas process.
No rezerves kopijas varam redzēt, ka mapju struktūra izskatās šādi:
C:\data
|----> mydoc.txt, 4kb
|----> myvideo.mp4, 210kb
|----> extra
|-----> olddoc.txt, 2kb
|-----> samevideo.mp4, 210kb
Lai atvieglotu procesa izpratni, apskatīsim failus un mapes.
Sākotnējā saraksta iegūšana
Sākumā jāizvēlas dlist
fails, kas satur failu versijas, kuras mums ir nepieciešamas. Reālam failam jūs varat apskatīt dlist
failu nosaukumus, kam ir iestrādāta laikspiedols (timestamp). Laikspiedoli ir glabāti UTC formātā.
Šajā piemērā mums ir tikai viens dlist
fails, kuru varam lejupielādēt un apskatīt tā saturu:
[
{
"type": "Folder",
"path": "C:\\data\\"
},
{
"type": "File",
"path": "C:\\data\\mydoc.txt",
"size": 4096,
"hash": "qaFXpxVTuYCuibb9P41VSeVn4pIaK8o3jUpJKqI4VF4="
},
{
"type": "File",
"path": "C:\\data\\myvideo.mp4",
"size": 215040,
"hash": "4sGwVN/QuWHD+yVI10qgYa4e2F5M4zXLKBQaf1rtTCs=",
"blocklists": [ "Uo1f4rVjNRX10HkxQxXauCrRv0wJOvStqt9gaUT0uPA=" ]
},
{
"type": "Folder",
"path": "C:\\data\\extra"
},
{
"type": "File",
"path": "C:\\data\\extra\\olddoc.txt",
"size": 2048,
"hash": "R/XSNsb4ln/SkeJwFDd4Fv4OnW2QNIxMR4HItgg9qCE="
},
{
"type": "File",
"path": "C:\\data\\extra\\samevideo.mp4",
"size": 215040,
"hash": "4sGwVN/QuWHD+yVI10qgYa4e2F5M4zXLKBQaf1rtTCs=",
"blocklists": [ "Uo1f4rVjNRX10HkxQxXauCrRv0wJOvStqt9gaUT0uPA=" ]
},
]
No faila satura var novērot, ka ir pieejami 4 faili, kurus varam atjaunot. Varam redzēt arī to, ka šajā sarakstā ir vairāki faili, kuriem nepieciešams atvērt “bloksarakstu”.
Bloksaraksta paplašināšana
Kā izskaidrots rakstā “Kā darbojas backup process” bloksaraksti ir datu bloki, kas satur papildus hešus, kuri nepieciešami, lai atjaunotu failus. Tāpēc sākumā nepieciešams paplašināt bloksarakstu hešu saraktus, kuri nepieciešami atjaunošanai.
Tā kā mūsu piemērā divi faili koplieto vienu bloksarakstu Uo1f4rVjNRX10HkxQxXauCrRv0wJOvStqt9gaUT0uPA=
, mums nepieciešams, lai bloks pabeigtu paplašināšanas procesu.
Diemžēl korelācija starp dblock
failu nosaukumiem un datiem, kurus tie satur, nav pieejama, tādēļ rezultātā mums ir nepieciešams lejupielādēt visus failus līdz atrodam datus, kuri mums ir vajadzīgi. Praksē šis ir lēns process, tādēļ programma atkārto informāciju dindex
failos, kuru izmēri ir daudz mazāki nekā dblock
faili.
Pieņemot, ka mums ir pieejams dblock
fails, mēs iegūstam saarhivētu failu ar šādiem failiem:
qaFXpxVTuYCuibb9P41VSeVn4pIaK8o3jUpJKqI4VF4= (4kb)
0td8NEaS7SMrQc5Gs0Sdxjb/1MXEEuwkyxRpguDiWsY= (100kb)
PN2oO6eQudCRSdx3zgk6SJvlI5BquP6djt5hG4ZfRCQ= (100kb)
uS/2KMSmm2IWlZ77JiHH1p/yp7Cvhr8CKmRHJNMRqwA= (10kb)
Uo1f4rVjNRX10HkxQxXauCrRv0wJOvStqt9gaUT0uPA= (96b)
R/XSNsb4ln/SkeJwFDd4Fv4OnW2QNIxMR4HItgg9qCE= (2kb)
Varam novērot, ka fails Uo1f4rVjNRX10HkxQxXauCrRv0wJOvStqt9gaUT0uPA=
ir 96 baitus liels un zinām, ka sha256 ir 32 baitus liels. Pēc tā varam aprēķināt, ka šī datu daļa paplašinās 96/32 = 3
hešos.
Efektiviātes nolūkos heši tiek glabāti neapstrādātā binārā formātā, bet šajā gadījumā heši tiek attēloti kā base64 šifrētas virknes:
0td8NEaS7SMrQc5Gs0Sdxjb/1MXEEuwkyxRpguDiWsY=
PN2oO6eQudCRSdx3zgk6SJvlI5BquP6djt5hG4ZfRCQ=
uS/2KMSmm2IWlZ77JiHH1p/yp7Cvhr8CKmRHJNMRqwA=
Tagad varam paplašināt Uo1f4rVjNRX10HkxQxXauCrRv0wJOvStqt9gaUT0uPA=
trijos reālos hešos un mums ir pieejams paplašināts hešu saraksts ar failiem, kurus nepieciešams atjaunot.
Lokālo indeksu veidošana
Ja atjaunošanas rīks nepaļautos uz dindex
failiem, process būtu ļoti lēns, jo visi saarhivēti faili būtu jātver, lai pārbaudītu, vai tie satur blokus, kuri ir vajadzīgi atjaunošanai. Indeksēšana ievērojami pāatrina procesu, izveidojot teksta failu, kurā katra līnija atbilst bloks-arhīvs pārim.
Indeksa solī katrs dblock
fails tiek atvērts un attēlots tā saturs, kā arī izvadīts rezultāts priekš katra atrastā datu bloka. Pēc katra block
faila apstrādes, fails tiek sakārtots alfabētiskā secībā.
Protams, ir pieejami arī citi efektīvi veidi, lai glabātu šos datus, bet teksta fails lietotājam ļauj kontrolēt, atjaunot un pielāgot indeksa failu ar vienkāršu teksta apstrādes programmu, lai gan tas var izraisīt kļūdu rašanos. Pieredzējis lietotājs var izpētīt dlist
failu un izmantot indeksa failu, lai noskaidrotu, kur nepieciešamais bloks atrodas.
Pēdējā atjaunošanas rīka solī, kas ir pats failu atjaunošana process, sakārtotie indeksi tiek izmantoti, lai atrastu dblock
failu. Meklēšana balstās uz kārtošanu alfabēta secībā, lai nodrošinātu, ka skaits, kad meklēšanas process tiek izmantots, nepieaugtu lineārā veidā.
Avots: https://duplicati.com/