Hitta trasiga filer på trasig disk?

Permalänk
Medlem

Hitta trasiga filer på trasig disk?

Hej,

Jag har en disk som håller på att ge upp. Den data som ligger där har blivit kopierad men eftersom disken är delvis trasig så vet jag inte om alla filer verkligen är hela. Kan man kontrollera detta på något vis?

Främst handlar det om filmer och foto från kamera.

MVH

Permalänk
Sötast

Om du inte fått fel så bör filerna vara identiska.

Vill du eliminera bör faktorn så kopiera dem ytterligare en gång med robocopy.
Robocopy har en verify funktion som kollar att all data blivit överförd.

Skulle du dock överföra något som redan är korrupt i källan så lär det inte göra skillnad.

Permalänk
Medlem

Snurrhårddiskar gör väldigt mycket att data som läses ut är korrekt medans sektorer med så mycket fel att dess ECC inte kan rätta och inte få ihop kontrollvärdet (ofta samnanbakat med ECC-felrättningen) så får du ett IO-fel - ett läsfel, en oläsbar sektor. Att hårddisken skulle missa ett fel och det läses ut som 'valid data' ligger i området BER 1*10^-21 - typ en miljon gånger mer sällan än att disken skulle råka på oläsbara sektorer.

Överföring mellan en SATA-disk och moderkortet drar ned datasäkerheten för oupptäckta fel till ca BER 1*10^-17 och disken själv ger oläsbara sektorer (ingen läsbar data och ger IO-error) ligger runt BER 1*10^-14 för konsumentsnurrdiskar, 1*10^-15 för NAS och serverdiskar och 1*10^16 för Enterprise snurrdiskar och ganska vanligt värdet även för SSD/NVMe.

Obs ovanstående resonemang gäller _inte_ SD-minne, micro-SD och även många USB-stickor som läser ut felaktiga sektorer lika fort som korrekta - eller tvärhänger sig temporärt eller permanenet. Har man filer på den typen av media så är enda sättet att kontrollera fils integritet och data är att man beräknat hash-summor (typ sha256) på filerna i förväg och sedan kontrollerar för att se om filen är korrekt eller inte.

Det är lite av det här som görs kontroll på filsystemnivå med filsystem som BTRFS och ZFS, men kan inte få sådana funktionalitet i windows vanligaste använda filsystem (NTFS, VFAT, exFAT etc.)

Total Commander har funktion för att indexera filerna med valfri hash-algoritm (idag helst inte md5 och SHA1) och också att kontrollera det. det finns säkert andra program/appar som också gör jobbet enkelt (dock kommer varenda fil i trädet att läsas igenom för att skapa hashsummor av dessa - så är det TB-mängder av data så tar det en stund att indexera)

---

Slutligen - skall du mjölka snurrdiskar med tveksamma sektorer så borde du titta på "ddrescue" körd under linux (obs programmet skall ha 3 filargument, inte två om du tänker köra om och om igen på disken utan att börja från början igen var gång och glömma vad som gick bra förra gången.)

Programmet gör diskimages av snurrdisken (som sedan kan läsas som filsystem med lite trix) och det finns folk som har kört diskar i halvår med ddrescue och fått ut över >99% av sektorerna trots prognosen var typ under 50% i början då om en sektor går att läsa en enda gång av 10000 läsförsök så nyper ddrescue den sektorn och lagrar på diskimagen och sedan provar den aldrig mer på just den sektorn utan går på de övriga som är kvar olästa.

Permalänk
Medlem

Möjligt att ni missuppfattar mig, problemet är inte att få identisk kopia av filen på hårddisk A och hårddisk B. Problemet är att om filen på hårddisk A är korrupt på grund av trasig disk så blir den även korrupt på hårddisk B. Så min fråga är hur jag verifierar om en fil är korrupt eller ej? Går det att göra på något generellt vis? Jag antar att filen måste läsas in och i detta fallet är det främst bilder och filmer så det borde inte vara några problem att hitta program som kan läsa in filerna och på så vis verifiera om de är korrupta. Men det är väldigt många filer så det krävs ett automatiserat verktyg för detta, finns det?

När jag kopierade filerna var det ett få tal som inte kunde kopieras så där antar jag att de var trasiga direkt, sen om det berodde på felande disk eller inte är svårt att veta. Tyvärr lämnar inte Windows några rapporter efter kopiering på vilka filer som inte kom med över så för att komma fram till detta behöver man troligen kopiera filerna igen och då välja att inte ersätta, då borde den försöka kopiera samma filer som tidigare som inte kom över och då får jag skriva ner dem en och en.

Permalänk
Medlem

De som du läser felfritt är 'friska' filer, de är inte förändrade sedan de en gångs de skrevs på disken och är säkrat av diskens hela felrättningsmaskineri (under förutsättning att själva filsystemet inte har blivit korrupt).

Det finns ingen möjlighet att kontrollera filer i efterhand som inte redan har inbyggd kontrollvärde som zip och de flesta andra komprimerande arkiv eller redan har en hash-summa kalkylerad separat sedan innan eller kan göra byte för byte-compare mot en backup eller annan arkiv med samma filer - det enda du kan se om en fil är rätt eller fel i dessa fall är om det blir synliga störningar i tex bildfiler.

När det gäller att sortera filer med läsfel (IO-fel) och de som läses felfritt har jag ingen lösning på mer än att försöka hitta någon dito specialprogram av folk som råkat på samma bekymmer, men många kopieringsprogram brukar ge en stor felblaffa var gång en fil inte kan läsas i någon del - är det i ditt fall så många att det är ohanterligt ??

Permalänk
Medlem

Låter bra, då är det egentligen bara till att leta upp vilka filer som inte lyckades bli kopierade. Om detär viktiga filer får man titta på om man kan få tag på dem på annat håll.

Stort tack!

Permalänk
Medlem

Använde Winmerge för att hitta filerna, dock funkade det sådär på en trasig disk, fick dela upp och köra mindre körningar i Winmerge så funkade det. Tog ett par dagar att få rätt på men tillslut hittade jag alla filer som inte hade gått att kopiera. Som tur är kör jag backup till molnet(Backblaze) men tyvärr fungerade inte den tjänsten klockrent för att plocka ner större volymer data så istället för att hämta allt där fick jag rikta in mig på att hämta endast de trasiga filerna. Man kunde begära backupen på en disk men det var rejält dyrt och detta var ändå inte super mycket jobb även om det tog ett tag att slutföra.

Måste dock säga att jag har tidigare gillat Backblaze och aldrig haft problem med det men så snart man skulle ha ner lite större datamägnder, säg 500 GB så blev det direkt problem. Deras egna klient för att ladda ner säkert hängdesig stup i kvarten så den fick jag lägga ner.

Permalänk
Medlem

Det jag gjort för att slippa lite av det problemet du beskriver är att jag tog en gammal PC jag fått, Lenovo workstation med core2quad och 4gb ram.

På den kör jag FreeBSD och för lagring av filer har jag en pool i zfs med två diskar som speglar, dels har filerna en paritet sen kontrollerar även ZFS att det stämmer mellan diskarna, diffar det så är ju filen med korrekt paritet högst troligen också hel.

Maskinen har ECC minne vilket minskar risken att filer går sönder medan de ligger i datorns minne.
ECC är dock inte så kritiskt för ZFS som vissa menar på, att en defekt cell skulle få hela systemet sönderskrivet, jag läste en artikel om det och sannolikheten att det skulle inträffa är obefintlig, jag kommer inte ihåg den vetenskapliga förklaringen tyvärr.
Dock med defekt minne kan ju en fil gå sönder innan den börjar bearbetas av filsystemet, det är en annan sak.

För att ha backup har jag en hög med gamla diskar som jag också "formaterar" med ZFS dit jag kopierar mina filer som är kritiska med rsync.
Dessa diskar har ju också paritet på filerna. Sen lägger jag diskarna i en antitatpåse och på olika geografiska platser.

Sannolikeheten att jag skulle förlora all data blir därmed ganska låg.

Men det jag främst velat skydda mig mot är bitröta över tid då. Särskilt efter att jag varit med om att flashminnen flera gånger blivit korrupta och förstört filer. Främst ser man det på bilder som får artefakter.

Permalänk
Medlem
Skrivet av Karaff:

Ja en lokal backup lösning hade kunnat vara något, ska fundera på det.

Du säger bit-röta? Så om jag har provat data som är extra viktig så borde jag ha det på en ensam disk som inte används till något annat? På så vis används disken minimalt?

Permalänk
Medlem

Nja...

Alltså bitröta är väl tanken att digital data degraderas av olika faktorer, fel på lagringmedium, fel i övrig hårdvara när filen transporteras etc.
Ju längre tid man sparar en fil desto större risk är ju att detta inträffar när man kopierar mellan medium osv.

Tanken med lösningen jag beskriver är ju att filerna lagras på disk med paritet, speglad mot en annan disk med paritet.
Detta minskar ju risken för att filerna blir korrupta utan att man märker det.
Då kan man ändå förhoppningsvis rädda den med kopia från den fungerade disken eller sin backup.

Sen är det bra att kopiera filerna med programvara som verifierar att allt gått rätt till.

Men det är inte möjligt att gardera sig mot precis allt, men det blir ju betydligt pålitligare än att ha en enda kopia som man lagt på ett Usb-minne som är slängt i en byrålåda....