Vi tog fejl om læsefejl på floppyer

For over femogtyve år siden, rodede jeg med FreeBSD's floppy disk device driver.

Floppydiske fejler, det vidste vi allerede dengang, men vi vidste ikke ret meget om hvordan de fejlede og derfor blev fejlhåndteringen i FreeBSD den samme som alle andre brugte: Prøv at rekalibrer drevet.

Det er det der laver den karakteristiske "RRRRRRRRR-klunk-RRRRRRRRRR" lyd når der er læsefejl.

Igår læste jeg ca. 150 gamle 3½" disketter ind med det jeg skrev til brug i datamuseum.dk for ti år siden og et par år senere commit'ede til FreeBSD: recoverdisk(1)

I forhold til dengang, gav det mig et meget større datagrundlag for at studere læsefejl på floppydiske og min konklusion er nu at rekalibrering ved læsefejl er spild af tid, for det hjælper ikke.

Det er ikke uvæsentlig spild af tid, en rekalibrering kan tage en stor del af et sekund, fordi man stepper hovedet langsommere end ellers, fordi antagelsen er at man ikke er over det spor man tror.

På samme tid har skiven roteret en håndfuld gange, hvor man kunne have prøvet at læse den samme sektor igen og rigtig mange dårlige sektorer blev læst i mindre end ti forsøg.

En anden observation der forbavsede mig, var det kunne betale sig at prøve op til ca. 500 læseforsøg før man giver op.

Læsefejl på floppydiske har med andre ord en helt anden natur end det vi troede for 25 år siden.

Hvis jeg skulle designe en ny fejlhåndtering idag, ville jeg for det første kun lave rekalibrering hvis jeg slet ikke kunne læse nogen sektorer på den nuværende cylinder og ellers bare blive ved med at prøve at læse den vrangvillige sektor en gang per omdrening i op til 10-20 sekunder. Man kunne overveje at steppe hovedet 5 spor i den ene retning og derefter fem spor tilbage igen, hvert 5-10 sekund, for at ryste lidt med mekanikken.

Jeg ved ikke hvor "traditionen" med at lave en rekalibrering stammer fra, men alle gjorde det, så jeg formoder at der engang har været floppydrev med lidt for svage step-motorer som kunne springe steps over og derefter er det bare cargo-cultet ud over det hele.

Retfærdigvis skal siges at RRRRRRR-klunk-RRRRRRRR ikke er nogen dårlig måde at gøre brugeren opmærksom på læsefejl på floppydiske.

phk

Kommentarer (30)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#1 Magnus Jørgensen

Mon ikke at rationalet var således. Hvis der er læse fejl så er der to muligheder:

  1. Mediet har fejl, hvilket drevet ikke kan gøre noget ved.
  2. Drevet har fejlet, hvilket kan testes og rettes ved rekalibrering.

Hvis ikke rekalibrering er tilstrækkeligt er enten drevet, mediet eller begge dele fejlbehæftet.

Jeg mener dog ikke at kunne huske at der var 500 læse forsøg. Var det virkelig sådan på alle implementeringer?

  • 0
  • 0
#3 Poul-Henning Kamp Blogger

Nej, typisk prøvede man kun ca 10 gange, hvilket med rekalibrering tager ca. 10 sekunder.

På samme 10 sekunder kunne man have holdt hovedet i ro og gjort 50-60 læseforsøg og så ville man, siger min erfaring fra igår, have haft meget bedre chancer.

500 forsøg uden at bevæge hovedet tager op imod et par minutter og det er i princippet hvad der burde være sket når man trykkede "R" til "Abort, Retry, Ignore ?"

  • 13
  • 0
#5 Baldur Norddahl

Hvis nu man kunne få data med fejl, kunne man så med statistik gætte på bits med fejl? I stedet for at prøve 500 gange i håb om at en gang er lyggens gang, hvor man får alle 512 bytes / 4096 bits tilbage uden fejl.

  • 1
  • 0
#7 Morten Pedersen

Som jeg husker det, skete det aldrig, som i aldrig nogensinde, at det gik godt hvis man først hørte den frygtede lyd af drevet der rekalibrerede.

Det gav isninger ned af ryggen efterfulgt af tanken om man havde en kopi af den opgave der skulle afleveres lige om lidt, skrevet ud på institutets fælles matrix printer.

Og når man fortæller ungdommen om det - suk..

  • 14
  • 0
#9 Morten Andersen

Ja altså flexowriteren?

Jeg havde i 1993 en PC der tilsyneladende ødelagde disketter alene ved læsning. Hver gang jeg købte et spil var der altid en af disketterne der ikke duede og den duede så heller ikke hos andre. Efter at have været igennem 4-5 spil fik jeg Merlin til at tage imod maskinen igen og bytte med en anden PC og så så jeg aldrig problemet siden. Men det satte sig dybt i mig i form af mistillid til disketter.

  • 3
  • 0
#11 Poul-Henning Kamp Blogger

Om lidt er harddisken også gået i glemmebogen. De siger det samme, når de ikke kan læse. En gang lykkedes det mig alligvel, ved at lægge den i fryseren en halv time.

Jeg har haft meget godt held med et give harddiske der ikke begynder at rotere er rask "vrid" omkring spindelens akse lige efter jeg har sat strøm på.

Når det er sagt, så er jeg meget langt fra imponeret over kvaliteten af harddiske fra 1990'erne...

  • 6
  • 0
#12 Ditlev Petersen

Om lidt er harddisken også gået i glemmebogen. De siger det samme, når de ikke kan læse. En gang lykkedes det mig alligvel, ved at lægge den i fryseren en halv time.

Det får mig til at mindes den særprægede forestilling, om at lyden på en musik-cd blev bedre af at give skiven en tur i fryseren eller ved at man malede tingesten med en grøn tuschpen. Det ville virkelig være spændende, hvis det passede.

  • 0
  • 0
#13 Sune Marcher

Jeg har haft meget godt held med et give harddiske der ikke begynder at rotere er rask "vrid" omkring spindelens akse lige efter jeg har sat strøm på.

Når det er sagt, så er jeg meget langt fra imponeret over kvaliteten af harddiske fra 1990'erne...

Jeg har fået et par diske fra "dengang omkring årtusindeskiftet" til at virke ved - forholdvist nænsomt - at give dem et dask med håndtaget på en skruetrækker... det var nok til at få dem til at spinne op, og så var det ellers bare at lave et burst-copy til en image-fil.

Har burst copying (i stedet for evindelige retries af samme sektor) ikke været standard-anbefalingen fra fornuftige(*) folk i årtier, i hvert fald når det kommer til harddiske?

*: SpinRite-fanatikere er ikke medlem af "fornuftige folk"-gruppen.

  • 1
  • 0
#16 Sune Marcher

For ikke at snakke om 0'erne. F.eks. den kendte 'click-of-death' på nogle af IBM Lenovo'erne.

Ak ja – DeskStar havde ellers været nogle udmærkede og fornuftigt prissatte diske, hvis det ikke var fordi de døde på stribe. Ikke noget under at de blev omdøbt DeathStar... jeg mistede også et par stykker af dem.

Da jeg, af nysgerrighed for hvad der lå på den, satte en af mine gamle harddiske til for nogle år siden, eksploderede en af chipsne. Jeg tror faktisk det var en Quantum Fireball, hvis det ikke skal være løgn. Gad vide om jeg kan finde det billede jeg tog bagefter :)

  • 3
  • 0
#18 Ivo Santos

Dårlige harddiske er lidt ligesom pandemier, man ved først hvad man skal gøre når man selv er blevet smittet.

jeg har selv haft et par DeathStar harddiske, men på daværende tidspunkt endevendte man ikke internettet for at finde ud af hvad man skulle vælge, og hvad man ikke skulle vælge.

F.eks. fravalgte jeg i mange år Western Digital harddiske fordi de blev meget varme, men i de sidste snart 10 har jeg kørt med selv samme mærke harddiske fordi jeg tænke at det var vær at prøve.

  • 0
  • 0
#22 Jens D Madsen

Så vidt jeg husker, var der stor forskel på drevs, og kunne et drev ikke læse disketten, så kunne et andet drev måske.

Der var også forskel på computer eller operativsystem. Floppydisken blev den gang læst/skrevet af computerens bios, og der kan måske have været forskel - måske har nogen læst drevet flere gange, uden at rekalibrere. Jeg tror der var forskel.

  • 0
  • 0
#25 Steen Christensen

IBM's diske var absolut blandt det bedste du kunne købe dengang.

Det er de stadigvæk. Deskstar og Ultrastar findes stadigvæk. Firmanavnet har skiftet nogen gange: Hitachi, HGST (Stadig Hitachi) og nu Western Digital.

https://www.westerndigital.com/products/data-center-drives/ultrastar-sat...

Jeg bruger HGST Ultrastar 10TB drev i min NAS. Kører upåklageligt. På den anden side har samtlige mine seagate drev fejlet over tid. Gående fra en 80GB disk op til 3 TB NAS diske.

  • 1
  • 0
#26 Jacob Mathiasen

Nogle floppy controllere giver mulighed for at læse sektorerne råt - dvs. at du kan få de læste, men defekte data ind.

De bedste controllere giver dig også "systemets" bytes - dvs. de bytes, som omgiver data. - Hvis man er specielt heldig ligger fejlen i disse og ikke i dataerne selv.

Dette kan rigtigt godt betale sig - ved læsning mange gange kan man identificere, hvilke bits, som er defekte - og i nogle tilfælde kan man så finde ud af, hvad de tabte bits er.

Hvilke metoder til at finde ud af, hvad de ødelagte bits korrekte værdi er afhænger, naturligvis, af, hvad type data man forsøger at læse.

  • 2
  • 0
#27 Sune Marcher

"Quantum Fireball - And We Mean It!" :-)

Oh yes, jeg fik et chok af lyden og røgen – der gik heldigvis ikke ild i noget.

Mener jeg tog et billede, og kiggede lidt efter det i går og kunne ikke finde det. Verrdamt at jeg ikke fik tagget det... det er lidt af en opgave af finde et enkelt billede i en høstak der ikke kan snævres ind til mindre end en ~10 års periode 😅.

Jeg husker det som at der var et rundt hul på en 4-5mm på en af chip-pakkerne – men det er ved at være nogle år siden, efterhånden.

  • 2
  • 0
#28 Chris Bagge

Måske er der en årsag til dette. Det første 5 1/4" drev der kom var Shugart SA400. I øvrigt det drev Apple hev halvdelen af HW ud af i deres konstruktion til Apple ][. I SA400 var hovedets bevægelse styret af en kugle i et sneglehushusformet spor på en stor plade. Der skulle ikke ret meget til at få stepmotoren der drejede pladen til at hoppe et trin over eller til få kuglen til at hoppe op af sporet. Skete det var der kun en mulighed, RRRRR - tilbage til spor nul. Senere kom der gode bedre mekanismer til, men nu var metoden jo indført.

  • 0
  • 0
Log ind eller Opret konto for at kommentere